PHPMailer 上的 ValidateAddress 行为奇怪
我正在使用 PHPMailer 并且 $mail->Send() 返回错误,我的问题是当我使用此电子邮件字符串“[email protected]",但另一方面,它可以与几乎任何其他电子邮件即“[电子邮件受保护]"。
调试代码后,我发现问题出在文件 class.phpmailer.php 中的 ValidateAddress() 函数上。电子邮件“[email protected]”似乎无效FILTER_VALIDATE_EMAIL 和 preg_match
PHPMailer - class.phpmailer.php - 第 550 行:
public static function ValidateAddress($address) {
if (function_exists('filter_var')) { //Introduced in PHP 5.2
if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) {
return false;
} else {
return true;
}
} else {
return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address);
}
}
为什么可能?有人知道发生了什么事吗???为什么不允许此电子邮件“[电子邮件受保护]”?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道为什么特定地址被拒绝,而其他地址则不然,但一般来说,您不仅需要指定一个有效的电子邮件地址作为发件人地址,但由您发送邮件的邮件服务器处理。
否则,要么发送服务器将拒绝发送,要么接收服务器很可能将邮件作为垃圾邮件丢弃。
通常的策略是指定
[email protected]
(yourdomain.com 是您的网站域名)。在某些服务器上,您需要实际设置该地址才能从该地址发送邮件。I don't know why that specific address is being rejected and others aren't, but generally, you need to specify not only a valid E-Mail address as the from address, but one that is handled on the mail server you're sending the message from.
Otherwise, either the sending server is going to deny sending, or the receiving server is very likely to throw away the message as spam.
The usual policy is to specify
[email protected]
(yourdomain.com being your website domain). On some servers, you need to actually set up that address to be allowed to send mail from it.