ฉันได้รับข้อผิดพลาดเมื่อพยายามเรียกใช้ 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 )