Hướng dẩn tích hợp Amazon SES với Postfix ( Simple Email với Postfix )

Postfix là một thay thế cho Đại lý chuyển tin nhắn Sendmail (MTA) được sử dụng rộng rãi. Để biết thông tin về Postfix, hãy truy cập http://www.postfix.org. Các quy trình trong chủ đề này sẽ hoạt động với Linux, macOS hoặc Unix.

Ghi chú

Postfix là một ứng dụng của bên thứ ba và không được Amazon Web Services phát triển hoặc hỗ trợ. Các quy trình trong phần này được cung cấp cho mục đích thông tin và có thể thay đổi mà không cần thông báo trước.

Điều kiện tiên quyết
Trước khi bạn hoàn thành các thủ tục trong phần này, bạn phải thực hiện các tác vụ sau:

Gỡ cài đặt Sendmail, nếu nó đã được cài đặt trên hệ thống của bạn. Quy trình hoàn thành bước này khác nhau tùy thuộc vào hệ điều hành bạn sử dụng.

Cài đặt Postfix. Quy trình hoàn thành bước này khác nhau tùy thuộc vào hệ điều hành bạn sử dụng.

Cài đặt gói xác thực SASL. Quy trình hoàn thành bước này khác nhau tùy thuộc vào hệ điều hành bạn sử dụng. Ví dụ: nếu bạn sử dụng hệ thống dựa trên RedHat, bạn nên cài đặt gói cyrus-sasl-plain. Nếu bạn sử dụng hệ thống dựa trên Debian hoặc Ubuntu, bạn nên cài đặt gói libsasl2-mô-đun.

Xác nhận địa chỉ email hoặc tên miền để sử dụng để gửi email. Để biết thêm thông tin, hãy xem Xác minh địa chỉ email trong Amazon SES.

Nếu tài khoản của bạn vẫn còn trong hộp cát, bạn chỉ có thể gửi email đến các địa chỉ email được xác minh. Để biết thêm thông tin, hãy xem Di chuyển ra khỏi Amazon SES Sandbox.

 

 

Cấu hình Postfix

Hoàn thành các quy trình sau để định cấu hình máy chủ thư của bạn để gửi email thông qua Amazon SES bằng Postfix.

