11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[OCI] Email Delivery を使って初めてメール送信してみた

Last updated at Posted at 2021-11-08

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に記載)]
image-20211105093105036.png

お試し環境

前提

  • OCIのユーザー登録がされていること(IAMユーザーかIDCSユーザーのいずれか)
    • 未登録の場合は巻末チュートリアルのガイドにそってユーザーを作成できます。
  • メールを送信するための仮想マシン(コンピュート・インスタンス)をOCIに構築済み
  • SPF認証に対応するためDNSドメインを利用できること

メール配信の流れ

  1. メール送信するためのコンピュート・インスタンスにターミナル(例) Windows PowerShell)から接続
  2. メール配信コマンドを実行
  3. Email Delivery(電子メール配信)を介して、メール受信者にメールが届くかを確認
    image-20211104152137982.png

OCIでの設定

以下の設定をおこないます。

  1. ユーザーのSMTP資格証明の取得
  2. Email Delivery(電子メール配信)の設定
  3. SPF認証の設定

1. ユーザーのSMTP資格証明の取得

OCIにサインイン後、左上のナビゲーションメニューから**[アイデンティティ] - [ユーザー]**をクリックし、ユーザー を選択します。チュートリアルでは、IAMユーザーを新規作成していますが、IDCSユーザーでも代替することが可能です。今回は筆者の都合上、既存のIDCSユーザーを使用しています。

チュートリアルではセキュリティの観点よりメール送信専用にユーザーを作成して使用することを推奨しています。実際に本番利用する場合には、送信専用のユーザーを作成して設定してください。
image-20211104154400864.png
Email Deliveryを利用してメールを送信するには、ユーザーのSMTP資格証明が必要です。リソースの**[SMTP資格証明]を選択し、SMTP資格証明の生成 をクリックします。
image-20211104155453950.png
[SMTP資格証明の生成]画面が表示されます。[説明]に適宜文字入力した後に、
[SMTP資格証明の生成]をクリックします。
image-20211104155716131.png
SMTP資格証明の
ユーザー名とパスワード**情報が生成されるので、コピーして保持しておきます。
image-20211104160116763.png
コピーすると、例えばこんな感じです。後でメール送信する際に使います。

ユーザー名:ocid1.user.oc1..aaaaaaaamkql3kgy7evqf6aymsdm3cgvq53oojpwiylnqkvzxurjb5dbzyka@ocid1.tenancy.oc1..aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4mczitpdaymbuazc5xxx.4n.com
パスワード:y!MmDa1MJk0]$DwqVXXX

チュートリアルでは、ユーザーをグループへ追加する処置をしていますが、今回はスキップしてます。

2. Email Delivery(電子メール配信)の設定

次に、Email Delivery(電子メール送信)を使ってメール送信するために、メール送信を許可するメールアドレスを登録します。

左上のナビゲーションメニューから**[開発者サービス] - [電子メール配信]から、[承認済送信者]**を選択し、承認済送信者の作成 をクリックします。
image-20211104161843768.png
承認済送信者の電子メールアドレスを入力します。
image-20211104162109376.png
承認済送信者の電子メールアドレス(例) mail@cocotaro.com)が登録されました。
image-20211104162247788.png

3. SPF認証の設定

前述のSPF認証のための設定をおこないます。SPFレコードを取得して、ドメインに登録します。右3点マークをクリックしSFP表示を選択します。
image-20211104162613174.png
SPFの管理 画面が表示されるので、SFPレコードをコピーします。今回はアジア太平洋を選択。
image-20211104162729244.png
[ネットワーキング] - [DNS管理] - [ゾーン]をクリックし、DNSゾーン を表示します。左下 リソース のレコード を選択し、レコードの追加 をクリックします。
image-20211104162849213.png
レコードの追加 画面から、SPFレコードを入力します。
image-20211104163022979.png
[レコード型] TXT-テキストを選択します。
[TEXT(テキスト)] SPFレコードを入力します。
送信 をクリックし、続けて変更を公開 します。
image-20211104163129277.png
確認 画面が表示されるので、確認後、変更の公開 をクリックし変更を反映させます。
image-20211104163211075.png
右上部に 更新が公開されました メッセージが表示されました。
image-20211104163613601.png
以上でOCIでの設定作業は終了です。

メール送信側の準備

メール送信用にOCIにコンピュート・インスタンスを作成します。チュートリアルにLinux環境と、Windows環境からのメール送信について記載がありますが、こちらでは以下のLinux環境を準備します。

前提

  • OS:Oracle Linux 7.9 (OCIコンピュート・インスタンス)
  • メールコマンド:mailx

Oracle Linux でインスタンスを作成しました。
image-20211105173605372.png
インスタンスに接続し、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 で無事メッセージを受け取ることができました!
image-20211108100025968.png
補足ですが、Office 365 の Outlook で到着したメールをダブルクリックし、[ファイル] - [情報] - [プロパティ] の [インターネット ヘッダー(H)]情報を参照することが可能です。
image-20211108102239933.png

参考URL

Email Deliveryを利用した外部へのメール送信(その1 配信環境構築編) - Oracle Cloud Infrastructureアドバンスド

Email Deliveryを利用した外部へのメール送信(その2 メール送信編) - Oracle Cloud Infrastructureアドバンスド

電子メール配信サービスの概要

一般財団法人インターネット協会-技術解説

11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?