Eu quero enviar e-mails do meu servidor através do servidor de e-mail externo. Então eu instalei o nullmailer
como um dos mais simples MTA no Debian 7 x32.
Meu /etc/nullmailer/remotes
:
smtp.example.com smtp [email protected] --pass=*** --port 465 --ssl
usuário neste caso é usuário registrado no servidor remoto.
Agora quero enviar um email de teste. O substituto do Nullmailer para o sendmail possui vários parâmetros:
usage: sendmail [flags] [recipients]
-f Set the envelope sender address
OK, então eu envio o email com:
ls | sendmail -f [email protected] [email protected]
Mas este e-mail chega à caixa postal [email protected]. Um dos cabeçalhos diz:
To: undisclosed-recipients:;
Pelo que entendi, nullmailer não envia o endereço do destinatário.
OK, agora tento enviá-lo por php
:
mail("[email protected]","subject","message","From: [email protected]");
Mas nada foi enviado de fato. O log diz:
smtp: Failed: 553 5.7.1 Sender address rejected: not owned by auth user. Sending failed: Permanent error in sending the message
Hmm ... parece estranho. Se eu listar a fila do nullmailer eu vejo
sendmail -bp
2015-03-23 14:58:26 332 bytes from <[email protected]>
to <[email protected]>
Eu não sei de onde veio este [email protected]
.
Então a fila está congelada agora. Eu encontrei a fila em /var/spool/nullmailer/queue/
. Cada email salvo como arquivo com cabeçalho e corpo da mensagem. Um arquivo se parece com:
[email protected]
[email protected]
Received: (nullmailer pid 14630 invoked by uid 0);
Mon, 23 Mar 2015 04:58:26 -0000
To: [email protected]
Subject: subject
X-PHP-Originating-Script: 0:test.php
From: [email protected] Date: Mon, 23 Mar 2015 14:58:26 +1000 Message-Id: [email protected]>
message
Então eu mudei o cabeçalho de
[email protected]
[email protected]
para
[email protected]
[email protected]
E voila! - o email foi enviado como esperado - de [email protected]
a [email protected]
Então, minha pergunta - o que fiz de errado e como posso enviar e-mails com nullmailer
de maneira normal?