Vì tôi đã nghiên cứu vấn đề này và tình cờ gặp bài đăng này và thư viện php của bên thứ ba không phải là một lựa chọn cho tôi.
Như chúng ta đã biết, php sử dụng lệnh sendmail
của máy chủ theo mặc định Các sendmail_path
tùy chọn trong php.ini
có thể được thay đổi để ghi đè lên các thiết lập để chỉ huy của riêng bạn với lý lẽ riêng của nó, vv Ví dụ: sendmail_path = /usr/bin/unix2dos | /usr/bin/dos2unix | /usr/sbin/sendmail -t -i
SSMTP sẽ cho phép bạn chuyển tiếp các email gửi đến một mailhost từ máy chủ web/php của bạn. https://wiki.archlinux.org/index.php/SSMTP
apt-get install ssmtp
Sau đó, bạn có thể sử dụng sendmail_path = /usr/sbin/ssmtp -t
nói với php sử dụng ssmtp thay vì sendmail. Hãy chắc chắn để khởi động lại máy chủ web của bạn sau khi bạn đã thực hiện những thay đổi để php.ini
Cũng đảm bảo bạn đã cấu hình ssmtp và xác nhận SPF, DKIM, hồ sơ DMARC trước khi bạn thực hiện những thay đổi để sendmail_path
trong php.ini
Ví dụ: gmail Mail server. /etc/ssmtp/ssmtp.conf
# The user that gets all the mails (UID < 1000, usually the admin)
[email protected]
# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also http://mail.google.com/support/bin/answer.py?answer=78799
mailhub=smtp.gmail.com:587
# The address where the mail appears to come from for user authentication.
rewriteDomain=yourdomain.com
# The full hostname
hostname=FQDN.yourdomain.com
# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes
# Username/Password
[email protected]
AuthPass=postmaster-password
# Email 'From header's can override the default domain?
FromLineOverride=yes
Đối với một câu hỏi trao đổi chồng với cùng thấy https://unix.stackexchange.com/questions/36982/can-i-set-up-system-mail-to-use-an-external-smtp-server
Để mở rộng về vấn đề này.
Nếu sử dụng Google, mỗi địa chỉ email From:
phải được thiết lập trên tài khoản gửi dưới dạng cài đặt "Tài khoản bạn sở hữu" trong tài khoản. Nếu không, google sẽ ghi lại tiêu đề bằng x-google-original-from
và chỉ định từ làm tài khoản gửi thay thế.
Đạo cụ không cố gửi thư trực tiếp từ máy chủ web của bạn. Trong khi bạn có thể cấu hình lại sendmail.cf của mình để sử dụng một máy chủ mail bên ngoài, nó sẽ dễ dàng hơn khi sử dụng một gói PHP như được đề cập trong các câu trả lời. Tôi sử dụng Swiftmailer với một SMTP bên thứ 3 (SendGrid, một dịch vụ dựa trên đám mây của Rackspace) cho đến nay dường như hoạt động khá tốt. – ldg
Got Swiftmailer được thiết lập với Rackspace Email, sẽ chuyển sang SendGrid thông qua Rackspace sau khi tăng dung lượng email. Cảm ơn! – Matt