web-dev-qa-db-ja.com

Amazon SESをサーバーからメールを送信するデフォルトの方法にするにはどうすればよいですか?

私たちのサーバーからのすべてのメールにAmazon SESの使用を開始したいと思います。 PHPホスティング、いくつかのDjango/Python Webアプリ、そして電子メールを送信するいくつかのシステムユーティリティを備えたフリーランスのデザイナーが何人かいます。

したがって、PHPのメール機能、コマンドラインのメールコマンド、およびpythonアプリはすべて、できれば独自の方法で設定することなく、すべて使用できるようにしたいと考えています。

ローカルホストでPostfixを実行し、配信にSESを使用する必要があると思いますが、それを行う方法がわかりません。

Amazonのドキュメントでは、ses-send-email.plスクリプトを呼び出すようにメール転送エージェント(MTA)を設定する必要があると述べています。私はスクリプトを持っていますが、これを達成する方法がわかりません。

私は正しい軌道に乗っていますか?もしそうなら、そのスクリプトを使用するようにPostfixをどのように設定できますか?

14
Jake

AmazonがSESへのSMTPアクセスをリリースしました。私は今朝それのための簡単なハウツーを作りました: http://www.millcreeksys.com/2011/12/14/how-to-configure-your-postfix-server-to-relay-email-through -Amazon-simple-email-service-ses /

8
Michael Jensen

SES開発者ガイド からコピーしたアイテムの一部を次に示します。

Ses-send-email.plをPostfixと統合するには:

  1. Master.cfファイルを開きます。多くのシステムでは、このファイルは/etc/postfixディレクトリにあります。
  2. master.cfファイルに次の2行を追加して新しいメールトランスポートを構成し、ファイルを保存します。

    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}
    

この例については、次の点に注意してください。

  • フラグ行は、少なくとも1つの空白文字で始まります。
  • Userパラメータは、非rootユーザー(つまり、非管理ユーザー)を指定する必要があります。ユーザーmailuserは、説明のみを目的としています。
  • ses-send-email.plスクリプトと認証情報ファイルは、/ opt/third-party/Amazonディレクトリにあります。
  • Amazon SESと通信するためのエンドポイントは https://email.us-east-1.amazonaws.com です。

これらのパラメーターを適切に変更する必要があります。

  1. Master.cfと同じディレクトリにあるmain.cfファイルを開き、次のように変更します。

    1. Default_transport行を探します。

      • 存在する場合は、次のように変更します。

        default_transport = aws-email
        
      • 存在しない場合は、前述の内容で新しい行を追加します。

    2. 完了したら、main.cfファイルを保存します。
  2. Postfixサーバーを再起動します。

    /etc/init.d/postfix restart
    

このコマンドは、特定のサーバーではまったく同じでない場合があることに注意してください。これ以降、送信メールはAmazon SES経由で送信されます。Postfixサーバー経由でメールメッセージを送信し、送信先に到着することを確認することで、これをテストできます。メッセージが配信されない場合は、システムのメールログでエラーを確認してください。多くのシステムでは、これは/var/log/mail.logです

-最近私がAmazon CloudとSESで試したすべてのものをまとめた簡単なブログを作成しました。ここにリンクがあります: http://netwiser.blogspot.com/2011/02/setup-Amazon-ses-to-relay-email-by.html

14
Netwiser

サーバー上でPython/Djangoアプリをホストしているため、PostfixをPython AWS Perlスクリプトに相当するもの)に接続する方が好ましい場合があります。このガイドに詳細があります:

http://aws.Amazon.com/articles/240550273705565

あるいは、Perlスクリプトを使用したいが(私のように)CPANモジュールがひどく古くなっていることがわかった場合は、オペレーティングシステムのパッケージマネージャーを介して依存関係をインストールする方が簡単な方法です。たとえば、ubuntuでは、次のようにしてこれを行うことができます:

Sudo apt-get install libio-socket-ssl-Perl libxml-libxml-Perl
1
Tobias McNulty