从端口 465 发送电子邮件会使网站无响应 - Phpmailer



我试图从由 Hostgator 托管的网站发送电子邮件。 每当我尝试通过任何通用端口(例如 587 或 25(发送 SMTP 电子邮件时,电子邮件使用相同的代码工作正常,但是当我尝试按照主机设置使用端口 465发送时,它不起作用,并且网站停止响应几分钟从任何其他 IP 连接的任何设备上。

我发布这个是因为主机不提供任何编码帮助。

下面是代码:

$email = new PHPMailer();
$email->isSMTP();
$email->SMTPDebug = 0;
$email->Debugoutput = 'html';
$email->SMTPAuth = true;
$email->Host = "gatorxxxx.hostgator.com";
$email->Port = 465;
$email->Username = "email@mydomain.com";
$email->Password = "emailpassword";
$email->setFrom('email@mydomain.com', 'Sender Name');
$email->Subject   = 'Subject';
$email->MsgHTML($body);
$email->AddAddress( "useraddress" );
$email->AddReplyTo('email@mydomain.com');
if(!$email->Send()) {
header("xxx");
die ();
} else {
header("yyy");
die ();
}

我担心的是端口 465 用于经过身份验证的电子邮件发送,因此它登陆收件人垃圾邮件文件夹的机会较少,而使用 25 或 587 等端口可能不安全,因此可以从客户端触发垃圾邮件过滤器。

端口465 并非在所有 SMTP 主机上都打开,听起来您遇到了 TCP 超时,或者您的电子邮件类不支持 SSL。端口 465 需要 SSL,而不是像 587 那样需要 STARTTLS。

此外,您提交的端口对客户端上的垃圾邮件文件夹没有影响,一旦您的SMTP服务器@ HostGator收到电子邮件,它将通过端口25将其中继到目标服务器。"经过身份验证的电子邮件"只是证明您有权通过主机中继,它与电子邮件的内容无关,或者它是否最终进入垃圾邮件箱。

为避免垃圾邮件过滤,您需要确保配置了有效的 SPF 记录,您的 RDNS 已配置且在两个方向上都有效,并且您对邮件进行 DKIM 签名。

处理所有这些的最佳方法是运行本地 SMTP 服务器,该服务器通过该服务器中继发送到上游 SMTP 服务器。例如,Postfix with OpenDKIM。

最新更新