繁体   English   中英

使用PHP Mailer从本地服务器外部的电子邮件地址发送smtp电子邮件

[英]Using PHP Mailer to send smtp emails from an email address outside the local server

我想使用PHPMailer为我的网站配置联系页面。 我对着prroblem是,脚本工作, 地址在本地服务器如要设定如果我的域名是example.com,从该地址必须name@example.com。 当我以这种方式设置时,脚本可以完美运行。 我遇到的问题是,作为联系人页面,发件人地址必须是发件人的电子邮件地址,这意味着如果客户使用诸如name@email.com的电子邮件地址与我联系,则脚本将引发错误与下面的类似:

SMTP ERROR: DATA END command failed:
550-Your FROM address ( name@email.com , Dev Customer 550-)
must match your authenticated email user ( name@example.com ).

有谁知道解决此问题的方法吗? 还是有其他选择? 我将不胜感激提供的任何形式的帮助。 先感谢您。

根据Tigger的建议,您绝对不应使用提交者的地址作为发件人地址进行发送。 这是伪造的,会使您的邮件无法通过SPF检查,从而不会导致邮件退回或委托到垃圾邮件文件夹的传递结束问题。 无论如何,至少十年来一直在积极提倡它,并且它也是一种使您容易受到12月份修复的PHPMailer中的安全漏洞的攻击之一。

由于您已使用PHPMailer对此进行了标记,因此我将展示如何使用它来完成您所要求的操作:

$mail->setFrom('me@example.com', 'Contact form');
$mail->addReplyTo($_POST['email'], $_POST['name']);

这正是PHPMailer提供的示例联系表单脚本所做的。 还值得检查提交的值addReplyTo将自动验证地址,因此您应该检查返回值以确保。

可能有些电子邮件客户端无法正确处理回复地址,但是由于少数客户端的无效性,您不应将自己暴露在黑名单中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM