【发布时间】:2013-12-26 15:29:26
【问题描述】:
我在 PHPMailer 中特别有问题。我有一个联系表格,并使用 PHPMailer 发送电子邮件。显然我可以发送,对我来说它返回“true”,但电子邮件没有到达您的收件箱。我尝试了几种方法来查找错误,但没有成功。我尝试启用和禁用带有和不带有 SMTP 身份验证的 SMTP,多种形式。按照下面的代码进行操作。
<?php
session_start();
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
//$mail->IsSMTP();
$mail->Host = "smtp.mysite.com";
$mail->SMTPAuth = false;
$mail->Username = 'my@email.com';
$mail->Password = 'passhere';
$mail->From = "Newsletter";
$mail->Subject = "Newsletter";
$email = $_POST['email_news'];
$mail->AddAddress('my@email.com');
$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
$mail->Body = "
<html>
<body>
<b>Email:</b> $email<br/><br/>
</body>
</html>
";
if(!$email){
$result = "error";
}else{
$send = $mail->Send();
if($send){
$result = "sucess";
}else{
$result = "error";
echo $mail->ErrorInfo;
}
}
$mail->ClearAllRecipients();
$mail->ClearAttachments();
header("Location: http://www.mysite.com");
?>
我设法通过 gmail 使用身份验证解决了我的问题。身份验证如下:
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = 'my@email.com';
$mail->Password = 'passhere';
但我有一个疑问。此验证码仅用于从 gmail 发送电子邮件?或者它是gmail为PHPMailer中的一般验证电子邮件提供的背书?
【问题讨论】:
-
请检查您的垃圾邮件...
-
您没有回显
$result- 您确定,该邮件已发送?你检查过你的垃圾邮件文件夹吗? -
我假设你已经让他们检查他们的垃圾邮件过滤器?它可能在另一端被阻止?
-
是的,正在发送消息,它返回“true”。收件箱没有用于测试的垃圾邮件过滤器,仍然没有得到。我在另一个站点上使用相同的配置,它工作正常,不明白会发生什么。
-
如何确定它返回 true? $result 应该是“成功”,但 $result 永远不会打印出来。 $result “成功”了吗?