OCI(Oracle Cloud Infrastructure) Email Deliveryを構成してみる

こんにちは、代表の亀井です。
最近社内環境をGoogle GmailからExchange(Microsoft365)に移行したのですが、その際にWordpressのメール通知をGmailからEmail Deliveryに変更したので、その備忘録です。

Oracle Cloud 公式ブログのEmail Deliveryを利用した外部へのメール送信(その1 配信環境構築編) – Oracle Cloud Infrastructureアドバンスド を参考にしています。
詳細はマニュアルをご参照ください。

目次

OCI Email Deliveryについて

OCI Email Deliveryは、Oracle Cloudのメール通知サービスです。個人間でやり取りする通常のメールではなく、アプリケーションやメール配信用に利用することを想定しています。

使ったことがないということであれば、思ったより安いなとかなるかと思います。2020/12/12現在で、1,000通あたり10.2円です。Oracle APEXと組み合わせて、メール配信サービスを開発したいとかであれば、請け負いますし支援もしますのでお気軽にご連絡ください。
同じようなサービスでいうと、最近Twilioに買収されたSendGridなどがあります。

話がそれますが、Twilioは開発者としては面白いサービスだと思いますので、ご存じなければ、通話用の自動音声など興味があればセミナーなどよくやっているので行ってみると面白いと思います(弊社では現状取り扱いしておりませんが、SMS連携したり、機械音声連携したり、LINEなどでチャットボット連携したりと、多彩なインターフェースをGUIでフローを組んで実装するようなサービスです)。

作業の流れと注意点

最初にOCIに接続し、アイデンティティからSMTPサーバ管理用のアカウントを作成します。
作成したアカウントにSMTPの送信用設定を行い、送信元メールアドレス(from)を登録します。
最後に送信元のドメインの認証設定(SPF)を行います。

送信するメールアドレスの偽装を回避するため、メールで利用しているドメインのDNSにTXTレコード(SPF)を設定します。
送信元にしたいドメインのDNSの操作が入るので注意してください。

OCIのメール通知用アカウント作成

OCIにてIAM(Identity and Access Management:アイアム)ユーザを作成します。

  1. 「アイデンティティ」から「ユーザー」を選びます。
    アイデンティティ選択

  2. 作成ボタンを押すと、ユーザーの作成画面となるため、IAMユーザーを選びユーザー名、メールを入力して作成します。ここで入力したメールにWelcomeメールが飛びます。
    ユーザー作成

  3. ユーザーを作成するとユーザーの一覧に表示されるため、ユーザー名をクリックし、ユーザーの詳細画面に遷移します。左下にSMTP資格証明がありますので、そちらをクリックします。
    SMTP資格証明

  4. 右側のグループがSMTP資格証明に切り替わり、SMTP資格証明の生成ボタンが出ますので、そちらをクリックしてSMTP資格証明を生成します。
    SMTP資格証明

  5. 生成ボタンを押すと資格証明が生成され、ユーザー名とパスワードが表示されます。こちらをコピーしておきます。
    SMTP資格証明のコピー

ユーザーログイン

操作していたAdministrators権限のユーザーで、SMTP資格証明を作っていないせいか、フェデレーション(IDCSやAzureAD)のユーザーだと操作が出来ないのか、メール送信元の登録が出来なかった為、新しく作成したユーザーからEmailの構成を行いました。※ ただのバグかもしれない。

  1. 今回はグループ作成後(割愛します)、以下のポリシーを割り当てました。approved-sendersとsuppressionsのリソースでは、電子メールの承認済送信者電子メールの抑制リストの操作が可能になります。(なるはずだと思うのですが、電子メールの抑制リスト(suppressions)は動作しませんでした・・。今回は支障がなかったのでサポート未確認のまま進めました。)
    • Allow group <グループ名> to manage approved-senders in compartment <コンパートメント名>
    • Allow group <グループ名> to manage suppressions in compartment <コンパートメント名>
      > リソースの権限については、Oracle Cloud Infrastructureドキュメント 電子メール・サービスの詳細を参照してください。
  2. ユーザーパスワードの生成
    作成したユーザーのパスワードを生成します。生成したパスワードを利用して、Welcomeメールからログインしてください。
    パスワードの変更

承認済送信者の登録

  1. approved-sendersのリソース権限を持ったユーザーでログインし、送信元の登録を行います。電子メールの承認済送信者に移動します。
    電子メールの承認済送信者

  2. 承認済送信者の作成ボタンを押し、送信元メールアドレスを入力し、登録します。
    承認済送信者の作成

  3. 作成後の一覧からSPFを表示できますので、SPFを表示してコピーします。リージョンごとに別に出ていましたので、作成したリージョンに該当するSPFレコードをコピーしてください。
    SFPの表示
    東京リージョンでは以下を使いました。

    • v=spf1 include:ap.rp.oracleemaildelivery.com ~all
  4. 電子メール構成からSMTPサーバーをコピーしておきます。
    • パブリック・エンドポイント: smtp.email.ap-tokyo-1.oci.oraclecloud.com
    • SMTPポート: 25, 587
      • SMTPポートは587が良いかと思います。
    • セキュリティ: TLS有効

ドメインの認証設定

  1. 送信元メールのドメインに先ほどコピーしたSPFのTXTレコードを設定してください。設定方法がわからない場合はドメイン管理者に聞いてください。こちらの手順は利用しているドメイン管理のベンダー毎に代わると思いますので、割愛します。

アプリケーションからのメール送信

もうメールを送れるはずです。以下の情報を利用してメール通知をしてみてください!

  • OCIのメール通知用アカウント作成にて取得したSMTP資格証明のユーザー名とパスワード
  • 承認済送信者の登録にて確認したSMTPサーバー

関連記事

  1. ローコード開発ってどうやるの?(Oracle APEX)

  2. プログラミングスクールからの転職者がたくさん来ます

  3. 第四回APEXユーザ会(APEX User Group)に行ってきまし…

  4. 第一回APEXユーザ会(APEX User Group)に行ってきまし…

  5. Oracle Database 18c Express Edition…

  6. Oracle APEX 5.0-20.2におけるAPEX_ITEMの利…