Làm cách nào tôi có thể biến Amazon SES thành phương thức gửi thư mặc định từ máy chủ của mình?


14

Tôi muốn bắt đầu sử dụng Amazon SES cho tất cả các email từ máy chủ của chúng tôi. Chúng tôi có một vài nhà thiết kế tự do với lưu trữ PHP, một số ứng dụng web Django / Python và một số tiện ích hệ thống gửi email.

Vì vậy, tôi muốn có chức năng thư của PHP, lệnh thư dòng lệnh và các ứng dụng python của chúng tôi đều có thể sử dụng nó, tốt nhất là không phải thiết lập tất cả chúng theo cách riêng của chúng.

Tôi nghĩ rằng những gì tôi cần là có một cái gì đó như Postfix chạy trên localhost và sử dụng SES để phân phối nhưng tôi không biết làm thế nào để làm điều đó.

Tài liệu của Amazon tuyên bố tôi cần thiết lập tác nhân chuyển thư (MTA) để nó gọi tập lệnh ses-send-email.pl. Tôi có kịch bản nhưng tôi không chắc làm thế nào để đạt được điều này.

Có phải tôi đang trên đường ray bên phải không? Nếu vậy, làm cách nào tôi có thể định cấu hình Postfix để sử dụng tập lệnh đó?

Câu trả lời:



14

Dưới đây là một số mục được sao chép từ hướng dẫn dành cho nhà phát triển SES :

Để tích hợp Ses-send-email.pl với Postfix:

  1. Mở tệp master.cf. Trên nhiều hệ thống, tập tin này nằm trong /etc/postfixthư mục.
  2. Định cấu hình vận chuyển thư mới bằng cách thêm hai dòng sau vào master.cftệp, sau đó lưu tệp.

    aws-email  unix  -       n       n       -       -       pipe
      flags=R user=mailuser argv=/opt/third-party/amazon/ses-send-email.pl -r -k /opt/third-party/amazon/aws-credentials -e https://email.us-east-1.amazonaws.com -f ${sender} ${recipient}
    

Lưu ý sau đây về ví dụ này:

  • Dòng cờ bắt đầu bằng ít nhất một ký tự khoảng trắng.
  • Tham số người dùng phải chỉ định người dùng không phải root (nghĩa là người dùng không phải là quản trị viên). Người dùng mailuserchỉ nhằm mục đích minh họa.
  • Tập ses-send-email.pllệnh và tệp thông tin xác thực nằm trong thư mục / opt / bên thứ ba / amazon.
  • Điểm cuối để giao tiếp với Amazon SES là https://email.us-east-1.amazonaws.com

Bạn nên sửa đổi các tham số này cho phù hợp.

  1. Mở tệp main.cf trong cùng thư mục với master.cf và sửa đổi nó như sau:

    1. Tìm dòng default_transport:

      • Nếu nó tồn tại, thay đổi nó để nó trông như thế này:

        default_transport = aws-email
        
      • Nếu nó không tồn tại, sau đó thêm một dòng mới với nội dung trước đó.

    2. Lưu tệp main.cf khi bạn hoàn tất.
  2. Khởi động lại máy chủ Postfix của bạn.

    /etc/init.d/postfix restart
    

Lưu ý rằng lệnh này có thể không hoàn toàn giống nhau trên máy chủ cụ thể của bạn. Từ thời điểm này, email gửi đi của bạn được gửi qua Amazon SES. Bạn có thể kiểm tra điều này bằng cách gửi tin nhắn email qua máy chủ Postfix của bạn và sau đó xác minh rằng nó đến đích. Nếu thư không được gửi, hãy kiểm tra nhật ký thư của hệ thống để biết lỗi. Trên nhiều hệ thống, đây là/var/log/mail.log

- Tôi đã tạo một blog đơn giản kết hợp tất cả mọi thứ mà tôi đã thử gần đây trong Amazon Cloud và SES. Đây là liên kết: http://netwiser.blogspot.com/2011/02/setup-amazon-ses-to-relay-email-by.html


Thật sự cảm ơn. Tôi giả sử điều này có nghĩa là cấu hình postfix là cách đúng để giải quyết vấn đề của tôi. Tôi sẽ thử cái này và chấp nhận câu trả lời của bạn sớm thôi.
Jake

1

Vì bạn đang lưu trữ các ứng dụng Python / Django trên máy chủ của mình, bạn có thể thấy nên kết nối Postfix với Python tương đương với các tập lệnh AWS Perl. Hướng dẫn này có các chi tiết:

http://aws.amazon.com/articles/2405502737055650

Ngoài ra, nếu bạn muốn sử dụng tập lệnh Perl nhưng nhận thấy (như tôi) rằng các mô-đun CPAN của bạn đã hết hạn khủng khiếp, một cách dễ dàng hơn có thể là cài đặt các phụ thuộc thông qua trình quản lý gói của hệ điều hành. Ví dụ: trên Ubuntu, bạn có thể làm điều này với:

sudo apt-get install libio-socket-ssl-perl libxml-libxml-perl
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.