Wie konfiguriere ich exim4, um E-Mails über einen kennwortgeschützten SSL-SMTP-Mailserver zu senden?

19

Ich möchte, dass meine Cronjobs E-Mails von meinem Heimcomputer senden können. Meine Server konfigurieren exim4 folgendermaßen:

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'

Zu Hause blockiert mein ISP jedoch E-Mails, die direkt über eine Firewall gesendet werden. Ich habe einen kennwortgeschützten SSL-SMTP-Server, über den ich die E-Mails weiterleiten konnte, aber es ist mir nicht gelungen, herauszufinden, wie exim4 so konfiguriert werden kann, dass dies funktioniert. Ich hoffe, jemand kann mir ein Konfigurationsbeispiel geben, in dem ich den Hostnamen, den Benutzernamen, das Passwort und "use ssl" eingeben kann, damit E-Mails über einen einzelnen SMTP-Server gesendet werden.

Stephen Ostermiller
quelle

Antworten:

25

Ich habe endlich eine detaillierte Anleitung von Tony Scelfo gefunden, die tatsächlich funktioniert . Anscheinend müssen Sie Transport Layer Security (TLS) für Port 587 verwenden. Ich habe SSL SMTP nicht zum Laufen bekommen.

Führen Sie zuerst sudo dpkg-reconfigure exim4-configdiese Konfigurationsoptionen aus und verwenden Sie sie:

  • Allgemeine Art der E-Mail-Konfiguration: E-Mail von Smarthost gesendet; über SMTP oder Fetchmail empfangen
  • Systemmailname: <Ihr Hostname>
  • IP-Adresse für eingehende SMTP-Verbindungen: 127.0.0.1
  • Andere Ziele, für die E-Mails akzeptiert werden: <Ihr Hostname>
  • Computer, für die E-Mails weitergeleitet werden sollen: <leer lassen>
  • IP-Adresse oder Hostname des ausgehenden Smarthosts: mail.example.com::587
  • Lokalen Mailnamen in ausgehender Mail verbergen?
    • Ja, alle ausgehenden E-Mails scheinen von Ihrem Google Mail-Konto zu stammen
    • Nein - E-Mails, die mit einem gültigen Absendernamen gesendet werden, behalten den Namen des Absenders
  • Anzahl der DNS-Anfragen minimal halten (Dial-on-Demand)? Nein
  • Zustellmethode für lokale Post: <Wählen Sie die von Ihnen bevorzugte Methode >
  • Konfigurationsdatei in kleine Dateien aufteilen? Ja (als nächstes müssen Sie eine der Dateien bearbeiten)

Führen sudo vi /etc/exim4/passwd.clientSie dann die folgenden Zeilen für Ihren E-Mail-Host und alle darin enthaltenen Aliase aus und fügen Sie sie hinzu (gefunden durch nslookup). Ersetzen Sie <E-Mail-Adresse> und <Passwort> durch das Konto, über das Sie E-Mails weiterleiten möchten.):

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

Sobald Sie die passwd.clientDatei bearbeitet haben , führen Sie sudo update-exim4.confdiese aus, um Ihre Änderungen in Ihre Exim4-Konfiguration zu integrieren.

Führen Sie aus, sudo /etc/init.d/exim4 restartund stellen Sie sicher, dass der Dienst ordnungsgemäß beendet und gestartet wird. Wenn der Dienst nicht neu gestartet werden kann, ist wahrscheinlich beim Bearbeiten der passwd.clientDatei ein Fehler aufgetreten.

Wenn Exim4 neu gestartet wurde, führen Sie es aus sudo tail -f /var/log/exim4/mainlog, um die E-Mail-Protokolle zu überwachen. Senden Sie in einem anderen Fenster eine E-Mail von Ihrem System und vergewissern Sie sich, dass ein Datensatz R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16darin enthalten ist. Dies X=TLSbedeutet, dass die E-Mail mit der gewünschten Transportschichtsicherheit gesendet wird.

Stephen Ostermiller
quelle
1
Sie müssen die Konfigurationsdatei nicht in kleine Dateien aufteilen, da /etc/exim4/passwd.clientes sich in beiden Fällen um eine separate Datei handelt.
Führen Sie CMD
Bitte beachten Sie, dass die Angabe des SMTP-Ports möglicherweise nicht bei allen Mailservern funktioniert. Aber exim4wird TLS verwenden sowieso mit dem Standard - SMTP - Port , wenn der Mail - Server bietet es. Dies kann anhand der X=Informationen in/var/log/exim4/mainlog
Run CMD
Bitte zeigen Sie mir einfach die richtige Richtung. Ich möchte keine Frage wiederholen. Was ist, wenn ich möchte, dass alle Benutzer ihre eigenen stmp-Passwörter in ihren HOME-Verzeichnissen festlegen? Sucht exim4 nach verschiedenen passwd.client? Tx
Dr. Beco
Das klingt nach einer neuen Frage für mich
Stephen Ostermiller
@DrBeco Wenn Sie eine bestimmte Frage haben, die für diese Frage oder Antwort nicht spezifisch ist, stellen Sie sie bitte als Frage .
Thomas Ward
5

Wenn Ihr ISP eine Authentifizierung erfordert, sollten Sie dc_smarthost auf die von Ihrem ISP verwendete Kombination aus Hostname und Port des Mailservers und dc_eximconfig_configtype auf "smarthost" setzen:

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

Anschließend können Sie Ihre Anmeldeinformationen /etc/exim4/passwd.clientwie folgt hinzufügen :

mail.example.com:username:password

Alle über Ihren exim4-Server gesendeten E-Mails werden dann über diesen E-Mail-Host weitergeleitet.

dobey
quelle
10
In der update-exim4.conf habe ich zwei Doppelpunkte für die Smarthost-Zeile eingefügt, wie in dc_smarthost='mail.example.com::587'und das hat den Unterschied ausgemacht ! Schließlich begann das Senden von E-Mails durch.
Marcos
+1 Dies ist ein sehr häufiger Fehler, den ich in vielen Tutorials gesehen habe.
TwystO
4

Das funktioniert bei mir sehr gut. Mein ISP verwendet Port 25 und dc_smarthost='myisp.mail.server:25' nach dem Ändern dieser Dateien und dem Ausgeben von Befehlen:

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

Nachdem ich einen Test gemacht habe, um eine E-Mail über exim4 classic zu senden, Beispiel:

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

Und diese fließen ok in den Posteingang von my-userin my-domain-url.

gsavix
quelle