たぶん自分にしか需要ない話だけど、備忘録として。。
メール受信の流れ
- SESでメールを受信
- 受信したメールをS3に保存
- S3に保存したタイミングでLambdaが発動し指定のメールアドレスに転送
参考にしたのは、ここ
https://tech.taiko19xx.net/entry/2018/05/01/195119
この通りにやれば 、正しく動作します。この通りにやればね。
いくつか設定が抜けていたので、こんな記事を書くことになっています。
ハマった箇所その1: Lambdaのトリガーを設定していない
そりゃ動くわけないだろって話ですね、
SESの「Email Receiving」の「Rule sets>default-rule-set>hogehoge-rule」に
メールの保存先のS3、S3に保存されたタイミングで転送するLambda関数を追加しましょう。
ハマった箇所その2: リージョンが異なる
SESは2019/7現在、東京リージョンにはないので、オレゴンリージョンで作成。
Lambdaは東京、S3はSESを設定したときに同時に作成したのでオレゴン。
その1のLambdaの設定欄から関数を選べないので、なんでかわからんかったけど、リージョンが異なるからでした。
SESと同じリージョンで作成しましょう。
ハマった箇所その3: Lambda関数でエラーが発生
ソースコードは正しいのに、以下のようなエラーが。
Unable to import module '...': No module named ...
参考にした記事はここ。
http://cloudmemo.hatenablog.com/entry/2016/12/17/094705
Lambdaにアップロードする際に、ディレクトリの圧縮ではなく、ディレクトリの中身を圧縮しなければならないということ。
以上、情弱ですみませんでした。