Jak skonfigurować exim4, aby wysyłał pocztę przez chroniony hasłem serwer pocztowy ssl smtp?


19

Chciałbym, aby moje cronjobs mogły wysyłać pocztę z mojego komputera domowego. Moje serwery konfigurują exim4 w następujący sposób:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

Jednak w domu mój dostawca usług internetowych blokuje pocztę wysyłaną bezpośrednio przez zaporę. Mam chroniony hasłem serwer sst smtp, przez który mógłbym przekierowywać pocztę, ale nie udało mi się dowiedzieć, jak skonfigurować exim4, aby działał. Mam nadzieję, że ktoś da mi przykład konfiguracji, w której mogę podłączyć nazwę hosta, nazwę użytkownika, hasło i „użyć ssl”, aby wysłać go przez pojedynczy serwer smtp.

Odpowiedzi:


25

W końcu znalazłem szczegółowy zestaw instrukcji Tony Scelfo, który faktycznie działa . Wygląda na to, że musisz użyć zabezpieczeń warstwy transportu (TLS) na porcie 587. Nie dostałem SSL SMTP do pracy.

Najpierw uruchom sudo dpkg-reconfigure exim4-configi użyj tych opcji konfiguracji:

  • Ogólny typ konfiguracji poczty : poczta wysyłana przez smarthost; otrzymane przez SMTP lub fetchmail
  • Systemowa nazwa poczty: <twoja nazwa hosta>
  • Adres IP do nasłuchiwania dla przychodzących połączeń SMTP: 127.0.0.1
  • Inne miejsca docelowe, dla których poczta jest akceptowana: < nazwa hosta>
  • Maszyny do przekazywania poczty dla: <pozostaw to pole puste>
  • Adres IP lub nazwa hosta wychodzącego hosta inteligentnego: mail.example.com::587
  • Ukryć nazwę lokalnej poczty w poczcie wychodzącej?
    • Tak - wszystkie wiadomości wychodzące będą prawdopodobnie pochodzić z Twojego konta Gmail
    • Nie - poczta wysłana z prawidłowym nagłówkiem nazwy nadawcy zachowa nazwę nadawcy
  • Utrzymać minimalną liczbę zapytań DNS (telefon na żądanie)? Nie
  • Sposób dostarczenia poczty lokalnej: <wybierz ten, który wolisz>
  • Czy podzielić plik konfiguracyjny na małe pliki? Tak (następnie musisz edytować jeden z plików)

Następnie uruchom sudo vi /etc/exim4/passwd.clienti dodaj następujące wiersze dla swojego hosta poczty oraz wszelkie aliasy, które ma (znaleziono przez nslookup). Zastąp <adres e-mail> i <hasło> kontem, przez które chcesz kierować pocztę):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

Po edycji passwd.clientpliku uruchom, sudo update-exim4.confktóry zintegruje twoje zmiany z konfiguracją Exim4.

Uruchom sudo /etc/init.d/exim4 restarti upewnij się, że usługa zatrzymuje się i uruchamia poprawnie. Jeśli usługa nie może się zrestartować, prawdopodobnie coś poszło nie tak podczas edycji passwd.clientpliku.

Jeśli Exim4 zrestartuje się, śmiało i biegnij, sudo tail -f /var/log/exim4/mainlogaby obejrzeć dzienniki poczty. W innym oknie wyślij wiadomość e-mail ze swojego systemu i upewnij się, że widzisz w niej rekord R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16. Te X=TLSśrodki, że poczta jest wysyłana z zabezpieczenia warstwy transportowej, która jest, co chcesz.


1
Nie trzeba „dzielić pliku konfiguracyjnego na małe pliki”, ponieważ i tak /etc/exim4/passwd.clientjest to osobny plik.
Uruchom CMD

Pamiętaj, że określenie portu SMTP może nie działać ze wszystkimi serwerami pocztowymi. Ale i exim4tak użyje TLS z domyślnym portem SMTP, jeśli serwer pocztowy go oferuje. Można to sprawdzić, patrząc na X=informacje/var/log/exim4/mainlog
Uruchom CMD

Proszę, po prostu wskaż mi właściwy kierunek. Nie chcę powielać jakiegoś pytania. Co jeśli chcę, aby wszyscy użytkownicy ustawili własne hasła stmp w swoich katalogach HOME? Czy exim4 będzie szukał różnych passwd.client? Tx
Dr Beco

To brzmi jak nowe pytanie do mnie
Stephen Ostermiller

@DrBeco Jeśli masz konkretne pytanie, które nie jest specyficzne dla tego pytania lub odpowiedzi, zadaj je jako pytanie .
Thomas Ward

5

Jeśli twój dostawca usług internetowych wymaga uwierzytelnienia, powinieneś ustawić dc_smarthost na nazwę hosta i port serwera pocztowego używanego przez twojego ISP, a dc_eximconfig_configtype na „smarthost” w następujący sposób:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Następnie możesz dodać swoje dane uwierzytelniające, aby /etc/exim4/passwd.client:

mail.example.com:username:password

Następnie każda poczta wysłana przez serwer exim4 będzie kierowana przez tego hosta poczty.


10
W update-exim4.conf wstawiłem dwa dwukropki dla linii smarthost, jak w, dc_smarthost='mail.example.com::587'i zrobiło to różnicę! W końcu zaczął wysyłać pocztę przez.
Marcos,

+1 To bardzo częsty błąd, który widziałem na wielu tutorialach.
TwystO

4

To działa dla mnie bardzo dobrze. Mój dostawca usług internetowych używa portu 25 i dc_smarthost='myisp.mail.server:25' po zmianie tych plików wydaje polecenia:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

Po wykonaniu testu, aby wysłać wiadomość e-mail za pomocą klasycznej próbki exim4, takiej jak:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

A te przepływają ok do skrzynki odbiorczej my-userw my-domain-url.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.