2014-02-10 55 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

相关问题