Để cấu hình Postfix

  1. Tại dòng lệnh, gõ lệnh sau:

    sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:587" \ "smtp_sasl_auth_enable = yes" \ "smtp_sasl_security_options = noanonymous" \ "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" \ "smtp_use_tls = yes" \ "smtp_tls_security_level = encrypt" \ "smtp_tls_note_starttls_offer = yes"
    Ghi chú
    Nếu bạn sử dụng Amazon SES ở Vùng AWS khác ngoài US West (Oregon), hãy thay thế email-smtp.us-west-2.amazonaws.com trong lệnh trước bằng điểm cuối SMTP của vùng thích hợp. Để biết thêm thông tin, hãy xem Khu vực và Amazon SES.
  2. Trong trình soạn thảo văn bản, mở tệp /etc/postfix/master.cf. Tìm kiếm mục sau:

     
    -o smtp_fallback_relay=

    Nếu bạn tìm thấy mục này, hãy nhận xét nó bằng cách đặt ký tự # (băm) ở đầu dòng. Lưu và đóng tập tin.

    Mặt khác, nếu mục này không có mặt, hãy chuyển sang bước tiếp theo.

    Trong trình soạn thảo văn bản, mở tệp / etc / postfix / sasl_passwd. Nếu tập tin không tồn tại, hãy tạo nó.

    Thêm dòng sau vào / etc / postfix / sasl_passwd:

  3.  
    [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
    Ghi chú
    Thay thế lần lượt SMTPUSERNAME và SMTPPASSWORD bằng tên người dùng và mật khẩu SMTP của bạn. Tên người dùng và mật khẩu SMTP của bạn không giống với ID khóa truy cập AWS và khóa truy cập bí mật của bạn. Để biết thêm thông tin về thông tin đăng nhập, hãy xem Lấy thông tin đăng nhập Amazon SES SMTP của bạn.

    Nếu bạn sử dụng Amazon SES ở Vùng AWS khác ngoài US West (Oregon), hãy thay thế email-smtp.us-west-2.amazonaws.com trong ví dụ trên bằng điểm cuối SMTP của vùng thích hợp. Để biết thêm thông tin, hãy xem Khu vực và Amazon SES.

    Lưu và đóng sasl_passwd.
  4. Tại dấu nhắc lệnh, nhập lệnh sau để tạo tệp cơ sở dữ liệu hashmap chứa thông tin đăng nhập SMTP của bạn:

     
    sudo postmap hash:/etc/postfix/sasl_passwd
  5. (Tùy chọn) Các tập tin / etc / postfix / sasl_passwd và /etc/postfix/sasl_passwd.db bạn đã tạo trong các bước trước không được mã hóa. Vì các tệp này chứa thông tin đăng nhập SMTP của bạn, chúng tôi khuyên bạn nên sửa đổi quyền sở hữu và quyền của tệp để hạn chế quyền truy cập vào chúng. Để hạn chế quyền truy cập vào các tệp này:

    Tại dấu nhắc lệnh, nhập lệnh sau để thay đổi quyền sở hữu các tệp:

       sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

    1. Tại dấu nhắc lệnh, nhập lệnh sau để thay đổi quyền của các tệp để chỉ người dùng root mới có thể đọc hoặc ghi vào chúng:

       
      sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
  6. Nói với Postfix nơi tìm chứng chỉ CA (cần thiết để xác minh chứng chỉ máy chủ Amazon SES). Lệnh bạn sử dụng trong bước này thay đổi dựa trên hệ điều hành của bạn.

    Nếu bạn sử dụng Amazon Linux, Red Hat Enterprise Linux hoặc phân phối có liên quan, hãy nhập lệnh sau:

    •  
      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
    • Nếu bạn sử dụng Ubuntu hoặc một bản phân phối có liên quan, hãy gõ lệnh sau:

       
      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
    • Nếu bạn sử dụng macOS, bạn có thể tạo chứng chỉ từ móc khóa hệ thống của mình. Để tạo chứng chỉ, nhập lệnh sau vào dòng lệnh:

       
      sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain  /etc/ssl/certs/ca-bundle.crt

      Sau khi bạn tạo chứng chỉ, gõ lệnh sau:

       
      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
  7. Nhập lệnh sau để khởi động máy chủ Postfix (hoặc tải lại cài đặt cấu hình nếu máy chủ đang chạy):

     
    sudo postfix start; sudo postfix reload
  8. Gửi email kiểm tra bằng cách nhập nội dung sau vào một dòng lệnh, nhấn Enter sau mỗi dòng. Thay thế sender@example.com bằng địa chỉ email của bạn. Địa chỉ Từ phải được xác minh để sử dụng với Amazon SES. Thay thế receive@example.com bằng địa chỉ đích. Nếu tài khoản của bạn vẫn còn trong hộp cát, địa chỉ người nhận cũng phải được xác minh. Cuối cùng, dòng cuối cùng của tin nhắn phải chứa một khoảng thời gian duy nhất (.) Không có nội dung nào khác.

    sendmail -f sender@example.com recipient@example.com From: Sender Name sender@example.com Subject: Amazon SES Test This message was sent using Amazon SES. .
  9. Kiểm tra hộp thư liên kết với địa chỉ người nhận. Nếu email không đến, hãy kiểm tra thư mục thư rác của bạn. Nếu bạn vẫn không thể xác định vị trí email, hãy kiểm tra nhật ký thư trên hệ thống mà bạn đã sử dụng để gửi email (thường nằm ở / var / log / maillog) để biết thêm thông tin.

Ví dụ sử dụng nâng cao


Ví dụ này cho thấy cách gửi email sử dụng bộ cấu hình và sử dụng mã hóa đa phần MIME để gửi cả văn bản thuần túy và phiên bản HTML của tin nhắn, cùng với tệp đính kèm. Nó cũng bao gồm một thẻ liên kết, có thể được sử dụng để phân loại các sự kiện nhấp chuột. Nội dung của email được chỉ định trong một tệp bên ngoài, do đó bạn không phải nhập thủ công các lệnh trong phiên Postfix.

Để gửi email MIME nhiều phần bằng Postfix

Trong trình soạn thảo văn bản, tạo một tệp mới gọi là mime-email.txt.

Trong tệp văn bản, dán nội dung sau, thay thế các giá trị bằng màu đỏ bằng các giá trị phù hợp cho tài khoản của bạn:

 
Lưu và đóng tập tin.

Tại dòng lệnh, gõ lệnh sau. Thay thế sender@example.com bằng địa chỉ email của bạn và thay thế receive@example.com bằng địa chỉ email của người nhận.

 
sendmail -f sender@example.com receive@example.com mime-email.txt
Nếu lệnh chạy thành công, nó sẽ thoát mà không cung cấp bất kỳ đầu ra nào.

Kiểm tra hộp thư đến của bạn cho email. Nếu thư không được gửi, hãy kiểm tra nhật ký thư của hệ thống.


Thủ Thuật Hay

470 Blog posts

Comments