Activer Postfix sous Mac OS X

Envoyer des emails avec le serveur de messagerie de Tiger et Leopard

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





	Label	
	org.postfix.master
	Program
	/usr/libexec/postfix/master
	ProgramArguments
	
		master
		-e
		60
	
	QueueDirectories
	
	/var/spool/postfix/maildrop
	
	OnDemand
	


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é :





	Label
  	org.postfix.master
  	Program
  	/usr/libexec/postfix/master
  	ProgramArguments
  	
  		master
  	
  	QueueDirectories
  	
  		/var/spool/postfix/maildrop
  	
  	RunAtLoad
	


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.

6 réflexions sur « Activer Postfix sous Mac OS X »

  1. Excellent Tuto……… à une ligne près : celle qui lance le test final (l’envoi d’un mail) – à laquelle je n’ai rien compris ! J’ai envoyé mon mail de test de la façon suivante, plus simple à mon avis :

    mail monadresse@monhebergeur
    Subject: MonSujetDeTest
    MonTexteDeTest
    .
    Sur Mac, le « . » final peut ou doit être remplacé par un ctrl-D (= EOT).

    Et ça marche : merci à vous !

    1. Merci pour le message. Le billet date un peu ;)

      La commande date retourne la date actuelle, puis le pipe (le signe |) signifie que la sortie de cette commande sera envoyée à l’entrée de la commande suivante qui est la commande classique mail GNU/Linux qui existe sous OS X, qui peut prendre le sujet de l’email en paramètre avec le -s et se termine par l’adresse où envoyer le message.
      Donc en une seule ligne et sans interaction j’envoie un email de test.

Laisser un commentaire

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