2016-09-13 14 views
0

$mail->isSMTP();が設定されていたときに私のPHPスクリプトがメールを送信していなかった理由を見てきました。エラーPHPMailer over SMTPを使用してメールを送信しています

私が問題に入る前に、私は自分のSMTPサーバーとしてmailgun.orgを使用していることを指摘したいと思います。私のPHPスクリプトはシンプルですが、データをPHPファイルに転送するHTMLフォームがあり、これがPHPMailerスクリプトを呼び出して電子メールを送信します。ここで

は私のPHPスクリプトのコードです:あなたが見ることができるよう

date_default_timezone_set('Asia/Manila'); 

require 'phpmailer/PHPMailerAutoload.php'; 
// include 'phpmailer/class.phpmailer.php'; 
// require 'phpmailer/class.smtp.php'; 

$mail = new PHPMailer; 
//$mail->isSMTP(); 
$mail->SMTPDebug = 0; 
$mail->Debugoutput = 'html'; 
$mail->Host = "smtp.mailgun.org"; 
$mail->Port = 465; 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = "ssl"; 
$mail->Username = ""; //Username removed 
$mail->Password = ""; //Password removed 
$mail->setFrom('', ''); //Email address and Name removed 
$mail->addReplyTo($userMail, $firstName); 
$mail->addAddress('[email protected]', 'Name'); //Actual Values Changed 
$mail->addAddress('[email protected]', 'Name'); //Actual Values Changed 
$mail->addAddress('[email protected]', 'Name'); //Actual Values Changed 
$mail->Subject = 'New Application for website by '. $firstName; 
$mail->msgHTML($theMessage); 
$mail->AltBody = $theMessage; 
if (!$mail->send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { //Some HTML code here 
} 

はさて、私は$mail->isSMTP();行をコメントアウトしています。これは、私がそれを使用しようとするたびにコードがロードされず、長い待ち時間の後に500のエラーが発生するためです。 (悲しいことに、cPanelの設定では、私はApacheログを見ることができません)。

ファイルclass.phpmailer.phpをインポートしようとしましたが、クラスSMTPが定義されていないという致命的なエラーが発生しました。私はclass.smtp.phpファイルを含んでいたので、同じ500エラーが出ました。

私はStackOverflowの周りを見て、this answerに出くわしましたが、それは私のケースを助けませんでした。

私はMailgunのログを見てきましたが、接続しようとしてもスクリプトの記録はありません。

Additional Information: If it matters, I have the following files in the same directory: 
- sendMail.php //The script above 
- class.phpmailer.php 
- class.smtp.php 
- PHPMailerAutoload.php 
- index.html //Not important in this situation. 

誰かが私を助けてくれることを願っています。私は今、非smtpメソッドに頼っています。 :/

+0

は、[トラブルシューティングガイド](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting)に記載されているチェックを行う、と言います。あなたのISPがアウトバウンドSMTPをブロックしている可能性が高いです - あなたはGoDaddyを使用していますか? – Synchro

+0

@シンクロ私はローカルホストとプロダクションの両方で同じ結果を得ました。しかし、私はISPにチェックします、私は同じホスト上のWordpressのインストールを実行しているとsmtpはうまく動作し、それは私のコードで何かのようです。 –

+0

本当ですか?デフォルトでは、wordpressはisMail()モードでPHPMailerを使用します。あなたの500エラーは簡単なタイムアウトのように聞こえますが、接続できません。 – Synchro

答えて

0

そのほかの質問のように

date_default_timezone_set('Asia/Manila'); 

require 'phpmailer/PHPMailerAutoload.php'; 
// include 'phpmailer/class.phpmailer.php'; 
// require 'phpmailer/class.smtp.php'; 

$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = 'ssl'; 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 465; 
$mail->Username = ""; //Username removed 
$mail->Password = ""; //Password removed 
$mail->addReplyTo($userMail, $firstName); 
$mail->SetFrom('[email protected]', 'my name'); 
$mail->Subject = 'New Application for website by '. $firstName;$mail->MsgHTML($theMessage); 
$mail->AddAddress('[email protected]', 'my name'); 
if($mail->Send()) { 
    echo "Message sent!"; 
}else { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} 
関連する問題