无法通过 PHPMailer 发送电子邮件

无法通过 PHPMailer 发送电子邮件

我正在使用 PHPMailer 类从在线应用程序发送电子邮件,它在开发服务器上运行良好,如果我禁用 iptables 也是如此。但是,每当启动 iptables 时,都不会发送邮件 - 它似乎在排队,直到我停止 iptables - 然后它才会发送。

我最初按照此处的说明进行 iptables 设置:

https://www.digitalocean.com/community/articles/how-to-setup-a-basic-ip-tables-configuration-on-centos-6

非常感谢您的任何建议!

这是我的 iptables 规则:

Chain INPUT (policy DROP)
target     prot opt source               destination         
fail2ban-SSH  tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:0x3F/0x00 
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 state NEW 
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:0x3F/0x3F 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:25 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:465 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:25 state ESTABLISHED 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:25 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:465 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:587 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spt:25 state NEW,ESTABLISHED 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:25 state NEW,ESTABLISHED 

Chain fail2ban-SSH (1 references)
target     prot opt source               destination         
REJECT     all  --  **IP ADDRESS OF SERVER***       0.0.0.0/0           reject-with icmp-port-unreachable 
RETURN     all  --  0.0.0.0/0            0.0.0.0/0 

最后,PHPMailer 没有给出任何错误消息,所以我认为它成功卸载了它。

以下是电子邮件发送脚本的典型示例:

require_once(BASE_DIR.'classes/class.phpmailer.php');
$mail = new PHPMailer();
$body = 'html content';
$recipients = explode(',', $data['user_email'] );
foreach ($recipients as $recipient) {
    $mail->AddAddress(trim($recipient));
}
$mail->AddReplyTo( APP_EMAIL_SEND, APP_NAME);
$mail->IsHTML(TRUE);
$mail->From = APP_EMAIL_SEND;
$mail->FromName = APP_NAME;
$mail->Subject = 'Subject';
$mail->Body = $body;
$mail->Send();

答案1

您正在阻止服务器上的所有 UDP 流量,因此 DNS 查找也不起作用。您应该允许来自/到 UDP 端口 53 的流量。

相关内容