Tôi gặp lỗi khi cố gắng chạy sendmail. Tôi đang dùng OS X 10.8 Mountain Lion.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Tôi gặp lỗi khi cố gắng chạy sendmail. Tôi đang dùng OS X 10.8 Mountain Lion.
sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
Câu trả lời:
Chỉ cần thực hiện trong thiết bị đầu cuối
sudo mkdir -p /Library/Server/Mail/Data/spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start
Điều đó đã đánh lừa tôi.
Để thoát khỏi tất cả các cảnh báo, tôi phải làm như sau:
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 : Thay đổi queue_directory
biến /etc/postfix/main.cf
thành /var/spool/postfix
.
Câu trả lời đầy đủ:
Cách mkdir -p
tiếp cận có thể hiệu quả, nhưng tôi nghi ngờ có một giải pháp đơn giản hơn. Cảnh báo công bằng, tôi chưa quen với Postfix và tất cả điều này có thể không chính xác.
Có vẻ như các phiên bản khác nhau của Mac OS X sử dụng một trong hai thư mục gốc cho thư:
/var/spool/postfix
/Library/Server/Mail
Hai người này dường như đã bị nhầm lẫn theo thời gian. (Lưu ý /var
thực sự là một liên kết tượng trưng /private/var
, vì vậy bạn thường thấy những liên kết được sử dụng thay thế cho nhau.)
Từ những gì tôi có thể nói, /Library/Server/Mail
là một thư mục mà Mac OS X Server sử dụng cho các dịch vụ Mail của mình, tùy thuộc vào, nhưng không giống như Postfix. /var/spool/postfix
mặt khác, là thư mục ưa thích (trang 14) cho các hoạt động nội bộ của Postfix.
Có hai tệp cấu hình chính tham chiếu các thư mục này:
/etc/postfix/main.cf
/System/Library/LaunchDaemons/org.postfix.master.plist
Bạn đang thấy "Không có lỗi tệp hoặc thư mục như vậy", tôi nghi ngờ, bởi vì queue_directory
biến trong Postfix có main.cf
nghĩa là /Library/Server/Mail/Data/spool
không tồn tại. Trên Mac OS X thông thường ( không giống như Máy chủ ), toàn bộ /Library/Server
thư mục không tồn tại. Thay vì tạo nó, hãy thử sửa queue_directory
biến /var/spool/postfix
.
Điểm không nhất quán thứ hai là trong cài đặt mặc định cho launchd, trình quản lý trình nền của Mac OS X. Không cần thiết phải chạy Postfix mọi lúc, vì launchd có thể xem thư mục cho thư gửi đi và chỉ chạy Postfix khi có thứ gì đó để gửi. Để đảm bảo điều này sẽ xảy ra, những QueueDirectories
quan trọng trong org.postfix.master.plist
nhu cầu để liệt kê các maildrop
thư mục con của thư mục trong main.cf
's queue_directory
biến. Ví dụ: tôi đã thay đổi org.postfix.master.plist
tệp của mình để bao gồm:
<key>QueueDirectories</key>
<array>
<string>/var/spool/postfix/maildrop</string>
</array>
Với hai thư mục nhất quán, Postfix sẽ khởi chạy. Bạn sẽ có thể xem /var/log/mail.log
trong khi bạn chạy:
$ 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
Lệnh cuối cùng khởi động Postfix, vì vậy bạn có thể xem mail.log
phản hồi gỡ lỗi ngay lập tức, nhưng một lần nữa không cần thiết phải thực thi trên cơ sở bình thường. Launchd sẽ chạy Postfix khi cần thiết. (Nếu bạn chắc chắn muốn Postfix chạy mọi lúc, hãy sử dụng KeepAlive
khóa chi tiết trong launchd.plist
trang man .)