2013-05-09 29 views
6

Tôi đang cố gắng viết một tập lệnh bash, được chạy bởi một tác vụ cron, sẽ gửi cho tôi một email trong một số trường hợp nhất định.Sử dụng sendmail từ dòng lệnh

Để thử và nhận sendmail làm việc với các thiết lập SMTP Sendgrid của tôi, tôi đã chỉnh sửa các tập tin /etc/postfix/main.cf như sau:

smtp_sasl_password_maps = static:<username>:<password> 
smtp_sasl_security_options = noanonymous 
smtp_tls_security_level = may 
smtp_tls_security_level=encrypt 
header_size_limit = 4096000 
relayhost = [smtp.sendgrid.net]:587 

tôi khởi động lại postfix sử dụng sudo /etc/init.d/postfix khởi động lại

Và cố gắng gửi một email từ dòng lệnh bằng cách sử dụng lệnh sau:

sendmail [email protected] < /tmp/email.txt

Điều này dẫn đến kết quả như sau:

Bạn có thư mới trong/var/mail/ubuntu

Tại sao không gửi gửi thư bằng email của tôi bằng cách sử dụng các chi tiết SMTP Sendgrid mà tôi đã chỉ định trong main.cf?

Xin lưu ý, câu hỏi này chỉ liên quan đến sendmail, tôi không muốn cài đặt ứng dụng và ứng dụng SMTP khác, nó cần phải hoạt động như cũ.

Trả lời

10

Cấu hình Postfix của tôi sai. Tôi cần thiết để sử dụng sau đây:

smtp_sasl_auth_enable = yes 
smtp_sasl_password_maps = static:<username>:<password> 
smtp_sasl_security_options = noanonymous 
smtp_tls_security_level = may 
header_size_limit = 4096000 
relayhost = [smtp.sendgrid.net]:587 

Gửi email thông qua kịch bản bash được thực hiện như sau:

sendmail [email protected] <<EOF 
subject:This is a test 
from:[email protected] 
Body message here... 
EOF 
Các vấn đề liên quan