Oracle Cloud Infrastructure(OCI)のEmail Delivery(電子メール配信)サービスを、巻末のEmail Deliveryチュートリアルの手順にそって初めて試してみました。
OCI Email Delivery(電子メール配信)とは
- 迅速・高信頼性・低コストなメール配信サービスです。
- メール受信機能は含みません。
- 高品質なメールを配信するための機能
- 既存SMTPサーバやアプリケーションサーバからSMTPエンドポイントを指定することでメール配信が可能です。
-
SPF(Sender Policy Framework)認証に対応
- SPF認証:**電子メール受信者が電子メールのなりすましを検出するために使用されます。**SPFを使用すると、電子メール受信者は、インターネット・プロトコル(IP)がそのドメインへの送信を明示的に認可されているかどうかを確認できます。SPFは、ドメインのDNSレコードに特別なTXTレコードを公開することによって実装されます。[OCIドキュメント-電子メール配信サービスの概要から引用(巻末の参考URLに記載)]
- SPFの仕組み(下図): [一般財団法人インターネット協会-技術解説から引用(巻末の参考URLに記載)]
お試し環境
前提
- OCIのユーザー登録がされていること(IAMユーザーかIDCSユーザーのいずれか)
- 未登録の場合は巻末チュートリアルのガイドにそってユーザーを作成できます。
- メールを送信するための仮想マシン(コンピュート・インスタンス)をOCIに構築済み
- SPF認証に対応するためDNSドメインを利用できること
メール配信の流れ
- メール送信するためのコンピュート・インスタンスにターミナル(例) Windows PowerShell)から接続
- メール配信コマンドを実行
- Email Delivery(電子メール配信)を介して、メール受信者にメールが届くかを確認
OCIでの設定
以下の設定をおこないます。
- ユーザーのSMTP資格証明の取得
- Email Delivery(電子メール配信)の設定
- SPF認証の設定
1. ユーザーのSMTP資格証明の取得
OCIにサインイン後、左上のナビゲーションメニューから**[アイデンティティ] - [ユーザー]**をクリックし、ユーザー を選択します。チュートリアルでは、IAMユーザーを新規作成していますが、IDCSユーザーでも代替することが可能です。今回は筆者の都合上、既存のIDCSユーザーを使用しています。
チュートリアルではセキュリティの観点よりメール送信専用にユーザーを作成して使用することを推奨しています。実際に本番利用する場合には、送信専用のユーザーを作成して設定してください。
Email Deliveryを利用してメールを送信するには、ユーザーのSMTP資格証明が必要です。リソースの**[SMTP資格証明]を選択し、SMTP資格証明の生成 をクリックします。
[SMTP資格証明の生成]画面が表示されます。[説明]に適宜文字入力した後に、[SMTP資格証明の生成]をクリックします。
SMTP資格証明のユーザー名とパスワード**情報が生成されるので、コピーして保持しておきます。
コピーすると、例えばこんな感じです。後でメール送信する際に使います。
ユーザー名:ocid1.user.oc1..aaaaaaaamkql3kgy7evqf6aymsdm3cgvq53oojpwiylnqkvzxurjb5dbzyka@ocid1.tenancy.oc1..aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4mczitpdaymbuazc5xxx.4n.com
パスワード:y!MmDa1MJk0]$DwqVXXX
チュートリアルでは、ユーザーをグループへ追加する処置をしていますが、今回はスキップしてます。
2. Email Delivery(電子メール配信)の設定
次に、Email Delivery(電子メール送信)を使ってメール送信するために、メール送信を許可するメールアドレスを登録します。
左上のナビゲーションメニューから**[開発者サービス] - [電子メール配信]から、[承認済送信者]**を選択し、承認済送信者の作成 をクリックします。
承認済送信者の電子メールアドレスを入力します。
承認済送信者の電子メールアドレス(例) mail@cocotaro.com)が登録されました。
3. SPF認証の設定
前述のSPF認証のための設定をおこないます。SPFレコードを取得して、ドメインに登録します。右3点マークをクリックしSFP表示を選択します。
SPFの管理 画面が表示されるので、SFPレコードをコピーします。今回はアジア太平洋を選択。
[ネットワーキング] - [DNS管理] - [ゾーン]をクリックし、DNSゾーン を表示します。左下 リソース のレコード を選択し、レコードの追加 をクリックします。
レコードの追加 画面から、SPFレコードを入力します。
[レコード型] TXT-テキストを選択します。
[TEXT(テキスト)] SPFレコードを入力します。
送信 をクリックし、続けて変更を公開 します。
確認 画面が表示されるので、確認後、変更の公開 をクリックし変更を反映させます。
右上部に 更新が公開されました メッセージが表示されました。
以上でOCIでの設定作業は終了です。
メール送信側の準備
メール送信用にOCIにコンピュート・インスタンスを作成します。チュートリアルにLinux環境と、Windows環境からのメール送信について記載がありますが、こちらでは以下のLinux環境を準備します。
前提
- OS:Oracle Linux 7.9 (OCIコンピュート・インスタンス)
- メールコマンド:mailx
Oracle Linux でインスタンスを作成しました。
インスタンスに接続し、OS標準で用意されている mailx コマンドを利用するために、ユーザーホームディレクトリの .mailrc (例) opcユーザーの場合:/home/opc/.mailrc)を編集します。
インスタンに接続(例) Windows10 PowerShell から接続)し .mailrc を編集します。
ssh -i ~/.ssh/id_rsa opc@150.230.61.XXX
[opc@mail-delivery01 ~]$
[opc@mail-delivery01 ~]$ vi ~/.mailrc
.mailrc に以下を追加します。
smtp-use-starttls
set smtp=smtp://smtp.email.ap-osaka-1.oci.oraclecloud.com
set smtp-auth=plain
set smtp-auth-user=ocid1.user.oc1..aaaaaaaamkql3kgy7evqf6aymsdm3cgvq53oojpwiylnqkvzxurjb5dbzyka@ocid1.tenancy.oc1..aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4mczitpdaymbuazc5tkguca.4n.com
set smtp-auth-password=y!MmDa1MJk0]$DwqV#JE
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
set from=mail@cocotaro.com
[補足説明]
set smtp=smtp://smtp.email.ap-osaka-1.oci.oraclecloud.com <= Email Delivery エンドポイント
set smtp-auth=plain
set smtp-auth-user=ocid1.user.oc1..aaaaaaaamkql3kgy7evqf6aymsdm3cgvq53oojpwiylnqkvzxurjb5dbzyka@ocid1.tenancy.oc1..aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4mczitpdaymbuazc5xxx.4n.com <= SMTP資格証明のユーザー名のOCID
set smtp-auth-password=y!MmDa1MJk0]$DwqVxxx <= SMTP資格証明のパスワード
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
set from=mail@cocotaro.com <= 送信者のメールアドレス(From: アドレス)
メール送信確認
メール送信用のコンピュート・インスタンスから mailx コマンドを使ってメールを送信してみます。
コマンド操作としては以下となります。
echo "[メール本文]" | mailx -s "[タイトルに表示]" 受信メールアドレス
実際にメールを送信してみます。
例)
[opc@mail-delivery01 ~]$ echo "こんにちは、Email Delivery でメールを送信します。" | mailx -s "Email Delivery TEST" xxxx.yyyy@oracle.com
Office 365 の Outlook で無事メッセージを受け取ることができました!
補足ですが、Office 365 の Outlook で到着したメールをダブルクリックし、[ファイル] - [情報] - [プロパティ] の [インターネット ヘッダー(H)]情報を参照することが可能です。
参考URL
Email Deliveryを利用した外部へのメール送信(その1 配信環境構築編) - Oracle Cloud Infrastructureアドバンスド
Email Deliveryを利用した外部へのメール送信(その2 メール送信編) - Oracle Cloud Infrastructureアドバンスド