Lỗi gửi thư trên OS X Mountain Lion


27

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:


35

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.


Cảm ơn đã thử, thư không đi ra và nhận được lỗi sau: postdrop: warning: mail_queue_enter: tạo tập tin maildrop / 609676.26828: Quyền bị từ chối

Tôi cũng phải thực hiện các quyền thiết lập sudo / usr / sbin / postfix và bây giờ nó hoạt động

Cảm ơn rất nhiều, điều này hoạt động như một lá bùa mặc dù nó đã đưa ra một số lỗi kỳ lạ và cảnh báo.
Swader

Tôi đã theo dõi> sudo mkdir ... và nó hoạt động. Cảm ơn giải pháp.
Abhinav Chittora

23

Để 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

1
Tôi không nghĩ việc nén các trang nam là cần thiết.
nohillside

3
Việc nén các trang man là cần thiết để tránh cảnh báo này khi chạy các quyền thiết lập:chown: /usr/share/man/man1/postalias.1.gz: No such file or directory
Andrew Ferrier

Điều này làm việc như một cơ duyên, chỉ cần dán tất cả vào và tốt đi. Cảm ơn @Jasper!
adriandz

3

Giải pháp dường như cũng sửa một lỗi trong 10.8 trong đó dịch vụ fax đã ngừng gửi email sau khi nâng cấp 10.8.


0

TLDR : Thay đổi queue_directorybiến /etc/postfix/main.cfthà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 ý /varthự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/Maillà 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/postfixmặ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_directorybiến trong Postfix có main.cfnghĩa là /Library/Server/Mail/Data/spoolkhô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/Serverthư mục không tồn tại. Thay vì tạo nó, hãy thử sửa queue_directorybiế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 QueueDirectoriesquan trọng trong org.postfix.master.plistnhu cầu để liệt kê các maildropthư mục con của thư mục trong main.cf's queue_directorybiến. Ví dụ: tôi đã thay đổi org.postfix.master.plisttệ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.logtrong 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.logphả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 KeepAlivekhóa chi tiết trong launchd.plisttrang man .)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.