Cập nhật: Theo lời khuyên của một người bạn CNTT, tôi đang chạy postfix trên tất cả các máy chủ của mình, thay vì tạo một máy chủ thư trên đám mây. Đây là giải pháp của tôi cho đến nay:
/etc/postfix/main.cf
# output of hostname -f - mail from local users appears to come from here
myhostname = domU-01-02-03-04-05-06.compute-1.internal
# Local delivery - include all 127.0.0.1 aliases from /etc/hosts
mydestination = $myhostname, $mydomain, rest_of_entries_from_hosts
# Needed for address translation to work
myorigin = $mydomain
# Talking to MS Online
# :submission = port 587
relayhost = [smtp.mail.microsoftonline.com]:submission
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = # Yes, leave empty
smtp_tls_security_level = encrypt
smtp_generic_maps = hash:/etc/postfix/generic
# Enable if you need debugging, but it does leak credentials to the log
#debug_peer_level = 2
#debug_peer_list = smtp.mail.microsoftonline.com
# Only listen on the local interfaces (not the public)
inet_interfaces = localhost
# I left out a bunch of CentOS defaults. postconf -n is your friend.
# These are included
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
/etc/postfix/sasl_passwd
# Run postmap /etc/postfix/sasl_passwd after editing
# Also, chown root:root; chmod 600
smtp.mail.microsoftonline.com relayer@hosteddomain.com:YourP@ssw0rd
/etc/postfix/generic
# Run postmap /etc/postfix/generic
# I've seen local mail come from either source
# output of dnsdomainname
@compute-1.internal relayer@hosteddomain.com
# output of hostname -f
@domU-01-02-03-04-05-06.compute-1.internal relayer@hosteddomain.com
/etc/aliases
# Run newaliases after changing
# Lot of stuff here. Mostly, just make sure the graph points to root, such as
mailer-daemon: postmaster
postmaster: root
# And the important part - your email or distribution group
root: awsadmins@hosteddomain.com
/etc/passwd
# Sometimes it helps to expand the name, so email comes from 'root at aws host 5'
# rather than just 'root'
# Was
#root:x:0:0:root:/root:/bin/bash
# Is
root:x:0:0:root on aws host 5:/root:/bin/bash
Những điều tôi hạnh phúc về:
- Rất nhiều thư được gửi đến root, và một dòng trong
alias
chỉ thị ai nhận được nó.
- Tất cả thư từ người dùng cục bộ được dịch đến từ đó
relayer@hosteddomain.com
, do đó, nó được gửi qua máy chủ SMTP trực tuyến của MS.
- postfix có tài liệu tốt hơn nhiều so với sendmail.
Những điều tôi không hài lòng về:
- Thay đổi tùy chỉnh được yêu cầu cho mỗi máy chủ lưu trữ và một số bước. Tôi đã viết một kịch bản bash để giúp đỡ.
- Thủ
passwd
thuật tên không phải lúc nào cũng hoạt động và có thể khó tìm ra máy chủ mà thư đến từ đâu.
- Mỗi thư được gửi sẽ đưa ra ba cảnh báo trong nhật ký:
warning: smtp.mail.microsoftonline.com[65.55.171.153] offered null AUTH mechanism list
(Máy chủ SMTP gửi AUTH
danh sách null trước STARTTLS
, nhưng AUTH LOGIN
sau).
certificate verification failed for smtp.mail.microsoftonline.com: num=20:unable to get local issuer certificate
(Có một số tùy chọn cấu hình xung quanh certs, nhưng tôi không chắc liệu chuyển phát thư có bị hỏng khi chứng nhận được gia hạn không)
certificate verification failed for smtp.mail.microsoftonline.com: num=27:certificate not trusted
(Giống như số 2)
Cảm ơn cộng đồng serverfault đã chia sẻ ý kiến mạnh mẽ về máy chủ thư.