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
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:
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.
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
chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
TLDR : Ubah queue_directory
variabel /etc/postfix/main.cf
menjadi /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 /var
sebenarnya adalah symlink /private/var
, jadi Anda sering melihat yang digunakan bergantian.)
Dari apa yang saya tahu, /Library/Server/Mail
adalah 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_directory
variabel dalam Postfix main.cf
merujuk /Library/Server/Mail/Data/spool
, yang tidak ada. Pada Mac OS X biasa ( tidak seperti Server ), seluruh /Library/Server
direktori tidak ada. Alih-alih membuatnya, coba perbaiki queue_directory
variabel 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, QueueDirectories
kunci dalam org.postfix.master.plist
kebutuhan untuk daftar maildrop
subdirektori dari direktori di main.cf
's queue_directory
variabel. Misalnya, saya mengubah org.postfix.master.plist
file 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.log
sambil 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.log
umpan 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 KeepAlive
kunci yang diperinci di launchd.plist
halaman manual .)