Próbuję uzyskać raporty e-mail z naszych instancji AWS EC2. Korzystamy z Exchange Online (część Microsoft Online Services). Skonfigurowałem konto użytkownika specjalnie dla przekazywania SMTP i skonfigurowałem Postfix, aby spełniał wszystkie wymagania dotyczące przekazywania wiadomości przez ten serwer. Jednak serwer SMTP usługi Exchange Online odrzuci wiadomości, chyba że adres Od dokładnie odpowiada adresowi uwierzytelnienia (komunikat o błędzie to 550 5.7.1 Client does not have permissions to send as this sender
).
Dzięki starannej konfiguracji mogę skonfigurować moje usługi do wysyłania jako ten użytkownik. Ale nie jestem wielkim fanem uważności - wolałbym, żeby postfiks wymusił rozwiązanie tego problemu. Czy jest na to sposób?
źródło
sender_canonical_maps
Postfixa nie można zapisać odrzuconej poczty w lokalnej buforze i zamiast tego próbuje wysłać ją przez przekaźnik w nieskończonośćpostconf -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
(Uwaga: zarówno adresy FROM, jak i TO są dopasowywane w celu zastąpienia dowolnych tabel ogólnych i kanonicznych.)
Używanie tabeli kanonicznej po otrzymaniu poczty przez serwer jest już wyjaśnione, to inne odpowiedzi.
Możesz przepisać z adresów, gdy poczta jest wysyłana z serwera za pomocą
smtp_generic_maps
.Zgodnie z dokumentacją postfiksową :
Następnie wykonaj:
Referencje:
źródło
hash:
naregexp:
main.cf i użyć linii jak/foo.*@localdomain.local/ [email protected]
na mapie ogólnej. Wyjaśnia to strona man: postfix.org/generic.5.htmlAktualizacja: zgodnie z radą znajomego IT działam na wszystkich moich serwerach postfiks, zamiast tworzyć jeden serwer poczty w chmurze. Oto moje dotychczasowe rozwiązanie:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
/etc/postfix/generic
/etc/aliases
/etc/passwd
Rzeczy, z których jestem zadowolony:
alias
wskazuje, kto je otrzymuje.[email protected]
, więc dostaje się przez serwer SMTP MS Online.Rzeczy, z których nie jestem zadowolony:
passwd
Nazwa trik nie zawsze działa, a to może być trudne, aby dowiedzieć się, co serwer z poczty pochodzi.warning: smtp.mail.microsoftonline.com[65.55.171.153] offered null AUTH mechanism list
(Serwer SMTP wysyłaAUTH
listę zerową przedSTARTTLS
, aleAUTH LOGIN
po).certificate verification failed for smtp.mail.microsoftonline.com: num=20:unable to get local issuer certificate
(Istnieją pewne opcje konfiguracji wokół certyfikatów, ale nie jestem pewien, czy dostarczanie poczty przerywa się przy odnawianiu certyfikatu)certificate verification failed for smtp.mail.microsoftonline.com: num=27:certificate not trusted
(Taki sam jak nr 2)Dziękujemy społeczności serverfault za dzielenie się silnymi opiniami na temat serwerów pocztowych.
źródło
Możesz użyć smtpd_sender_login_maps, aby określić listę map: adres nadawcy - użytkownik.
Przykład:
/ etc / postfix / login-map:
Działa w przypadku wysyłania, powinien działać w taki sam sposób.
źródło
echo "This is a test" | /usr/sbin/sendmail [email protected]
nadal ustawia w kolejce (i ostatecznie przekazuje) pocztę od[email protected]
Używam mapowania kanonicznego do przepisywania adresu z, na przykład przepisywania root @ app01 na [email protected].
źródło