Canvas-LMS:メール(SES)設定方法

Canvas-LMS:メール(SES)設定方法

キャレット合同会社の椎原です。

Canvas-LMSからAWS SESを使ってメールを送ろうとして四苦八苦しました。エラーの原因を特定するバウンスメールが管理者メールアドレスに来るはずなんですが、デフォルトメールを変えるにはメールリマインダーで変更するしかない。届かないアドレスなのにリマインダーって……

試行錯誤して、S3に保管して、SNSでバウンスメールを私のアドレスに通知するようにしました。

ここでAWSの制約が。

  • 東京リージョンは送信だけ。受信できない。受信したいならオレゴンとかにする。
  • SESはPOP3、IMAPに対応してない。使いたいのならSESではなく、Amazon WorkMailを使う。
  • サンドボックスを解除申請しておかないとテストメールに困ることになる。

サプレッションリストに管理者アカウントが入っているとのメッセージ。バウンスメールがSNSから来るので、GUIコンソールから削除したが、バグなのか削除されている気配がない。cliで一覧見ると確かに入っている(削除されてない)のを確認。cliで削除。

SESが機能しているかどうかは、メールクライアントのThunderbirdで送って、設定とS3到着確認。

SESは問題無いということを確認。設定か、Canvas-LMSがおかしいのではという疑いが濃くなる。

Gmailで送ってみるが送信できず。管理者アドレスを変更しようとしたら、管理者権限で入れなくなったので、マーケットプレイスから最新版をダウンロードして、再構築したらアッサリ、メールが送れるようになりました。バグだったみたい……

---

/opt/bitnami/apps/canvaslms/htdocs/config/outgoing_mail.yml を修正

修正したらCanvas-LMSの再起動を忘れずに。
sudo /opt/bitnami/ctlscript.sh restart

production:
  enable_starttls_auto: "true"
  address: "email-smtp.us-west-2.amazonaws.com"
  port: "587"
  user_name: "AKIAxxxxxxxxxxxxxxxxxxxxxx"
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  authentication: "plain"
# plain, login, or cram_md5
  domain: "bizaas.net"
  outgoing_address: "admin@bizaas.net"
  default_name: "Instructure Canvas"

これで、やっとメール認証ができると思ったら、最後の難関。リマインダーメールのURLがおかしい。

The email address, admin@bizaas.net is being registered at 3.113.246.159 for the user, user@example.com.

リマインダーメール

3.113.246.159って何のIP? このIPをキーにしてfind掛けてみたら、domain.ymlに書かれているのが判明。そう言えばインストールガイドに編集するようにと書かれていましたわ。

domainをbizaas.netに変更したら正常にリンクされるようになりました。

めでたしめでたし

お問い合わせ

キャレット合同会社へのお問い合わせやご相談などがありましたら、以下のメールフォームよりお気軽にご連絡ください。

Canvas-LMSカテゴリの最新記事