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    myuser@gmail.com: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=<20130706163801.30714960F8@media.localdomain>
    Jul 06 18:38:01 media postfix/qmgr[31432]: 30714960F8: from=<root@media.localdomain>, 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=<mackowiakp23@gmail.com>, 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=<20130706163802.0B85D960F9@media.localdomain>
    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=<root@media.localdomain>, 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=<20130706163858.CD15D960F8@media.localdomain>
    Jul 06 18:38:58 media postfix/qmgr[31432]: CD15D960F8: from=<root@media.localdomain>, size=430, nrcpt=1 (queue active)
    Jul 06 18:38:59 media postfix/smtp[31643]: CD15D960F8: to=<mackowiakp@op.pl>, 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=<20130706163859.BAB0E960F9@media.localdomain>
    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=<root@media.localdomain>, 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?


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


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    user.name@gmail.com: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” destination@example.com

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


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: <test.user@domain.com>: 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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.