Erro do Sendmail no OS X Mountain Lion

27

Eu recebo um erro ao tentar executar o sendmail. Estou no OS X 10.8 Mountain Lion.

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

Respostas:

35

Basta executar no terminal

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

Isso fez o truque para mim.

LevB
fonte
Graças tentei isso, o correio não sai e obtém o seguinte erro: postdrop: warning: mail_queue_enter: create file maildrop / 609676.26828: permissão negada
Eu tive que fazer sudo / usr / sbin / postfix set-permissões tão bem e agora ele funciona
Muito obrigado, isso funcionou como um encanto, embora tenha jogado alguns erros e avisos estranhos.
Swader
Eu segui> sudo mkdir ... e funciona. Obrigado pela solução.
Abhinav Chittora
23

Para me livrar de todos os avisos, tive que fazer o seguinte:

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
Jasper N. Brouwer
fonte
11
Eu não acho que é necessário fechar as páginas do manual.
nohillside
3
É necessário compactar as páginas do manual para evitar esse aviso ao executar permissões de conjunto:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Andrew Ferrier
Isso funcionou como um encanto, apenas colou tudo e foi bom. Obrigado @ Jasper!
adriandz
3

A solução parece corrigir também um erro na versão 10.8, em que o serviço de fax parou de enviar e-mails após a atualização da versão 10.8.

Ben King
fonte
0

TLDR : altere a queue_directoryvariável /etc/postfix/main.cfpara /var/spool/postfix.

Resposta completa:

A mkdir -p abordagem provavelmente funciona, mas suspeito que haja uma solução mais simples. Aviso justo, sou novo no Postfix, e tudo isso pode estar incorreto.

Parece que várias edições do Mac OS X usam um dos dois diretórios raiz para correio:

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

Esses dois parecem ter sido confusos ao longo do tempo. ( /varNa verdade, a observação é um link simbólico /private/var; portanto, você costuma ver os usados ​​de forma intercambiável.)

Pelo que sei, /Library/Server/Mailé um diretório que o Mac OS X Server usa para seus serviços de correio, que dependem, mas não são iguais ao Postfix. /var/spool/postfix, por outro lado, é o diretório preferido (p. 14) para as operações internas do Postfix.

Existem dois arquivos de configuração principais que referenciam esses diretórios:

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

Você está vendo o erro " Não existe esse arquivo ou diretório", suspeito, porque a queue_directoryvariável no Postfix main.cfse refere /Library/Server/Mail/Data/spool, o que não existe. No Mac OS X comum ( diferente do Servidor ), o /Library/Serverdiretório inteiro não existe. Em vez de criá-lo, tente corrigir a queue_directoryvariável a ser /var/spool/postfix.

Um segundo ponto de inconsistência está nas configurações padrão do launchd, o gerenciador de daemon do Mac OS X. Não é necessário executar o Postfix o tempo todo, pois o launchd pode assistir a um diretório para envio de mensagens e executar o Postfix apenas quando houver algo a ser enviado. Para se certificar de que isso vai acontecer, a QueueDirectorieschave no org.postfix.master.plistnecessidades para listar o maildropsubdiretório do diretório em main.cf's queue_directoryvariável. Por exemplo, mudei meu org.postfix.master.plistarquivo para incluir:

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

Com esses dois diretórios consistentes, o Postfix deve ser iniciado. Você deve poder assistir /var/log/mail.logenquanto executa:

$ 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

O último desses comandos inicia o Postfix, para que você possa observar o mail.logfeedback imediato da depuração, mas, novamente, não é necessário executar normalmente. O Launchd executará o Postfix conforme necessário. (Se você tem certeza de que deseja que o Postfix seja executado o tempo todo, use a KeepAlivechave detalhada na launchd.plistpágina de manual .)

duozmo
fonte