Error de Sendmail en OS X Mountain Lion


27

Recibo un error cuando intento ejecutar sendmail. Estoy en OS X 10.8 Mountain Lion.

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

Respuestas:


35

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í.


Gracias, intenté que el correo no saliera y recibiera el siguiente error: postdrop: advertencia: mail_queue_enter: create file maildrop / 609676.26828: Permiso denegado

Tuve que hacer sudo / usr / sbin / postfix set-permissions también y ahora funciona

Muchas gracias, esto funcionó de maravilla a pesar de que arrojó algunos errores extraños y advertencias.
Swader

Seguí> sudo mkdir ... y funciona. Gracias por la solucion.
Abhinav Chittora

23

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

1
No creo que sea necesario comprimir las páginas del manual.
nohillside

3
Es necesario comprimir las páginas del manual para evitar esta advertencia cuando se ejecutan los permisos establecidos:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Andrew Ferrier

Esto funcionó a las mil maravillas, simplemente lo pegué todo y listo. Gracias @Jasper!
adriandz

3

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


0

TLDR : cambie la queue_directoryvariable /etc/postfix/main.cfa /var/spool/postfix.

Respuesta completa:

El mkdir -p enfoque probablemente funcione, pero sospecho que hay una solución más simple. 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. (Nota /vares en realidad un enlace simbólico a /private/var, por lo que a menudo ve que se usan indistintamente)

Por lo que puedo decir, /Library/Server/Mailes un directorio que Mac OS X Server usa para sus servicios de correo, que dependen, pero no son lo mismo, de 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

Sospecha que "No existe tal error de archivo o directorio", sospecho, porque la queue_directoryvariable en Postfix main.cfhace referencia /Library/Server/Mail/Data/spool, que no existe. En Mac OS X normal (a diferencia del servidor ), /Library/Serverno existe todo el directorio. En lugar de crearlo, intente corregir la queue_directoryvariable a ser /var/spool/postfix.

Un segundo punto de inconsistencia está en la configuración predeterminada para 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 QueueDirectoriesclave org.postfix.master.plistdebe enumerar el maildropsubdirectorio del directorio en main.cfla queue_directoryvariable de. Por ejemplo, cambié mi org.postfix.master.plistarchivo para incluir:

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

Con estos dos directorios consistentes, Postfix debería iniciarse. Deberías poder mirar /var/log/mail.logmientras corres:

$ 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 inicia Postfix, por lo que puede estar atento mail.loga los comentarios de depuración inmediata, pero nuevamente no es necesario ejecutarlo de manera normal. Lanzado ejecutará Postfix según sea necesario. (Si está seguro de que quiere que Postfix se ejecute todo el tiempo, use la KeepAliveclave detallada en la launchd.plistpágina del manual ).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.