Adicionei o seguinte à minha configuração:
always_bcc = root@localhost
Agora, o postfix faz o que eu precisava: salva todos os e-mails recebidos em /var/mail/root
e esses e-mails não têm nenhum texto extra.
Estou tentando configurar o postfix para fins de desenvolvimento, para fazer testes de aceitação de emails em um site. Estou quase terminando com isso, no entanto, há apenas uma coisa que quero configurar corretamente, mas não sei como fazer.
Atualmente, se o meu servidor postfix (dentro de um contêiner docker) receber um e-mail, ele colocará uma notificação na caixa de correio /var/mail/root
de que uma mensagem não pôde ser entregue, assim:
$ cat /var/mail/root
From MAILER-DAEMON Fri Sep 9 17:48:05 2016
Return-Path: <>
X-Original-To: root@localhost
Delivered-To: root@localhost
Received: by localhost (Postfix)
id 0209A1416E4; Fri, 9 Sep 2016 17:48:05 +0000 (UTC)
Date: Fri, 9 Sep 2016 17:48:05 +0000 (UTC)
From: MAILER-DAEMON@localhost (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: root@localhost
Auto-Submitted: auto-replied
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
boundary="0A7781416E0.1473443285/localhost"
Message-Id: <20160909174805.0209A1416E4@localhost>
This is a MIME-encapsulated message.
--0A7781416E0.1473443285/localhost
Content-Description: Notification
Content-Type: text/plain; charset=us-ascii
This is the mail system at host localhost.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<[email protected]>: unknown user: "hello"
--0A7781416E0.1473443285/localhost
Content-Description: Delivery report
Content-Type: message/delivery-status
Reporting-MTA: dns; localhost
X-Postfix-Queue-ID: 0A7781416E0
X-Postfix-Sender: rfc822; root@localhost
Arrival-Date: Fri, 9 Sep 2016 17:48:03 +0000 (UTC)
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: "hello"
--0A7781416E0.1473443285/localhost
Content-Description: Undelivered Message
Content-Type: message/rfc822
Return-Path: <root@localhost>
Received: from localhost (unknown [172.20.0.6])
by localhost (Postfix) with ESMTP id 0A7781416E0
for <[email protected]>; Fri, 9 Sep 2016 17:48:03 +0000 (UTC)
hhhhhhhhhhhhhhhhhhh
--0A7781416E0.1473443285/localhost--
E é assim que eu sei sobre os e-mails que foram enviados pelo site. Para mim, isso é quase perfeito: posso abrir /var/mail/root
dentro de um teste, ler seu conteúdo, verificar se há corpo, remetente e destinatário corretos.
O que não é bom é que não é uma entrega de e-mail acual para uma caixa de correio local, mas uma notificação sobre uma entrega com falha que, por acaso, contém o conteúdo do e-mail. O que eu realmente quero é apenas salvar todas as mensagens recebidas pelo meu servidor postfix em uma única caixa de correio, independentemente do nome de usuário no cabeçalho do destinatário. Aqui está o que eu vejo quando meu servidor postfix recebe um email:
Sep 9 18:42:01 db59bdabd3ea postfix/smtpd[1455]: connect from unknown[172.20.0.6]
Sep 9 18:42:01 db59bdabd3ea postfix/smtpd[1455]: 7B8CF1416E0: client=unknown[172.20.0.6]
Sep 9 18:42:03 db59bdabd3ea postfix/cleanup[1458]: 7B8CF1416E0: message-id=<>
Sep 9 18:42:03 db59bdabd3ea postfix/qmgr[110]: 7B8CF1416E0: from=<root@localhost>, size=170, nrcpt=1 (queue active)
Sep 9 18:42:03 db59bdabd3ea postfix/smtpd[1455]: disconnect from unknown[172.20.0.6]
Sep 9 18:42:03 db59bdabd3ea postfix/local[1459]: 7B8CF1416E0: to=<[email protected]>, relay=local, delay=2.1, delays=2.1/0.01/0/0.02, dsn=5.1.1, status=bounced (unknown user: "ya")
Sep 9 18:42:03 db59bdabd3ea postfix/cleanup[1458]: 908DE1416E4: message-id=<20160909184203.908DE1416E4@localhost>
Sep 9 18:42:03 db59bdabd3ea postfix/bounce[1460]: 7B8CF1416E0: sender non-delivery notification: 908DE1416E4
Sep 9 18:42:03 db59bdabd3ea postfix/qmgr[110]: 908DE1416E4: from=<>, size=1824, nrcpt=1 (queue active)
Sep 9 18:42:03 db59bdabd3ea postfix/qmgr[110]: 7B8CF1416E0: removed
Sep 9 18:42:03 db59bdabd3ea postfix/local[1459]: 908DE1416E4: to=<root@localhost>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Sep 9 18:42:03 db59bdabd3ea postfix/qmgr[110]: 908DE1416E4: removed
Aqui está o meu atual main.cf
(provavelmente há um monte de coisas desnecessárias, por favor, ignore-as):
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
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=no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = pcre:/etc/postfix/mydestinations
local_recipient_maps =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
defer_transports = smtp
#smtpd_sender_restrictions = static:HOLD
relayhost =
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
Como devo modificar a configuração para entregar todo o email recebido em uma única caixa de correio?
Adicionei o seguinte à minha configuração:
always_bcc = root@localhost
Agora, o postfix faz o que eu precisava: salva todos os e-mails recebidos em /var/mail/root
e esses e-mails não têm nenhum texto extra.
Tags postfix