基本はこのQiitaの手順通りですが、自分がハマった点をメモしときます。
ドメインとアドレスの認証
上記QiitaではRoute 53経由でドメイン認証していたが、自分はムームードメインを使ってたので少しやり方がことなった。基本はTXTレコードでドメイン認証する(ムームードメインの場合はちゃんとムームーDNSを使う設定になってるか確認すること)か、DKIMのためのCNAMEレコードで認証する。
送信で使うことはないが、メールアドレスの追加も一応した。ただし「MAIL FROM DOMAIN」はメール送信したときに送信元アドレスをamazonses.com
じゃなく自分のドメインにしたいときに使うものだから追加しなくていい。
ただMXレコードは知らぬ間に以下を設定していた。。
S3バケットとLamdaのRegionが同じか
そもそもSESを使う場合はアジアは確かダメで米国圏?のRegionにしてやる必要がある。なのでSESもS3もLamdaも全部「米国東部(バージニア北部)us-east-1
」にしておけばOK。
ロールに権限をアタッチしてあげる必要がある
以下のようなエラーがでる
Access Denied
Make sure they exist and your bucket is in the same region as this function
下記ブログの通り、アクセス権限をアタッチしてあげる。
プレフィックスの指定方法
プレフィックス自体は任意の名前をつけていいが、結論、全部同じものをしておけば間違いない。先のQiitaの記事にしたがい(コメントでも指摘させてもらったけどmailbox-やmainbox-のタイポがあって混乱しちゃったけど)全部mailbox
を入力する。LamdaのS3トリガーでオプションとしてプレフィックスを指定できるが、これもmailbox
とした。
プレースホルダーがimages/
とスラッシュ付きなので不安になるが、S3のPUTがトリガーとなる場合、Objectの取得のためにしていするkey(ファイル名)はmailbox/hogefuga
のようにディレクトリ名も含んだ名前になるのでスラッシュがあろうがなかろうが関係ないみたい。
プレフィックス=ファイル名の最初に共通してつく文字列のこと、で間違いないようだ。