So leiten Sie E-Mails über ein Google-Konto mit Postfix weiter

9

Ich möchte, dass nicht lokale E-Mails über mein persönliches Google-Konto weitergeleitet und lokal an lokale Benutzer gesendet werden. Meine Konfiguration lautet: / etc / postfix / transport

*            smtp:[smtp.gmail.com]:587

und /etc/postfix/main.cf

[root@media postfix]# cat main.cf
# This file contains only the parameters changed from a default install
# see /etc/postfix/main.cf.dist for a commented, fuller version of this file.
transport_maps = hash:/etc/postfix/transport
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes

/ etc / postfix / sasl_passwd:

[smtp.google.com]:587    [email protected]:mypass

Und nachdem ich gelaufen bin:

# postmap transport && postmap sasl_passwd
systemctl restart postfix.service

Jetzt versucht mein Server, eine Verbindung zu Google Mail MX herzustellen (ohne Erfolg, aber keine lokale E-Mail-Zustellung)

Protokolle von journalctl:

    Jul 06 18:38:01 media postfix/pickup[31431]: 30714960F8: uid=0 from=<root>
    Jul 06 18:38:01 media postfix/cleanup[31641]: 30714960F8: message- id=<[email protected]>
    Jul 06 18:38:01 media postfix/qmgr[31432]: 30714960F8: from=<[email protected]>, size=436, nrcpt=1 (queue active)
    Jul 06 18:38:01 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6c]:587: Network is unreachable
   Jul 06 18:38:01 media postfix/smtp[31643]: 30714960F8: to=<[email protected]>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.7, delays=0.03/0.04/0.55/0.07, ...M command))
    Jul 06 18:38:02 media postfix/cleanup[31641]: 0B85D960F9: message-id=<[email protected]>
    Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: from=<>, size=2555, nrcpt=1 (queue active)
    Jul 06 18:38:02 media postfix/bounce[31646]: 30714960F8: sender non-delivery notification: 0B85D960F9
    Jul 06 18:38:02 media postfix/qmgr[31432]: 30714960F8: removed
    Jul 06 18:38:02 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6d]:587: Network is unreachable
    Jul 06 18:38:02 media postfix/smtp[31643]: 0B85D960F9: to=<[email protected]>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.59, delays=0.02/0.01/0.51/0.06,...M command))
    Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: removed
    Jul 06 18:38:40 media auth[31778]: pam_tcb(dovecot:auth): Authentication passed for media from (uid=0)
    Jul 06 18:38:40 media dovecot[1442]: pop3-login: Login: user=<media>, method=PLAIN, rip=192.168.0.2, lip=192.168.0.7, mpid=31779, secured, session=<VZaXcdrgpADAqAAC>
    Jul 06 18:38:40 media dovecot[1442]: pop3(media): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
    Jul 06 18:38:58 media postfix/pickup[31431]: CD15D960F8: uid=0 from=<root>
    Jul 06 18:38:58 media postfix/cleanup[31641]: CD15D960F8: message-id=<[email protected]>
    Jul 06 18:38:58 media postfix/qmgr[31432]: CD15D960F8: from=<[email protected]>, size=430, nrcpt=1 (queue active)
    Jul 06 18:38:59 media postfix/smtp[31643]: CD15D960F8: to=<[email protected]>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.63, delays=0.02/0/0.54/0.06, dsn=5.5....M command))
    Jul 06 18:38:59 media postfix/cleanup[31641]: BAB0E960F9: message-id=<[email protected]>
    Jul 06 18:38:59 media postfix/qmgr[31432]: BAB0E960F9: from=<>, size=2541, nrcpt=1 (queue active)
    Jul 06 18:38:59 media postfix/bounce[31646]: CD15D960F8: sender non-delivery notification: BAB0E960F9
    Jul 06 18:38:59 media postfix/qmgr[31432]: CD15D960F8: removed
Jul 06 18:39:00 media postfix/smtp[31643]: BAB0E960F9: to=<[email protected]>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.66, delays=0.02/0.01/0.56/0.07,...M command))
    Jul 06 18:39:00 media postfix/qmgr[31432]: BAB0E960F9: removed

Irgendeine Hilfe, damit es funktioniert?

Mackowiakp
quelle
Befindet sich das Sternchen wirklich in Ihrem / etc / postfix / transport oder wurde es nur versehentlich zu Ihrer Frage hinzugefügt?
ein CVn

Antworten:

5

Sie müssen TLSden SMTP-Client von Postfix aktivieren , da Google dies benötigt. Dies wird von ihnen in der Nachricht angezeigt Must issue a STARTTLS command.

In /etc/postfix/main.cfmöchten Sie so etwas:

smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

und dann in /etc/postfix/tls_policy:

[smtp.gmail.com]:587 encrypt

Die linke Seite in tls_policymuss genau so aussehen wie Ihr Relayhost-Eintrag in main.cf.

Denken Sie daran, laufen postmapauf /etc/postfix/tls_policynach dem Erstellen oder Ändern sie je nach Bedarf.

Weitere Informationen finden Sie in der TLS-Dokumentation von Postfix.

Verweisen Sie auf diese Links

