メサイア・ワークス

eccubeとlightsailで独自ECサイトを作る。その2(SESを使って新規会員登録のメール送信)

eccubeとlightsailで独自ECサイトを作る。その2(SESを使って新規会員登録のメール送信)

eccubeとlightsailで独自ECサイトを作る。その1

SES(Simple Email Service)は、Route53(DNSサーバ)を使わないとダメなのかな?と思ったけど、普通にDNSサーバに所有者を示すTXTレコードを置けば大丈夫だった。

1, SESの管理画面に行って、Verify a New Domainボタンを押して、独自ドメインを入力

2, DNSサーバにMXレコードと所有者を示すTXTレコードを配置。数分待つとverifiedされる
※DKIM(DomainKeys Identified Mail)もCNAMEレコード2~3個を作るだけなので、やっておいた方が良い(しないとgmailでは、amazonses.com経由と表示される。送信ドメインサーバが違うため)

3, Send a Test Emailボタンで送信テストすると送信できない!
Email address is not verified. The following identities failed the check in region AP-NORTHEAST-1
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/request-production-access.html

SESのサイドバーのSending Statisticsで、こういう風に使いたいんだよ~と申請するとAWSが許可してくれるまで、サンドボックスは続く…。と思ったら、すぐ送信できるようなった(苦笑)

4, SESのSMTPアカウントを作成
https://qiita.com/s-katsumata/items/94c947e3b7b71c8b6ee3

サイドバーのSMTP SettingsのCreate My SMTP Credentialsボタンを押すと、IAM Userを作り始める…。
1 ユーザーが正常に作成されました。
これは、SMTP セキュリティ認証情報をダウンロードできる唯一の機会です。SMTP ユーザーの認証情報はユーザーの作成時のみ利用できます。保護のため、誰とも SMTP 認証情報を共有しないでください。

と恐ろしい感じで、SMTPの接続アカウントが表示される。

5, lightsailのSSH接続でメール送信する事ができる。
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/send-email-smtp-client-command-line.html

SESを使った手動メール送信

サンプルコードの X-SES-CONFIGURATION-SET: ConfigSet があるとエラーでメール送信できなかった。
554 Configuration Set does not exist: Configuration set does not exist.

6, eccubeからSESでメール送信できるようにする

eccubeフォルダに.envファイルがあるので設定する。
SESリージョンのURL

MAILER_URL=smtp://SESリージョンのURL:587?encryption=tls&auth=login&username=&password=

なぜか、日本リージョンだとSMTP認証に失敗する…。オレゴンリージョンでSESを作り直したら、普通に送信された(日本リージョンはメール受信出来ないのでオレゴン一択で良いかも)
Exception occurred while flushing email queue: Failed to authenticate on SMTP server with username
“ユーサ名” using 1 possible authenticators. Authenticator LOGIN returned Expected
response code 235 but got code “535”, with message “535 Authentication Credentials Invalid

モバイルバージョンを終了