ฉันได้รับข้อผิดพลาดเมื่อพยายามเรียกใช้ sendmail ฉันใช้ OS X 10.8 Mountain Lion
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
ฉันได้รับข้อผิดพลาดเมื่อพยายามเรียกใช้ sendmail ฉันใช้ OS X 10.8 Mountain Lion
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
คำตอบ:
เพียงดำเนินการใน terminal
sudo mkdir -p /Library/Server/Mail/Data/spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start
นั่นเป็นเคล็ดลับสำหรับฉัน
เพื่อที่จะกำจัดคำเตือนทั้งหมดที่ฉันต้องทำต่อไปนี้:
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
วิธีแก้ไขดูเหมือนจะแก้ไขข้อผิดพลาดใน 10.8 ซึ่งบริการแฟกซ์หยุดส่งอีเมลหลังจากการอัพเกรด 10.8
TLDR : เปลี่ยนqueue_directory
ตัวแปรในการ/etc/postfix/main.cf
/var/spool/postfix
คำตอบแบบเต็ม:
mkdir -p
วิธีแนวโน้มงาน แต่ฉันสงสัยว่ามีวิธีที่ง่าย คำเตือนที่เป็นธรรมฉันยังใหม่กับ Postfix และทั้งหมดนี้อาจไม่ถูกต้อง
ดูเหมือนว่ารุ่นต่าง ๆ ของ Mac OS X ใช้หนึ่งในสองไดเรกทอรีรากสำหรับจดหมาย:
/var/spool/postfix
/Library/Server/Mail
ทั้งสองดูเหมือนจะงุนงงเมื่อเวลาผ่านไป (หมายเหตุ/var
จริง ๆ แล้วเป็น symlink ไป/private/var
ดังนั้นคุณมักจะเห็นสิ่งที่ใช้แทนกันได้)
สิ่งที่ฉันสามารถบอกได้/Library/Server/Mail
คือไดเรกทอรีที่Mac OS X Serverใช้สำหรับบริการจดหมายของตนซึ่งขึ้นอยู่กับ แต่ไม่เหมือนกับ Postfix /var/spool/postfix
ในทางกลับกันเป็นไดเรกทอรีที่ต้องการ (หน้า 14) สำหรับการดำเนินงานภายในของ Postfix
มีสองไฟล์คอนฟิกูเรชันที่สำคัญซึ่งอ้างอิงถึงไดเร็กทอรีเหล่านี้:
/etc/postfix/main.cf
/System/Library/LaunchDaemons/org.postfix.master.plist
คุณเห็นข้อความ "ไม่มีไฟล์หรือข้อผิดพลาดของไดเรกทอรี" ฉันสงสัยว่าเนื่องจากqueue_directory
ตัวแปรในการmain.cf
อ้างอิงของ Postfix /Library/Server/Mail/Data/spool
ซึ่งไม่มีอยู่ ใน Mac OS X ปกติ ( ต่างจากเซิร์ฟเวอร์ ) /Library/Server
ไดเรกทอรีทั้งหมดไม่มีอยู่ แทนที่จะสร้างได้ลองแก้ไขตัวแปรที่จะเป็นqueue_directory
/var/spool/postfix
ประเด็นที่สองที่ไม่สอดคล้องกันอยู่ในการตั้งค่าเริ่มต้นสำหรับ launchd ซึ่งเป็นผู้จัดการภูตของ Mac OS X ไม่จำเป็นต้องเรียกใช้ Postfix ตลอดเวลาเนื่องจาก launchd สามารถดูไดเร็กทอรีสำหรับเมลขาออกและรันเฉพาะ Postfix เมื่อมีสิ่งที่ต้องส่ง เพื่อให้แน่ใจว่านี้จะเกิดขึ้นที่QueueDirectories
สำคัญในการorg.postfix.master.plist
ตอบสนองความต้องการในรายการmaildrop
ไดเรกทอรีย่อยของไดเรกทอรีในmain.cf
's queue_directory
ตัวแปร ตัวอย่างเช่นฉันเปลี่ยนorg.postfix.master.plist
ไฟล์เป็น:
<key>QueueDirectories</key>
<array>
<string>/var/spool/postfix/maildrop</string>
</array>
ด้วยสองไดเรกทอรีที่สอดคล้องกัน Postfix ควรเปิดใช้งาน คุณควรดู/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
คำสั่งสุดท้ายของคำสั่งเตะเริ่มต้น Postfix ดังนั้นคุณสามารถดูmail.log
ข้อเสนอแนะการดีบักได้ทันที แต่ไม่จำเป็นต้องดำเนินการตามปกติอีกครั้ง Launchd จะเรียกใช้ Postfix ตามต้องการ (หากคุณมั่นใจว่าต้องการให้ Postfix ทำงานตลอดเวลาให้ใช้KeepAlive
รหัสที่มีรายละเอียดในlaunchd.plist
หน้า man )