Ayant un peu patiné avec la configuration, je me dis que cela pourrait intéresser d’autres personnes…
Setup/Cahier des charges:
- Fedora 11 sur une VM Amazon EC2 (voir ce précédent billet pour mettre à jour depuis la version 8 fournie)
- Postfix, utilisé uniquement comme relais local vers Google Apps
- S’authentifier sur Google Apps pour envoyer les mails
- Rediriger les mails root sur ma boite (crontab…)
Voici les différentes étapes pour y arriver!
Configuration de Postfix
La configuration se fait sur plusieurs fichiers (en gras l’important):
/etc/postfix/main.cf
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix mydomain = eu-west-1.compute.internal myorigin = mondomainegoogleapps.fr inet_interfaces = localhost mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.5.6/samples readme_directory = /usr/share/doc/postfix-2.5.6/README_FILES inet_protocols = ipv4 smtpd_tls_key_file = smtp_use_tls = yes relayhost = [smtp.gmail.com]:587 transport_maps = hash:/etc/postfix/transport smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
/etc/postfix/sasl_passwd
[smtp.gmail.com]:587 emailQuiEnvoiMail@mondomainegoogleapps.fr:monmotdepasse
/etc/newaliases
[..] root: monemailamoi@mondomainegoogleapps.fr
Appliquer la configuration
postmap transportpostmap sasl_password
newaliases
chkconfig postfix on
/etc/init.d/postfix restart
Tester
echo "hello world" | mail -s "mail envoye a root local" root
Explications
tous les mails à destination d’un domaine autre que mydestination ($myhostname, localhost.$mydomain, localhost) est routé via smtp.gmail.com en s’authentifiant auprès de ce dernier via le compte configuré dans sasl_passwd. Google Apps/Gmail remplacera le nom de l’expéditeur par le compte qui est utilisé pour envoyé le mail.
pour les mails envoyé à root, le système ajoute automatiquement @hostname.domain. Il faut donc que postfix considère eu-west-1.compute.internal comme étant son domaine. Bien sûr, il faut remplacer cette valeur par la région où est hébergée votre VM (grep search /etc/resolv.conf)