web-dev-qa-db-ja.com

Amazon AWSにインバウンドメールを実装するにはどうすればよいですか?

私はAWSに比較的慣れていませんが、AWSにメールを受信させる方法を見つけようとしています。この投稿によると AWSで[email protected][email protected]などのメールアカウントを設定する方法 SESは送信メールのみを処理します。

私が達成したいと思っているのは、エイリアスをフィルタリングする機能です。たとえば、エイリアスが「xyz12alias」の場合、「[email protected]」に送信されたすべての電子メールは、電子メールを表示してコンテンツを適切に処理できます。私の場合、これはフィルターに関連付けられたアカウントに保存されます。

アマゾンAWSにインバウンドメールを実装できるAWS内の戦略やサービスを誰かに教えてもらえますか?

https://postmarkapp.com/inbound は私が欲しいものを与えてくれるようですが、AWSフレームワーク自体の中に何かありますか? postmarkappに代わるサービスはありますか?

ありがとう。

14
Elenesski

Amazon Simple Email Serviceは、受信メールサポートを導入しました。

https://aws.Amazon.com/about-aws/whats-new/2015/09/Amazon-ses-now-supports-inbound-email/

スケーラブルで費用効果の高いEメール送信プラットフォームを提供することに加えて、AmazonSESは受信Eメールを受け入れることができるようになりました。メッセージをAmazonS3バケットに配信するように、Amazon SESを設定したり、AWS Lambda関数を介してカスタムコードを呼び出したり、AmazonSNSに通知を公開したりできます。受信したくないメッセージをドロップまたはバウンスするようにAmazonSESを設定することもできます。メッセージをAmazonS3に保存することを選択した場合、Amazon SESは、バケットに書き込む前にAWS Key Management Service(KMS)を使用してメールを暗号化できます。

これらのアクションはすべて、AmazonSESコンソールまたはAmazonSESAPIを使用して設定したレシートルールを定義することで設定します。受信ルールを使用すると、1つのメッセージで複数のアクションをトリガーできます。ルールは、特定の電子メールアドレスまたはドメイン全体に適用するように構成できるため、選択した範囲で広範または具体的にすることができます。

受信ルールを使用して、AmazonSESがお客様に代わって受け入れることができるメッセージを制御することもできます。別のフィルタリング方法は、カスタムIPアドレスブロックリストと許可リストを設定することです。特定のIPアドレス範囲から発信されたメールを受信したくないことがわかっている場合は、そのメールをアカウントのIPアドレスブロックリストに追加するだけです。許可リストにIPアドレス範囲を追加してブロックリストを上書きすることもできます。これにより、受信メールトラフィックをきめ細かく制御できます。

10
pako

独自のサーバーをセットアップする必要があります。これがAWSを使用して処理する方法です。彼らはバルクメール配信サービス以外は何も提供していません。以下のいくつかのリンク:

http://jeffreifman.com/how-to-install-your-own-private-e-mail-server-in-the-Amazon-cloud-aws/

http://cerebellumstrategies.com/2012/04/15/Amazon-linux-postfix-dovecot/

更新:以下のコメントで参照されているように、AWSで利用可能なソリューションがあります。

5
wkhatch

それでもSESでは可能ではないようです。ただし、MandrillとSendgridを確認することをお勧めします。

http://mandrill.com/features/

https://sendgrid.com/docs/API_Reference/Webhooks/parse.html

2
Ian

Amazonと任意の仮想サーバーを使用してSESからローカルIMAPアカウントにEメールを配信する方法は次のとおりです。この計画は安定した運用に関するものです。すべてのステップは私たちの管理下にあります。

  1. SESにメールを受信させる
  2. そして、S3バケットに配信し、SNSトピックに通知を送信します
  3. HTTPSプロトコルでその通知をサブスクライブする
  4. Aws/aws-php-sns-message-validatorを使用し、小さなPHPスクリプトを記述して、HTTPSを介してSNSからの通知を受け取ります
  5. SNSはメッセージIDのみを送信し、それらをファイルに入れます
  6. サーバーにincronをインストールして、s3cmdによってS3バケットからこれらのメッセージをダウンロードし、sendmailによってローカルIMAPアカウントに配信するシェルスクリプトを開始します。
  7. 任意のIMAPサーバーを使用します。CourierIMAPを使用します
  8. たとえば、メッセージを読んでください。 Rainloopウェブメール
  9. 送信メールの送信にもSESを使用します
1
Szépe Viktor

AWS SESインバウンドメールサポート を使用する場合、主な課題は、プログラムによるタスクに適していますが、生のメッセージ配信形式で受信するため、人間が読める形式ではありません。

S3バケット、SNSトピック(これもEメールにリンクできます、SMSなど)、Lambdaは、受信したのと同じ形式で受信メールを転送して、プログラムによるアクションを実行できます)を設定できます。メールの内容に基づいています。

人間が読める形式でメッセージを読みたい場合は、フォーマットを行うための独自のコードを作成する必要があります。たとえば、 サーバーレスラムダSESフォワーダー includeを使用すると、NodeJSコードがLambdaで実行され、生のメールが人間が読める形式に変換され、受信者のメールに転送されます。

0
Ashan