Comment relayer le courrier via un compte Google en utilisant Postfix

9

Je souhaite que les e-mails non locaux soient relayés via mon compte Google personnel et locaux pour être remis à l'utilisateur local. Ma configuration est: / etc / postfix / transport

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

et /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

Et après avoir couru:

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

Alors maintenant, mon serveur essaie de se connecter à gmail MX (sans succès mais ne délivre pas d'email localement

Journaux de 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

Une aide pour le faire fonctionner?

mackowiakp
la source
Cet astérisque est-il vraiment dans votre / etc / postfix / transport, ou est-ce juste quelque chose qui a été ajouté par inadvertance à votre question?
un CVn le

Réponses:

5

Vous devez activer TLSle client SMTP de Postfix, car Google l'exige. Ceci est indiqué par eux dans le message Must issue a STARTTLS command.

Dans /etc/postfix/main.cf, vous voulez quelque chose comme ça:

smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

puis dans /etc/postfix/tls_policy:

[smtp.gmail.com]:587 encrypt

Le côté gauche de tls_policydoit apparaître exactement de la même manière que votre entrée d'hôte relais dans main.cf.

Rappelez - vous de courir postmapsur /etc/postfix/tls_policyaprès la création ou la modifier selon les besoins.

Vous pouvez trouver plus de détails dans la documentation TLS de Postfix.

Référez ces liens

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

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

Harikrishnan
la source
2

Voici la procédure que j'utilise pour cela:

sudo apt-get install postfix.

S'il vous demande quel type de serveur de messagerie vous êtes installé, choisissez aucune configuration (la première option)

sudo nano /etc/postfix/main.cf

et collez-le dans

# 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

Enregistrez le fichier, maintenant nous créons le fichier avec le nom d'utilisateur et le mot de passe dans

sudo nano /etc/postfix/sasl_passwd

et collez ce qui suit en faisant les remplacements requis

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

Enregistrez-le et à l'invite de commande

sudo postmap /etc/postfix/sasl_passwd

alors

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

Finalement,

sudo service postfix restart

Notez qu'une fois que vous avez testé avec succès le système de messagerie, vous pouvez supprimer / masquer le mot de passe dans sasl_passwd.

Testez-le avec votre application. Si vous avez des problèmes, consultez /var/log/mail.log Vous pouvez installer apt-get mail-utils pour qu'il installe un programme de messagerie. vous pouvez ensuite tester avec

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

finalement

Courir

newaliases

pour créer un fichier /etc/aliases.db. Si vous ne le faites pas, il enregistrera beaucoup d'erreurs à ce sujet dans /var/log/mail.err Si vous obtenez des erreurs SASL (postfix) Vérifiez que le nom d'hôte est dans / etc / hosts et / etc / hostname Si postfix se plaint de ne pas pouvoir relayer pour une adresse IP / hôte donnée (postfix) Ajoutez ceci à /etc/postfix/main.cf

mynetworks = 10.0.0.0/8

Cela permettra à toute personne disposant d'une adresse 10.0.0.0 de se connecter, vous devez évidemment le boulonner autant que possible, soit en restreignant le réseau, et / ou en utilisant un pare-feu ou une politique de sécurité à votre disposition

GeoSword
la source
D'ACCORD. THX. Mais qu'utilisez-vous pour créer / obtenir le certificat /etc/ssl/certs/Equifax_Secure_CA.pem?
mackowiakp
Mon erreur, vous ne devriez pas avoir besoin de cette ligne. J'ai édité le post ci-dessus pour refléter cela
GeoSword
J'ai reçu des informations: <[email protected]>: l'hôte smtp.gmail.com [173.194.69.109] a dit: 530-5.5.1 Authentification requise. En savoir plus sur 530 5.5.1 support.google.com/mail/bin/answer.py?answer=14257 fc7sm2465531bkc.3 - gsmtp (en réponse à la commande MAIL FROM) - donc dans une telle configuration MAIL FROM doit être inclus dans la définition du relais . Comment puis-je le faire?
mackowiakp
Oh s * & ^ * t! Dans / etc / postfix / sasl_passwd se trouvait [smtp.google.com]: 587 au lieu de [smtp.gmail.com]: 587. Il est parfois extrêmement difficile de découvrir une erreur aussi simple. THX! TRAVAUX!
mackowiakp
1

Tout d'abord, assurez-vous de vérifier d'abord la méthode d'authentification de Google:

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

Si la page n'est pas disponible pour votre compte, l'administrateur du domaine a désactivé ces paramètres pour tous les utilisateurs (par défaut).

Lorsque vous mettez votre IP / plage en liste blanche dans Relay SMTP dans google admin, vous pouvez envoyer des e-mails avec ces paramètres

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

Cependant, quand Allow less secure apps: OFFje recevais toujours ces messages:

(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)

mais les messages étaient toujours livrés (ce qui est un peu étrange), bien qu'il ait fallu un peu plus de temps pour envoyer le message à son destinataire.

Tombart
la source