2014-02-10 54 views
0

我有代碼通過PHP郵件發送郵件到我的電子郵件地址。電子郵件未送達,代碼導致內部服務器錯誤

我收到服務器錯誤,但我沒有收到收件箱或垃圾郵件文件夾中的任何消息。

請幫忙,這是我的代碼

<?php 
require_once("class.phpmailer.php"); 
include("class.smtp.php"); 
try { 
$sname= "moda"; // 
$smail="[email protected]"; // sender email 
$rname="anyone"; // 
$rmail="[email protected]"; // receiver email 
$sub="supject"; 

$body="ggggggggggggggggggggggggggggggggggggggggggggggggggg"; 
$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = "TLS"; 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 465; 
$mail->Username = ""; // my gmil email 
$mail->Password = ""; // my gmail password 
$mail->AddReplyTo($smail,$sname); 
$mail->AddAddress($rmail, $rname); 
$mail->From = $smail; 
$mail->FromName = $sname; 
$mail->Subject = $sub; 
$mail->MsgHTML($body); 
$mail->IsHTML(true); 
if($mail->Send()) { 
echo "Done"; 
} 
} catch (phpmailerException $e) { 
    echo $e->errorMessage(); 
} 

?> 
+1

從你條件,如果($ MAIL->發送()!){ 回聲 「完成」; }很明顯,如果電子郵件沒有發送,它會回顯「完成」,所以你的郵件發送部分似乎有一些問題。請檢查主機以及 –

+0

[**從我所看到的您試圖通過SSL端口發送TLS而不是587這是TLS端口。**](https://support.google.com/mail/回答/ 78775?hl = en)還會推薦你使用'$ mail-> SetFrom('[email protected]','First Last');' – Prix

回答

0

您正在使用

if(!$mail->Send()) 
{ 
    echo "Done"; 
} 

這意味着,如果郵件不發送,這將回聲出完成。更改條件:

if($mail->Send()) 
{ 
    echo "Done"; 
} 
else 
{ 
    echo $mail->ErrorInfo; 
} 

現在你會看到錯誤消息

+2

對不起,但是這個應該是作爲註釋發佈的,因爲它不會在這裏回答真正的問題,而只是一個症狀。 – arkascha

相關問題