我试图从我的网站发送由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等端口可能不安全,因此可以从客户端触发垃圾邮件过滤器。
答案 0 :(得分:0)
端口465未在所有SMTP主机上打开,听起来您遇到TCP超时,或者您的电子邮件类不支持SSL。端口465需要SSL,而不是1587的STARTTLS。
您提交的端口对客户端上的垃圾邮件文件夹没有影响,一旦您的SMTP服务器@HostGator收到电子邮件,它就会将其转发到端口25上的目标服务器。“经过身份验证的电子邮件”只是证明了您被授权通过主机进行中继,它与电子邮件的内容无关,或者它最终是否在垃圾邮件箱中。
为避免垃圾邮件过滤,您需要确保配置了有效的SPF记录,您的RDNS已配置并且双向有效,并且您可以DKIM签署您的邮件。
处理所有这些的最佳方法是运行通过该中继发送到上游SMTP服务器的本地SMTP服务器。例如,Postfix with OpenDKIM。