http://blog.bigdinosaur.org/postfix-gmail-and-you/

http://www.postfix.org/TLS_README.html#client_tls

Harikrishnan
quelle
2

Dies ist das Verfahren, das ich dafür verwende:

sudo apt-get install postfix.

Wenn Sie gefragt werden, welche Art von Mailserver Sie installiert haben, wählen Sie keine Konfiguration (die erste Option).

sudo nano /etc/postfix/main.cf

und fügen Sie dies ein

# 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
# listen on localhost only
inet_interfaces = 127.0.0.1

smtpd_banner = $myhostname ESMTP $mail_name

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

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

Speichern Sie die Datei. Jetzt erstellen wir die Datei mit dem Benutzernamen und dem Passwort in

sudo nano /etc/postfix/sasl_passwd

und fügen Sie Folgendes ein, um die erforderlichen Ersetzungen vorzunehmen

[smtp.gmail.com]:587    [email protected]:password

Speichern Sie es und an der Eingabeaufforderung

sudo postmap /etc/postfix/sasl_passwd

Dann

chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Schließlich,

sudo service postfix restart

Beachten Sie, dass Sie nach erfolgreichem Testen des E-Mail-Systems das Kennwort in sasl_passwd entfernen / verschleiern können.

Testen Sie es mit Ihrer Anwendung. Wenn Sie Probleme haben, überprüfen Sie /var/log/mail.log. Sie können mail-utils installieren, um ein Mail-Programm installieren zu lassen. Sie können dann mit testen

echo “this is a test” | mailx -s “This is the subject” [email protected]

Schließlich

Lauf

newaliases

um eine /etc/aliases.db Datei zu erstellen. Wenn Sie dies nicht tun, werden viele Fehler in /var/log/mail.err protokolliert. Wenn Sie SASL-Fehler erhalten (Postfix) Überprüfen Sie, ob sich der Hostname in / etc / hosts und / etc / hostname befindet. Wenn sich Postfix darüber beschwert, dass dies nicht der Fall ist Weiterleiten für eine bestimmte Host- / IP-Adresse (Postfix) Fügen Sie diese zu /etc/postfix/main.cf hinzu

mynetworks = 10.0.0.0/8

Auf diese Weise kann jeder mit einer 10.0.0.0-Adresse eine Verbindung herstellen. Natürlich sollten Sie dies so weit wie möglich verhindern, indem Sie entweder das Netzwerk einschränken und / oder eine Firewall oder Sicherheitsrichtlinie verwenden, die Ihnen zur Verfügung steht

GeoSword
quelle
OKAY. DANKE. Aber was verwenden Sie, um /etc/ssl/certs/Equifax_Secure_CA.pem Zertifikat zu erstellen / zu erhalten?
Mackowiakp
Mein Fehler, Sie sollten diese Zeile nicht brauchen. Ich habe den Beitrag oben bearbeitet, um dies widerzuspiegeln
GeoSword
Ich habe Informationen erhalten: <[email protected]>: host smtp.gmail.com [173.194.69.109] sagte: 530-5.5.1 Authentifizierung erforderlich. Weitere Informationen finden Sie unter 530 5.5.1 support.google.com/mail/bin/answer.py?answer=14257 fc7sm2465531bkc.3 - gsmtp (als Antwort auf den Befehl MAIL FROM) - daher muss MAIL FROM in einer solchen Konfiguration in der Relay-Definition enthalten sein . Wie kann ich es tun?
Mackowiakp
Oh s * & ^ * t! In / etc / postfix / sasl_passwd war [smtp.google.com]: 587 statt [smtp.gmail.com]: 587. Manchmal ist es furchtbar schwierig, einen so einfachen Fehler herauszufinden. DANKE! ARBEITET!
Mackowiakp
1

Überprüfen Sie zunächst die Authentifizierungsmethode von Google:

https://www.google.com/settings/security/lesssecureapps

Wenn die Seite für Ihr Konto nicht verfügbar ist, hat der Domänenadministrator diese Einstellungen für alle Benutzer deaktiviert (Standard).

Wenn Sie Ihre IP / Ihren Bereich in Relay SMTP in Google Admin auf die Whitelist setzen, können Sie E-Mails mit diesen Einstellungen senden

relayhost = [smtp-relay.gmail.com]:587
smtp_use_tls = yes
smtp_tls_loglevel=1
smtp_tls_security_level=encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = login, plain
smtp_tls_CApath = /etc/ssl/certs
smtp_sasl_tls_security_options = noanonymous

Als Allow less secure apps: OFFich jedoch immer folgende Nachrichten erhielt:

(SASL authentication failed; server smtp-relay.gmail.com[173.194.204.28] said: 534-5.7.14
... Please log in via your web browser and?534-5.7.14 then try again.?534-5.7.14
Learn more at?534 5.7.14  https://support.google.com/mail/answer/78754 g133sm1077601qkb.1 - gsmtp)

Es wurden jedoch immer noch Nachrichten zugestellt (was etwas seltsam ist), obwohl es etwas länger dauerte, bis die Nachricht an den Empfänger gesendet wurde.

Tombart
quelle