我已在我的localhost中配置了phplist,并且工作正常,我可以发送和接收邮件,用户也可以在那里成功注册。
但是当我在实时服务器上移动相同的应用程序时,它没有发送任何邮件,并且在phplist的事件日志中,我收到标题中提到的错误。
我不确定这是端口错误还是别的什么
任何建议??
这是我在config.php下的代码
define("PHPMAILER",1);
define("PHPMAILERHOST",'smtp.mydomain.com');
$phpmailer_smtpuser = 'smt_user';
$phpmailer_smtppassword = 'smtp_password';
define('PHPMAILERPORT',25);
答案 0 :(得分:1)
这个问题差不多有两年了,但重要的是要按照静态回答,许多人在经过几次搜索后仍然会登陆这里。
当您的配置出现网络问题时,PHPList会向您显示此错误。我有几次因为不同的原因而面临这个错误:
DNS :某些托管服务提供商会将DNS请求阻止或重定向到Google等知名提供商的邮件SMTP服务器。使用挖掘命令确认。
防火墙:这是最常见的原因。托管提供商还会阻止端口465,587和/或25.在Unix时,您可以使用工具生命周期 UFW 来管理IPTables规则,并忘记允许来自您的托管的传出连接。您可能想要阻止UFW确认它是“故障”。
邮件服务器安全层:我已经关注了一些关于邮件服务器设置的文章,他们建议您使用第三方工具来提高安全性。谷歌将以同样的方式阻止您从远程服务器通过SMTP连接到您的帐户的第一次尝试,因此如果您使用某些插件,您的邮件服务器可能会阻止。重新检查邮件服务器配置中完成的所有步骤,并断言没有任何东西阻止连接。
PHPList描述的错误已经足够了:PHPMailer库无法将电子邮件发送到远程主机。检查 / var / logs / mail。{err,info,log} 中的日志,不仅要远程主机,还要检查安装了PHPList的主机,以防它尝试自行发送。
如果您能够使用电子邮件客户端连接到您的电子邮件帐户,并且使用相同的设置,那么这就是网络问题。
在PHPList配置文件中,您不需要更多:
define("PHPMAILERHOST",'smtp.example.com');
$phpmailer_smtpuser = 'email@example.com';
$phpmailer_smtppassword = 'yourpw';
define('PHPMAILERPORT','587');
define("PHPMAILER_SECURE",'tls'); // or ssl
有一些过时的建议是关于添加更多变量并在配置中定义更多常量但是你不需要它。