Você está bloqueando todo o tráfego UDP no servidor, portanto, as pesquisas de DNS também não funcionam. Você deve permitir o tráfego de / para a porta UDP 53.
Estou usando a classe PHPMailer para enviar e-mail de um aplicativo on-line, funciona bem no servidor de desenvolvimento e, se eu desativar o iptables. No entanto, sempre que o iptables é iniciado, nenhum e-mail é enviado - parece estar na fila até que eu pare o iptables - então ele envia.
Eu originalmente segui as instruções daqui na configuração do iptables:
Qualquer conselho é muito apreciado!
Aqui estão minhas regras do 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
Finalmente, o PHPMailer não fornece nenhuma mensagem de erro, então eu suponho que ele seja transferido com êxito.
Veja um exemplo típico de um script de envio de e-mail:
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();