Estou configurando uma instalação do Postfix no Ubuntu Server 12.04 para encaminhar um pequeno volume de mensagens de um endereço específico no servidor para um endereço específico em outro domínio.
$ pwd
/etc/postfix
$ cat main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = awsBeta
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = awsBeta, localhost.localdomain, , localhost, someDomain.com
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_mailbox_domains = someDomain.com
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_domains = someDomain.com
virtual_alias_maps = hash:/etc/postfix/virtual
$ cat virtual
[email protected] [email protected]
$
Quando eu faço login no interpretador PHP CLI no servidor para enviar e-mails, o e-mail é entregue corretamente a [email protected]
. Observe que o dotancohen.com
é um domínio do Google Apps, os registros MX estão hospedados no Google.
$ php -a
Interactive shell
php > mail('[email protected]','Subject','tMessage', 'From: <[email protected]>');
Eu posso ver que o e-mail chegou na [email protected]
caixa de entrada. Isso me diz que o forwarder funciona. Agora eu tento do prompt de telnet do meu desktop:
$ telnet mail.someDomain.com 25
Trying x.x.x.x...
Connected to mail.someDomain.com.
Escape character is '^]'.
220 someHostname ESMTP Postfix (Ubuntu)
EHLO dotancohen.com
250-someHostname
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM: [email protected]
250 2.1.0 Ok
RCPT TO: [email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: [email protected]
SUBJECT: Hi, telnet!
This is a second attempt!
.
250 2.0.0 Ok: queued as 9851E81579
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
$
Este e-mail não é entregue e eu encontro o seguinte nos registros do postfix:
Jul 4 16:02:58 someHostname postfix/smtp[24898]: connect to ASPMX.L.GOOGLE.com[2607:f8b0:400c:c03::1b]:25: Network is unreachable
Jul 4 16:02:58 someHostname postfix/smtp[24898]: 935BC81579: to=<[email protected]>, orig_to=<[email protected]>, relay=ASPMX.L.GOOGLE.com[173.194.75.26]:25, delay=15, delays=15/0.02/0.08/0.15, dsn=2.0.0, status=sent (250 2.0.0 OK 1372953778 d3si1064427vck.0 - gsmtp)
Parece que o Google recebeu o e-mail, mas decidiu (provavelmente devido ao SPF) não entregá-lo. Não está na minha pasta Spam! Por fim, tento simplesmente enviar um email para o domínio de uma conta não relacionada do Hotmail. Este e-mail não é entregue, mas nada está nos registros do Postfix.
Para fins de integralidade, aqui está o registro MX anomizado:
$ dig mx someDomain.com
someDomain.com. 1800 IN MX 10 mail.someDomain.com.
$ dig a mail.someDomain.com
mail.someDomain. 1790 IN A x.x.x.x
Eu posso confirmar que x.x.x.x
é de fato o endereço IP correto para o servidor, e é o mesmo endereço para o qual eu fiz o telnet.
Por que os e-mails de contas de e-mail legítimas (como a conta do hotmail) não podem ser entregues na conta [email protected]
?