Kesalahan Sendmail pada OS X Mountain Lion


27

Saya mendapatkan kesalahan saat mencoba menjalankan sendmail. Saya menggunakan OS X 10.8 Mountain Lion.

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

Jawaban:


35

Cukup jalankan di terminal

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

Itu berhasil bagi saya.


Terima kasih telah mencoba itu, mail tidak keluar dan mendapatkan kesalahan berikut: postdrop: warning: mail_queue_enter: create file maildrop / 609676.26828: Izin ditolak

Saya harus melakukan sudo / usr / sbin / postfix set-permission juga dan sekarang berfungsi

Terima kasih banyak, ini bekerja seperti pesona meskipun mengeluarkan beberapa kesalahan aneh dan peringatan.
Swader

Saya mengikuti> sudo mkdir ... dan berhasil. Terima kasih atas solusinya.
Abhinav Chittora

23

Untuk menghilangkan semua peringatan, saya harus melakukan yang berikut:

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
Saya pikir zipping halaman manual itu tidak perlu.
nohillside

3
Zip halaman manual diperlukan untuk menghindari peringatan ini ketika menjalankan izin-set:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Andrew Ferrier

Ini bekerja seperti pesona, hanya menempelkan semuanya dan selamat mencoba. Terima kasih @Jasper!
adriandz

3

Solusinya tampaknya juga memperbaiki kesalahan di 10.8 di mana layanan faks telah berhenti mengirim email setelah peningkatan 10.8.


0

TLDR : Ubah queue_directoryvariabel /etc/postfix/main.cfmenjadi /var/spool/postfix.

Jawaban lengkap:

The mkdir -p mendekati karya mungkin, tapi saya menduga ada solusi yang lebih sederhana. Peringatan yang adil, saya baru di Postfix, dan ini semua mungkin salah.

Tampaknya berbagai edisi Mac OS X menggunakan salah satu dari dua direktori root untuk surat:

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

Keduanya tampaknya telah kacau dari waktu ke waktu. (Note /varsebenarnya adalah symlink /private/var, jadi Anda sering melihat yang digunakan bergantian.)

Dari apa yang saya tahu, /Library/Server/Mailadalah direktori yang digunakan Mac OS X Server untuk layanan Mail-nya, yang bergantung pada, tetapi tidak sama dengan, Postfix. /var/spool/postfix, di lain pihak, adalah direktori yang disukai (hlm. 14) untuk operasi internal Postfix.

Ada dua file konfigurasi utama yang merujuk direktori ini:

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

Anda melihat "Tidak ada kesalahan pada file atau direktori," saya curiga, karena queue_directoryvariabel dalam Postfix main.cfmerujuk /Library/Server/Mail/Data/spool, yang tidak ada. Pada Mac OS X biasa ( tidak seperti Server ), seluruh /Library/Serverdirektori tidak ada. Alih-alih membuatnya, coba perbaiki queue_directoryvariabel yang akan dibuat /var/spool/postfix.

Titik ketidakkonsistenan kedua adalah dalam pengaturan default untuk launchd, daemon manager Mac OS X. Tidak perlu menjalankan Postfix sepanjang waktu, karena launchd dapat melihat direktori untuk surat keluar dan hanya menjalankan Postfix ketika ada sesuatu untuk dikirim. Untuk memastikan hal ini akan terjadi, QueueDirectorieskunci dalam org.postfix.master.plistkebutuhan untuk daftar maildropsubdirektori dari direktori di main.cf's queue_directoryvariabel. Misalnya, saya mengubah org.postfix.master.plistfile saya untuk memasukkan:

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

Dengan dua direktori ini konsisten, Postfix harus diluncurkan. Anda harus bisa menonton /var/log/mail.logsambil berlari:

$ 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

Perintah terakhir memulai Postfix, sehingga Anda dapat melihat mail.logumpan balik debugging segera, tetapi sekali lagi itu tidak perlu dilakukan secara normal. Launchd akan menjalankan Postfix sesuai kebutuhan. (Jika Anda yakin Anda ingin Postfix berjalan setiap saat, gunakan KeepAlivekunci yang diperinci di launchd.plisthalaman manual .)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.