无法通过PHPMailer发送电子邮件

我使用PHPMailer类从在线应用程序发送电子邮件,它在开发服务器上正常工作,如果我禁用iptables。 然而每当iptables启动,没有邮件发送 – 它似乎排队,直到我停止iptables – 然后发送。

我原来遵循iptables设置从这里指示:

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

任何build议是非常感谢!

这是我的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(); 

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