0

我已经在我的本地主机中配置了 phplist,它工作正常,我能够发送和接收邮件,用户也可以在那里成功注册。

但是,当我在实时服务器上移动同一个应用程序时,它不会发送任何邮件,并且在 phplist 的事件日志中,我得到了标题中提到的错误。

我不确定这是端口错误还是其他原因

有什么建议么??

这是我在 config.php 下的代码

define("PHPMAILER",1);
define("PHPMAILERHOST",'smtp.mydomain.com');
$phpmailer_smtpuser = 'smt_user';
$phpmailer_smtppassword = 'smtp_password';
define('PHPMAILERPORT',25);
4

2 回答 2

1

这个问题有将近 2 年的时间,但重要的是要得到回答,因为根据静态数据,许多人在经过几次搜索后仍然会登陆这里。

错误描述

当您的配置发生某些网络问题时,PHPList 将向您显示此错误。我因不同的原因多次遇到此错误:

DNS:一些托管服务提供商会阻止或将 DNS 请求重定向到 Google 等著名提供商的邮件 SMTP 服务器。使用dig命令确认。

防火墙:这是最常见的原因。托管服务提供商也会封锁 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 

有一些关于在配置中添加更多变量和定义更多常量的过时建议,但您不需要它。

于 2016-10-26T02:33:39.323 回答
0

在我的情况下,我检查邮件日志 - /var/log/maillog 我收到以下错误:-

...
 postfix/sendmail[2339]: fatal: parameter inet_interfaces: no local interface found for ::1
...

使用命令检查 postfix MTA 服务的状态 -

systemctl status postfix.service

如果服务未运行,请打开 postfix 配置文件 -

nano /etc/postfix/main.cf

后缀配置文件的修复将需要通过将 localhost 替换为 inet_interfaces 指令中的 127.0.0.1 来进行细微更改。

...
inet_interfaces = 127.0.0.1
...

重启后缀服务——

service postfix restart

检查状态 -

systemctl status postfix.service

现在您将能够发送电子邮件。

于 2021-09-26T17:10:56.243 回答