Sendmail'i çalıştırmaya çalışırken hata alıyorum. OS X 10.8 Dağ Aslanı'ndayım.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Sendmail'i çalıştırmaya çalışırken hata alıyorum. OS X 10.8 Dağ Aslanı'ndayım.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Yanıtlar:
Sadece terminalde çalıştır
sudo mkdir -p /Library/Server/Mail/Data/spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start
Bu benim için hile yaptı.
Tüm uyarılardan kurtulmak için aşağıdakileri yapmak zorunda kaldım:
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 : queue_directory
Değişkeni olarak olarak /etc/postfix/main.cf
değiştirin /var/spool/postfix
.
Tam cevap:
mkdir -p
Yaklaşım olasılıkla eser, ama daha basit bir çözümü vardır sanıyorum. Adil uyarı, Postfix'de yeniyim ve hepsi yanlış olabilir.
Mac OS X'in çeşitli sürümleri posta için iki kök dizinden birini kullanıyor gibi görünüyor:
/var/spool/postfix
/Library/Server/Mail
Bu ikisi zaman içinde karışmış gibi görünüyor. (Not /var
aslında aslında bir bağlantıdır /private/var
, bu nedenle sık sık birbirlerinin yerine kullanılanları görürsünüz.)
Söyleyebileceğim kadarıyla, Mac OS X Server'ın Posta hizmetleri için kullandığı, ancak Postfix ile aynı olmayan Posta hizmetleri için kullandığı /Library/Server/Mail
bir dizin . Öte yandan, Postfix'in iç işlemleri için tercih edilen dizin (s. 14) ./var/spool/postfix
Bu dizinlere başvuran iki ana yapılandırma dosyası vardır:
/etc/postfix/main.cf
/System/Library/LaunchDaemons/org.postfix.master.plist
Çünkü ben şüpheli "Böyle bir dosya ya da dizin hatası" görüyorsanız queue_directory
Postfix en değişken main.cf
belirtir /Library/Server/Mail/Data/spool
yok ki. Düzenli Mac OS X'te ( Sunucu'dan farklı olarak ), /Library/Server
dizinin tamamı mevcut değildir. Yaratmak yerine, queue_directory
değişkeni düzeltmeyi deneyin /var/spool/postfix
.
İkinci bir tutarsızlık noktası Mac OS X'in program yöneticisi olan lansman için varsayılan ayarlardır. Her zaman Postfix'i çalıştırmak gerekli değildir, çünkü launchd giden posta için bir dizini izleyebilir ve sadece gönderilecek bir şey olduğunda Postfix'i çalıştırabilir. Bunun gerçekleşmesi için QueueDirectories
anahtarın org.postfix.master.plist
, maildrop
dizinin alt dizinindeki main.cf
's' queue_directory
değişkeninde listelenmesi gerekir . Örneğin, dosyamı org.postfix.master.plist
içerecek şekilde değiştirdim :
<key>QueueDirectories</key>
<array>
<string>/var/spool/postfix/maildrop</string>
</array>
Bu iki dizin tutarlı olduğunda, Postfix başlatılmalıdır. Koşarken izleyebilmelisin /var/log/mail.log
:
$ 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
Bu komutların sonuncusu Postfix'i başlatır , böylece mail.log
anında hata ayıklama geri bildirimini izleyebilirsin , ama yine de normal olarak yürütmek zorunda değilsin. Launchd, Postfix'i gerektiği gibi çalıştıracak. (Postfix'in sürekli çalışmasını istediğinizden eminseniz KeepAlive
, launchd.plist
man sayfasında ayrıntılı olan anahtarı kullanın .)