Flux RSS des billets

Derniers billets

Activer Postfix sous Mac OS X

Il se peut que vous désiriez envoyer des emails en local avec le serveur SMTP de votre Mac. Les raisons peuvent être diverses, avec un portable hors de chez vous, certains fournisseurs d’accès refusent les emails sortants depuis certaines IP ou vous avez des scripts qui nécessitent l’envoi d’emails (de logs par exemple, c’est mon cas), donc il vous faut pouvoir les envoyer localement.

Mac OS X (depuis Panther) possède un serveur de messagerie, le renommé Postfix. Nous allons voir comment le faire tourner grâce au daemon launchd.
Ce document décrit la mise en route de Postfix, mais ne traite pas de sa configuration, voir sa documentation pour aller plus loin.

Les opérations suivantes doivent être réalisées en tant que root. En ce qui me concerne, j’utiliserai l’éditeur VIM.

main.cf

La première chose à faire et d’éditer main.cf, le principal fichier de configuration de Postfix qui se trouve sous /etc/postfix/. Au préalable, il est bon de faire une copie du fichier présent.

# mv /etc/postfix/main.cf /etc/postfix/main.cf.fab
# vim /etc/postfix/main.cf

Les paramètres myhostname, mydomain, myorigin et mynetworks_style doivent être renseignés. Le premier myhostname désigne la machine sur lequel tourne Postfix, il est tout à fait possible de laisser la valeur générique localhost.localdomain, mais je vais renseigner le FQDN de mon iBook sur mon réseau, représenté par le nom de la machine et du nom de domaine :

myhostname = osgiliath.feub.net

Ensuite, mydomain comme son nom l’indique représente le (les) nom de domaine pour lequel Postfix officiera. En général, il s’agit de la partie domaine du myhostname :

mydomain = feub.net

myorigin est le nom de domaine qui apparait dans le courrier envoyé à partir de ma machine. Il est usuel de mettre myhostname voir mydomain :

myorigin = $myhostname

Postfix ne relaie le courrier que des clients autorisés, il est donc bon de lui dire de qui avec le paramètre
mynetworks_style. Dans mon mon cas, j’autorise les machines du sous-réseau :

mynetworks_style = subnet

A noter que mynetworks pourrait être utilisé en spécifiant une adresse de réseau autorisée à la place d’un style. Par exemple :

mynetworks = 192.168.1.0/24

C’est l’un ou l’autre, si les deux paramètres mynetworks_style et mynetworks sont renseignés, mynetworks sera pris en compte.
Voilà pour la configuration du main.cf.

Enfin, pour relayer les courriers sortants, le paramètre relayhost doit être renseigné avec un serveur SMTP valide sur internet, par exemple celui d’Orange :

relayhost = [smtp.orange.fr]

org.isc.named.plist

Nous allons maintenant éditer le fichier plist de lancement de Postfix. Par défaut, celui-ci n’est pas démarré, il est en mode on demand, et nous voulons qu’il tourne toujours. Nous allons donc éditer le fichier org.postfix.master.plist qui se situe sous /System/Library/LaunchDaemons/ (il est bon d’en faire une copie de sauvegarde avant de le modifier) :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>	
	<string>org.postfix.master</string>
	<key>Program</key>
	<string>/usr/libexec/postfix/master</string>
	<key>ProgramArguments</key>
	<array>
		<string>master</string>
		<string>-e</string>
		<string>60</string>
	</array>
	<key>QueueDirectories</key>
	<array>
	<string>/var/spool/postfix/maildrop</string>
	</array>
	<key>OnDemand</key>
	<true/>
</dict>
</plist>

Il faut supprimer les paramètres -e 60 et dire au daemon qu’on ne veut pas le démarrer OnDemand, mais en RunAtLoad, car on veut qu’il soit toujours en fonctionnement. Voici donc le fichier modifié :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
  	<string>org.postfix.master</string>
  	<key>Program</key>
  	<string>/usr/libexec/postfix/master</string>
  	<key>ProgramArguments</key>
  	<array>
  		<string>master</string>
  	</array>
  	<key>QueueDirectories</key>
  	<array>
  		<string>/var/spool/postfix/maildrop</string>
  	</array>
  	<key>RunAtLoad</key>
	<true/>
</dict>
</plist>

Il faut maintenant démarrer ou redémarrer Postfix à l’aide de launchd :

# launchctl stop org.postfix.master
# launchctl start org.postfix.master

Pour voir si Postfix fonctionne, envoyer un email comme ceci :

# date | mail -s test nom @ mon@adresse.net

Si cela ne fonctionne pas, voir les logs sous /var/log/mail.log.

Utiliser le serveur comme SMTP local

Il est maintenant possible d'utiliser Postfix comme serveur SMTP pour le courrier sortant. Pour ce faire, il faut mettre localhost comme serveur SMTP dans Mail.app ou tout autre client de messagerie.


Cette article est la mise-à-jour d'un billet du 22 juillet 2008.

^.^

4 réponses

  1. gus dit :

    Très bon tuto qui m’a beaucoup servi !
    Merci

  2. [...] l’activation de Postfix, je vous renvoie vers cet excellent tutoriel (Activer Postfix sous Mac OS X par Fabien) qui va vous expliquer tout ce qu’il faut [...]

  3. Fabrice CROMBEZ dit :

    Excellent tuto : clair, net et précis.
    ça m’a beaucoup aidé.
    Merci

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser les balises et attributs HTML suivant : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

eXTReMe Tracker