我正面临着我正在探索的电子邮件发送脚本的一些问题。
try
{
$mail->Host = "mail.xyz.com"; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 25; // set the SMTP port for the GMAIL server
$mail->Username = "no-reply@xyz.com"; // SMTP account username
$mail->Password = "mypassword"; // SMTP account password*/
$mail->SetFrom($from, $fromName);
$mail->AddAddress($to, $toName);
$mail->Subject = $subject;
$mail->AddReplyTo('no-reply@xyz.com', 'xyz title');
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
$mail->MsgHTML($body);
$mail->IsHTML(true); // send as HTML
$success = $mail->Send();
}
catch (phpmailerException $e)
{
echo $e->errorMessage();
}
catch (Exception $e)
{
echo $e->getMessage();
}
return $success;
**我正在使用PHPMailer的这段代码来发送电子邮件,这对我来说很合适
xyz@gmail.com
xyz@yahoo.com
xyz@rediff.com
但是当我发送邮件到hotmail如xyz@hotmail.com或xyz@live.com时,它会转到垃圾文件夹。应该是什么问题?此外,当我尝试在我的公司服务器发送电子邮件,如kajal@xyztechnologies.com,然后得到以下错误:**
----------------------------原帖----------------- ----------- 主题:邮件传递失败:向发件人返回邮件 来自:“邮件传递系统” 日期:2013年10月7日星期一下午6:23 致:no-reply@xyz.com
此邮件是由邮件传递软件自动创建的。
您发送的邮件无法发送给其中一个或多个邮件 收件人。这是一个永久性错误。以下地址失败:
kajal@xyztechnologies.com
SMTP error from remote mail server after MAIL FROM:<no-reply@xyz.com> SIZE=1872:
host xyztechnologies.com [173.37.185.97]:
550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
------这是邮件的副本,包括所有标题。 ------
返回路径: 收到:来自localhost([127.0.0.1]:47913 helo = www.xyz.com) 通过机架与esmtpa(Exim 4.80.1) (信封来自) id 1VT8up-0007gh-UD for kajal@xyztechnologies.com;星期一,2013年10月7日18:23:55 +0700 收到:122.177.170.230([122.177.170.230])(代理10.1.1.12) (SquirrelMail认证用户no-reply@xyz.com) 通过www.xyz.com与HTTP; 2013年10月7日星期一18:23:55 +0700 消息ID:&lt; 55932ee6e029216dc42c4ba45cb93b56.squirrel@www.xyz.com> 日期:星期一,2013年10月7日18:23:55 +0700 主题:从网络邮件测试 来自:no-reply@xyz.com 致:kajal@xyztechnologies.com 用户代理:SquirrelMail / 1.4.22 MIME版本:1.0 Content-Type:text / plain; charset = iso-8859-1 内容传输编码:8位 X优先级:3(正常) 重要性:正常
TEsst2
应该是什么问题?我无法找到任何解决方案。请帮我。 感谢
答案 0 :(得分:0)
通常这与你正在使用的邮件服务器和协议有关......
使用sendmail通过php发送的邮件不需要验证,可以匿名发送...这可能是您的电子邮件最终被垃圾邮件文件夹捕获的原因...
我建议使用经过身份验证的smtp服务器验证发件人的身份(还需要匹配from标头),您将有更好的机会进入收件箱。
答案 1 :(得分:0)
您需要包含FROM电子邮件,它必须来自发送的域,否则许多主机提供商会将其标记为垃圾邮件。
这样可行,因为它将电子邮件标识为已从您的域发送。 $ headers [] ='来自:有人也许你';
这不起作用,它会被标记为垃圾邮件。 $ headers [] ='来自:有人也许你';