Error de Sendmail en OS X Mountain Lion

28

Recibo un error al intentar ejecutar sendmail. Estoy en OS X 10.8 Mountain Lion.

sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
    
pregunta Jason Waldrip 18.06.2012 - 19:08

4 respuestas

36

Solo ejecuta en la terminal

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

Eso hizo el truco para mí.

    
respondido por el LevB 26.07.2012 - 05:11
24

Para deshacerme de todas las advertencias tuve que hacer lo siguiente:

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
    
respondido por el Jasper N. Brouwer 19.09.2012 - 11:22
3

La solución también parece corregir un error en 10.8 en el que el servicio de fax dejó de enviar correos electrónicos después de la actualización 10.8.

    
respondido por el Ben King 02.08.2012 - 22:32
0

TLDR : cambia la variable queue_directory en /etc/postfix/main.cf a /var/spool/postfix .

Respuesta completa:

El enfoque de mkdir -p funciona, pero sospecho que hay una solución más sencilla. Advertencia justa, soy nuevo en Postfix, y todo esto puede ser incorrecto.

Parece que varias ediciones de Mac OS X usan uno de los dos directorios raíz para el correo:

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

Estos dos parecen haberse confundido con el tiempo. (La nota /var es en realidad un enlace simbólico a /private/var , por lo que a menudo ves los que se usan indistintamente).

Por lo que puedo decir, /Library/Server/Mail es un directorio que Mac OS X Server utiliza para sus servicios de correo , que dependen de, pero no son lo mismo que, Postfix. /var/spool/postfix , por otro lado, es el directorio preferido (p. 14) para las operaciones internas de Postfix.

Hay dos archivos de configuración principales que hacen referencia a estos directorios:

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

Estoy viendo el mensaje "No hay tal error de archivo o directorio", sospecho, porque la variable queue_directory en main.cf de Postfix se refiere a /Library/Server/Mail/Data/spool , que no existe. En Mac OS X ( Server ), el directorio /Library/Server completo no lo hace ' t existen En lugar de crearlo, intente corregir la variable queue_directory para que sea /var/spool/postfix .

Un segundo punto de inconsistencia se encuentra en la configuración predeterminada de launchd, el administrador de demonios de Mac OS X. No es necesario ejecutar Postfix todo el tiempo, ya que launchd puede ver un directorio para el correo saliente y solo ejecuta Postfix cuando hay algo que enviar. Para asegurarse de que esto suceda, la clave QueueDirectories en org.postfix.master.plist necesita listar el subdirectorio maildrop del directorio en la variable main.cf 's queue_directory . Por ejemplo, cambié mi archivo org.postfix.master.plist para incluir:

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

Con estos dos directorios consistentes, Postfix debería iniciarse. Debería poder ver /var/log/mail.log mientras ejecuta:

$ 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

El último de estos comandos kick-starts Postfix, por lo que puede ver mail.log en busca de retroalimentación de depuración inmediata, pero nuevamente no es necesario ejecutar de forma normal. Launchd ejecutará Postfix según sea necesario. (Si está seguro de que desea que Postfix se ejecute todo el tiempo, use la clave KeepAlive que se detalla en launchd.plist man page .)

    
respondido por el duozmo 20.10.2013 - 04:29

Lea otras preguntas en las etiquetas