2017-01-01 28 views
1

私はGMailアカウントにデータを送信するPHPMailer Contact Formを持っています。これは、サイトがlocalhost上で操作されている場合は正常に実行されますが、Webページをサーバーにアップロードして連絡先フォームを使用しようとしたときに次のエラーが発生します。メッセージは送信できませんでした。メールエラー:SMTP connect() 。PHPMailerお問い合わせフォームはサーバでは動作しませんが、localhostでは動作しますか?

Pleskを介してサーバーにファイルをアップロードしていますが、それは関連性が疑わしいです。ここでは、コードです:

<form action="currentFile.php" method="POST"> 
Full Name:<input required type="text" name="fullname"/> 
<input type="submit"/> 
</form> 

<?php 
require 'phpmailer/PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

$mail->isSMTP();          
$mail->Host = 'smtp.gmail.com'; 
$mail->SMTPAuth = true;         
$mail->Username = '[email protected]';     
$mail->Password = 'pass';       
$mail->SMTPSecure = 'tls';        
$mail->Port = 587;          

$mail->addAddress('[email protected]');  

$mail->Subject = 'Contact Form'; 
$mail->Body = "Test"; 
$mail->AltBody = "Test"; 

if(!$mail->send()) { 
echo 'Message could not be sent.'; 
echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
echo 'Message has been sent'; 
} 
?> 

私は$mail->isMAIL();$mail->isSMTP();を変更しても違いはありません信じています。サイトがオンライン(サーバー上)のときにフォームデータが電子メールに送信されるようにするにはどうすればよいですか?

注:使用されているGmailアカウントとパスワードは、下記のコードでは「偽」となっています。 Gmailアカウントをターゲットにするつもりで、Google Mailのアドレスとパスワードを正常に入力したので、スクリプトはlocalhostで正常に実行されています。

ありがとうございます。

+0

あなたは、ポート587は、サーバー内(発信接続)が開いていることを確認していますか? – Dekel

+0

@Dekel私は会社からサーバーをリースしていますが、これは私が彼らに連絡する必要があるものですか?私はポート25とポート465、GMailの代替オプションを使用してみました、彼らはまた、サーバー上で動作しませんでした。一方、25と587はlocalhost上でうまく動作します。 – H3ll0

+0

ファイアウォール内のポートを開くには、リースされたサーバーにrootアクセス権が必要です。その方法は、インストールされているOS、コントロールパネルなどによって異なります。例えば、ubuntuはufwを使用し、WHM/CpanelをインストールしたOSはWHMパネルからアクセスできるCSF(ConfigServerFirewall)をインストールできるはずです – Chris

答えて

1

"@Fred-ii- Thanks this helped resolve my issue. Please post as an answer so I can give credit. – H3ll0 10 mins ago"

作用action="currentFile.php"はない入力のいずれかGET/POSTメソッドを使用して、<form>に属します。

どちらの方法を使用しても、入力に配列を割り当てる/使用する必要があります。

すなわち:

$var = $_POST['var']; // or $_GET depending on the preferred method. 

それがスパムにあなたのトランスポート、移動を送信したり、完全に拒否可能性があるのでまた、ヘッダ内From:があるはずです。

すなわち:トラブルシューティングする

$mail->setFrom('[email protected]', 'First Last'); 

参考リンク:

ここではphpmailerのためのgithubのです:

を作成

あなたがSPFレコード(送信者ポリシーフレームワーク)を持っていない場合

+0

答えは実際にGMailに関連し、デバッグを使用していることが分かりました。あなたのリンクが提供されているためにデバッグを追加することに影響しました、ありがとうございました。 – H3ll0

+0

@ H3ll0問題が解決したと聞いてうれしいですよ、*歓声* –

関連する問題