Estou tentando obter relatórios de email de nossas instâncias do AWS EC2. Estamos usando o Exchange Online (parte do Microsoft Online Services). Configurei uma conta de usuário especificamente para retransmissão SMTP e configurei o Postfix para atender a todos os requisitos para retransmitir mensagens através deste servidor. No entanto, o servidor SMTP do Exchange Online rejeitará as mensagens, a menos que o endereço De corresponda exatamente ao endereço de autenticação (a mensagem de erro é 550 5.7.1 Client does not have permissions to send as this sender
).
Com uma configuração cuidadosa, posso configurar meus serviços para enviar como este usuário. Mas não sou muito fã de tomar cuidado - prefiro que o postfix force o problema. Existe uma maneira de fazer isso?
fonte
sender_canonical_maps
postfix, não é possível salvar as mensagens rejeitadas no spool local e, em vez disso, tenta enviá-las através de retransmissão infinitamentepostconf -e sender_canonical_classes=envelope_sender,header_sender
postconf -e sender_canonical_maps=regexp:/etc/postfix/sender_canonical_maps
postconf -e smtp_header_checks=regexp:/etc/postfix/header_check
(Nota: os endereços FROM e TO são correspondidos para substituição em qualquer uma das tabelas genéricas e canônicas.)
O uso da tabela canônica quando o correio é recebido pelo servidor já está explicado. Outras respostas.
Você pode reescrever os endereços FROM quando o email é enviado do servidor usando
smtp_generic_maps
.De acordo com a documentação do postfix :
Então faça:
Referências:
fonte
hash:
pararegexp:
no main.cf e usar linhas como/foo.*@localdomain.local/ [email protected]
no mapa genérico. Isso é explicado na página de manualAtualização: por recomendação de um amigo de TI, estou executando o postfix em todos os meus servidores, em vez de criar um servidor de correio na nuvem. Aqui está a minha solução até agora:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
/etc/postfix/generic
/etc/aliases
/etc/passwd
Coisas pelas quais estou feliz:
alias
indica quem as recebe.[email protected]
, para serem enviadas pelo servidor SMTP do MS Online.Coisas pelas quais não estou feliz:
passwd
truque de nomes nem sempre funciona e pode ser difícil descobrir de que servidor é proveniente um email.warning: smtp.mail.microsoftonline.com[65.55.171.153] offered null AUTH mechanism list
(O servidor SMTP envia umaAUTH
lista nula antesSTARTTLS
, masAUTH LOGIN
depois).certificate verification failed for smtp.mail.microsoftonline.com: num=20:unable to get local issuer certificate
(Existem algumas opções de configuração em torno de certificados, mas não tenho certeza se a entrega de correio é interrompida quando o certificado é renovado)certificate verification failed for smtp.mail.microsoftonline.com: num=27:certificate not trusted
(Igual ao nº 2)Obrigado à comunidade serverfault por compartilhar opiniões fortes em servidores de correio.
fonte
Você pode usar smtpd_sender_login_maps para especificar uma lista de mapas: endereço do remetente - usuário.
Exemplo:
/ etc / postfix / login-map:
Funciona para envio, deve funcionar para retransmitir da mesma maneira.
fonte
echo "This is a test" | /usr/sbin/sendmail [email protected]
ainda filas (e, eventualmente, relés) o e-mail como vindo de[email protected]
Uso o mapeamento canônico para reescrever o endereço de origem, como reescrever root @ app01 para [email protected].
fonte