27 votes

Erreur Sendmail sur OS X Mountain Lion

J'obtiens une erreur lorsque j'essaie d'exécuter sendmail. Je suis sous OS X 10.8 Mountain Lion.

sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory

35voto

rob Points 11

Il suffit de l'exécuter dans le terminal

sudo mkdir -p /Library/Server/Mail/Data/spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start

Cela a fait l'affaire pour moi.

23voto

Jasper N. Brouwer Points 231

Afin de me débarrasser de tous les avertissements, j'ai dû procéder comme suit :

sudo mkdir -p /Library/Server/Mail/Data/spool
sudo gzip /usr/share/man/man1/{postalias.1,postcat.1,postconf.1,postdrop.1,postfix.1,postkick.1,postlock.1,postlog.1,postmap.1,postmulti.1,postqueue.1,postsuper.1,sendmail.1}
sudo gzip /usr/share/man/man5/{access.5,aliases.5,bounce.5,canonical.5,cidr_table.5,generic.5,header_checks.5,ldap_table.5,master.5,mysql_table.5,nisplus_table.5,pcre_table.5,pgsql_table.5,postconf.5,postfix-wrapper.5,regexp_table.5,relocated.5,tcp_table.5,transport.5,virtual.5}
sudo gzip /usr/share/man/man8/{anvil.8,bounce.8,cleanup.8,discard.8,error.8,flush.8,local.8,master.8,oqmgr.8,pickup.8,pipe.8,proxymap.8,qmgr.8,qmqpd.8,scache.8,showq.8,smtp.8,smtpd.8,spawn.8,tlsmgr.8,trivial-rewrite.8,verify.8,virtual.8}
sudo /usr/sbin/postfix set-permissions
sudo chmod 700 /Library/Server/Mail/Data/mta
sudo /usr/sbin/postfix start

3voto

Ben King Points 31

La solution semble également corriger une erreur dans 10.8 où le service de fax a cessé d'envoyer des e-mails après la mise à niveau 10.8.

0voto

duozmo Points 2039

TLDR : Changez le queue_directory variable dans /etc/postfix/main.cf à /var/spool/postfix .

Réponse complète :

Le site mkdir -p approche fonctionne probablement, mais je soupçonne qu'il y a une solution plus simple. Je vous préviens que je suis nouveau dans le monde de Postfix et que tout ceci peut être incorrect.

Il semble que les différentes éditions de Mac OS X utilisent l'un des deux répertoires racine pour le courrier :

  • /var/spool/postfix
  • /Library/Server/Mail

Ces deux éléments semblent avoir été mélangés au fil du temps. (Note /var est en fait un lien symbolique vers /private/var C'est pourquoi on les voit souvent utilisés de manière interchangeable).

De ce que je peux dire, /Library/Server/Mail est un répertoire qui Mac OS X Server utilise pour ses services de messagerie, qui dépendent de Postfix, mais ne sont pas les mêmes. /var/spool/postfix d'autre part, est le répertoire préféré (p. 14) pour les opérations internes de Postfix.

Il existe deux fichiers de configuration principaux qui font référence à ces répertoires :

  • /etc/postfix/main.cf
  • /System/Library/LaunchDaemons/org.postfix.master.plist

Vous voyez l'erreur "No such file or directory error", je suppose que c'est parce que le queue_directory dans le fichier de Postfix main.cf se réfère à /Library/Server/Mail/Data/spool qui n'existe pas. Sur Mac OS X normal ( Contrairement au serveur ), l'ensemble du /Library/Server n'existe pas. Au lieu de le créer, essayez de corriger le queue_directory variable à être /var/spool/postfix .

Un deuxième point d'incohérence se trouve dans les paramètres par défaut de launchd, le gestionnaire de démons de Mac OS X. Il n'est pas nécessaire de faire tourner Postfix tout le temps, car launchd peut surveiller un répertoire pour le courrier sortant et ne lancer Postfix que lorsqu'il y a quelque chose à envoyer. Pour s'assurer que cela se produira, l'option QueueDirectories la clé org.postfix.master.plist doit énumérer les maildrop sous-répertoire du répertoire dans main.cf 's queue_directory variable. Par exemple, j'ai changé mon org.postfix.master.plist à inclure :

<key>QueueDirectories</key>
<array>
        <string>/var/spool/postfix/maildrop</string>
</array>

Avec ces deux répertoires cohérents, Postfix devrait se lancer. Vous devriez être en mesure de regarder /var/log/mail.log pendant que tu cours :

$ sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist
$ sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
$ sudo launchctl start org.postfix.master

La dernière de ces commandes donne un coup de pouce à Postfix, afin que vous puissiez regarder mail.log pour un retour immédiat de débogage, mais encore une fois, il n'est pas nécessaire de l'exécuter sur une base normale. Launchd exécutera Postfix si nécessaire. (Si vous êtes certain de vouloir que Postfix tourne en permanence, utilisez l'option KeepAlive clé détaillée dans le launchd.plist page de manuel .)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X