Erreur Sendmail sur OS X Mountain Lion


27

Je reçois 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

Réponses:


35

Exécutez simplement 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.


Merci d'avoir essayé, le courrier ne sortait pas et obtenait l'erreur suivante: postdrop: avertissement: mail_queue_enter: créer le fichier maildrop / 609676.26828: autorisation refusée

J'ai également dû faire sudo / usr / sbin / postfix set-permissions et maintenant cela fonctionne

Merci beaucoup, cela a fonctionné comme un charme même si cela a jeté quelques erreurs et avertissements étranges.
Swader

J'ai suivi> sudo mkdir ... et ça marche. Merci pour la solution.
Abhinav Chittora

23

Afin de me débarrasser de tous les avertissements, j'ai dû faire ce qui 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

1
Je ne pense pas que la fermeture éclair des pages de manuel soit nécessaire.
nohillside

3
Il est nécessaire de compresser les pages de manuel pour éviter cet avertissement lors de l'exécution de set-permissions:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Andrew Ferrier

Cela a fonctionné comme un charme, juste collé le tout et bon. Merci @Jasper!
adriandz

3

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


0

TLDR : Modification de la queue_directoryvariable /etc/postfix/main.cfà /var/spool/postfix.

Réponse complète:

L' mkdir -p approche fonctionne probablement, mais je soupçonne qu'il existe une solution plus simple. Juste avertissement, je suis nouveau sur Postfix, et cela peut être incorrect.

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

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

Ces deux semblent avoir été confus au fil du temps. (La note /varest en fait un lien symbolique vers /private/var, donc vous voyez souvent ceux utilisés de manière interchangeable.)

D'après ce que je peux dire, /Library/Server/Mailest un répertoire que 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 "Pas une telle erreur de fichier ou de répertoire", je suppose, parce que la queue_directoryvariable dans Postfix main.cffait référence /Library/Server/Mail/Data/spool, qui n'existe pas. Sur Mac OS X normal ( contrairement au serveur ), le /Library/Serverrépertoire entier n'existe pas. Au lieu de le créer, essayez de corriger la queue_directoryvariable /var/spool/postfix.

Un deuxième point d'incohérence réside dans les paramètres par défaut de launchd, le gestionnaire de démons de Mac OS X. Il n'est pas nécessaire d'exécuter Postfix tout le temps, car launchd peut surveiller un répertoire pour le courrier sortant et exécuter Postfix uniquement lorsqu'il y a quelque chose à envoyer. Pour s'assurer que cela se produira, la QueueDirectoriesclé de org.postfix.master.plistdoit répertorier le maildropsous - répertoire du répertoire dans main.cfla queue_directoryvariable de. Par exemple, j'ai modifié mon org.postfix.master.plistfichier pour 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 pouvoir regarder /var/log/mail.logpendant que vous courez:

$ 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 démarre Postfix, vous pouvez donc surveiller les mail.logcommentaires de débogage immédiats, mais encore une fois, il n'est pas nécessaire de les exécuter normalement. Launchd exécutera Postfix au besoin. (Si vous êtes certain que vous voulez que Postfix fonctionne tout le temps, utilisez la KeepAliveclé détaillée dans la launchd.plistpage de manuel .)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.