【问题标题】:Sending emails from port 465 makes the website unresponsive - Phpmailer从端口 465 发送电子邮件会使网站无响应 - Phpmailer
【发布时间】:2017-08-07 02:37:16
【问题描述】:

我试图从 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 等端口可能不安全,因此可能会从客户端触发垃圾邮件过滤器。

【问题讨论】:

    标签: php email


    【解决方案1】:

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

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

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

    处理所有这些问题的最佳方法是运行本地 SMTP 服务器,您通过该服务器将其发送到上游 SMTP 服务器。例如,带有 OpenDKIM 的 Postfix。

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 2017-02-17
      • 2019-01-19
      • 2023-03-20
      • 2023-03-13
      • 2015-09-06
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多