本ブログは、オラクル・クラウドの個人ブログの1つです。
初めに
今回は、OCI電子メール配信サービス(OCI Email Delivery)の概要を紹介したいと思います。
トピック
OCI Email Deliveryとは
OCI Email Delivery vs AWS SES
OCI Email Deliveryでメールを送信するクイック・スタート (ステップ・バイ・ステップのハンズオン・デモです。)
OCI Email Deliveryとは
「電子メール配信を使用する場合、これがアウトバウンド電子メール・サーバーになります。既存の電子メール・サーバーがある場合は、これを保持して、電子メール配信を介して送信するように構成できます。」 -- OCIドキュメントより
OCI電子メール配信とは何ですかと聞かれたら、上記の説明と図がよく解説してくれますので、そのまま引用しました。(重要かつ理解しやすいと思います。)
OCI Email Deliveryについて知っておくべきこと
項目 | 内容 |
---|---|
送信方法 | SMTP (のみ) |
SMTP Auth | Plain (のみ) |
添付ファイルのサポート | Yes |
DKIM(DomainKeys Identified Mail)のサポート | Yes |
SPF(Sender Policy Framework)のサポート | Yes |
メールの一括送信 | Yes (プログラムで) |
パブリック・インターネットを経由せずにメールを送信 (Service Gatewayを経由) |
Yes |
SDKの提供 | Yes |
Autonomous Databaseからの送信 | Yes |
利用可能リージョン | 全てのリージョン |
サービス制限
メッセージ・サイズの2MBは、ソフト制限です。送信ドメインにSPFとDKIMを設定している場合は、最大60 MBまで、制限の引き上げをリクエストできます。
OCI Email Delivery vs AWS SES
他のクラウド・プロバイダー
AWSが、SES(Simple Email Serviceというメール・サービスを提供しています。このブログの最終更新日(2022年11月)まで、AzureとGCPがまだネイティブのメール・サービスを提供していません。
価格比較
OCI Email Deliveryの価格は、AWS SESより安価で、見積もりも容易です。
OCIでは、添付ファイルに追加費用がかかりません。価格は以下の通りです。
OCI Email Delivery | AWS SES | |
---|---|---|
メール送信 | 送信した数で請求する | 送信した数で請求する |
添付ファイルの追加費用 | なし | あり |
メール受信 | N/A | 有料 |
価格 | LINK | LINK |
OCI Email Deliveryの価格
価格設定は非常にシンプルで、コストを見積もるのは簡単です。
AWS SESの価格
AWS SESは、メールと添付ファイルの送信に対して個別に課金します。送信元(EC2またはその他のメール・クライアント)の場所により、料金が異なります。送信費用を見積もる時、ちょっと複雑になります。
OCI Email Deliveryでメールを送信するクイック・スタート
ステップ
No. | タスク | OCI ユーザー | コメント |
---|---|---|---|
1 | SMTP資格証明の作成 | 電子メール管理者 | |
2 | ポリシーの作成 | テナンシ管理者 | |
3 | 電子メール・ドメインとDKIMの作成 | 電子メール管理者 | オプション |
4 | 承認済送信者の作成 | 電子メール管理者 | |
5 | SPFの設定 | 電子メール管理者 | オプション |
6 | SMTP接続の設定 | 電子メール管理者 | |
7 | テスト電子メールを送信 | 必要なし | VMまたはアプリから実行 |
注意:
-
ステップ3と5はオプションであり、必須ではありませんが、それらを実行することを勧めします。
-
テナンシ管理者としてステップ2を実行する必要があります。ほかのステップについては、テナンシ管理者から権限が付与されているユーザー(例:電子メール管理者)で実行してください。
-
あなたは、テナンシ管理者であり、軽い検証を行いたい(新規ユーザーやグループを作成したくない)場合は、ステップ2をスキップしてもよいです。テナンシ管理者としてほかのステップを実施すればOKです。
検証環境
項目 | 内容 | コメント |
---|---|---|
OCIリージョン | 東京 | すべてのOCIリージョンで利用できます。 |
ユーザー名 | Email_Manager | 事前に作成してください(ここでは省略しました)。 |
グループ名 | Email_Group | 事前に作成してください(ここでは省略しました)。 |
ユーザー・タイプ | IAM Identity Domain | 従来のIDCSまたはIAMユーザーにも適用します。 |
Computeインスタンス | Oracle Linux 8 | |
メール送信用ソフト | mailx | 手動でインストール |
1. SMTP資格証明の作成
ユーザー・タイプは、アイデンティティ・ドメインの場合:
プロファイル・アイコン(右上)-> My profile -> SMTP credentials -> Generate credentials
従来のIDCS/IAMユーザーの場合、入り口は少し違います。
Identity -> Users -> User Details -> SMTP Credentials
次のポップアップ画面で、説明を入力し、「資格情報の生成」ボタンをクリックします。
「コピー」をクリックし、パスワードを保存してください。パスワードは再度表示されません。
生成後、ユーザー名の上にマウスを置き、OCIDをコピーします。ステップ6でパスワードと共に使用します。
1個のユーザーに対し、最大2つのSMTP資格証明が作成できます。
2. ポリシーの作成
このステップを完了するには、テナンシ管理者としてログインしてください。
ユーザー「Email_Manager」とグループ「Email_Group」を用意しておき、「Email_Manager」を「Email_Group」に追加します。
ポリシー名: Email_Delivery_Policy
ステートメント: Allow group Email_Group to manage email-family in compartment PoC
3. 電子メール・ドメインとDKIMの作成(オプション)
DomainKeys Identified Mail(DKIM)は、メール転送エージェント(MTA)によるメッセージのソースと内容の検証を可能にする認証フレームワークです。DKIMにより、署名者はドメインの電子メール・メッセージに暗号を使用して署名し、信頼性の責任を主張できます。
ステップ
3-1. 電子メール・ドメインの作成
3-2. DKIMの作成
3-3. DNSゾーンの作成
3-4. DNS設定にDKIMレコードを追加
3-1. 電子メール・ドメインの作成
Email Delivery -> Email Domains -> Create Email Domain
電子メール・ドメイン名を入力し、「電子メール・ドメインの作成」ボタンをクリックしてください。
3-2. DKIMの作成
電子メール・ドメインがアクティブになったら、「Add DKIM」ボタンをクリックします。
「DKIM Selector」を入力し、「Generate DKIM Record」ボタンをクリックします。
「DKIM Selector」のフォーマット: <prefix>-<shortregioncode>-<yyyymmdd>
CNAME名とCNAME値をコピーし、「Create DKIM」ボタンをクリックします。
DKIMレコード作成後、「DKIM Signing Status」の状態は「Pending DNS」と表示されます。それで、DNS設定にCNAMEレコードを追加す必要があります。
3-3. DNSゾーンの作成
DNSゾーンが存在しない場合は、まずDNSゾーンの作成は必要です。
Networking -> DNS Management -> Zones
ゾーン名として電子メール・ドメイン名を入力し、「作成」ボタンをクリックします。
3-4. DNS設定にDKIMレコードを追加
Networking -> DNS Management -> Zones -> Domain Name -> Records -> Add Record
CNAMEレコードとCNAME値を入力し、「Submit」ボタンをクリックします。
項目 | 説明 | 値 |
---|---|---|
Name | CNAME Record | liu-nrt-20220331._domainkey.<email_domain_name> |
Target | CNAME Value | liu-nrt-20220331.<email_domain_name>.dkim.nrt1.oracleemaildelivery.com |
レコードが作成されたら、「Publish Changes」ボタンをクリックします。
DNSレコードを公開した後、「DKIM Signing Status」が「Active」になるまで時間がかかり、数分間から数時間以上の場合があります(私のテスト用ドメインの場合、1日間かかりました)。ステータスが「Active」になったら、OCIコンソールから確認できます。
4. 承認済送信者の作成
承認済送信者を作成するには、2つの入り口があります。電子メール・ドメインの作成をスキップした場合(ステップ3)、入口は以下です。
Email Delivery -> Approved Senders
電子メール・ドメインとDKIMは作成済の場合、入口は以下です。
Email Delivery -> Email Domains -> Approved Senders
ベスト・プラクティス: 承認済送信者をルート・コンパートメントで作成しないでください。承認済送信者がルート・コンパートメントに存在する場合、テナント全体で承認済送信者を管理するポリシーを作成する必要があります。
5. SPFの設定(オプション)
「承認済送信者」が作成されたら、3ドットのメニューをクリックして「SPFの表示」を選択します。
DNSにSPFレコードがないことを示しています。それで、DNSにSPFレコードを追加する必要があります。
Networking -> DNS Management -> Zones -> Domain Name -> Records
レコード・タイプ: TXT
テキスト: 送信場所によって異なります(この例ではを"Asia/Pacific"使用しています)。
レコードを追加した後、変更を公開することを忘れないでください。
公開後、「SPF Configured」の状態が「Yes」に変わりました。(私の場合、2〜3分しかかかりませんでした。)
3ドットのメニューからもう一度「SPFの表示」をクリックすると、メッセージが次のように変更されていることがわかります。これは予想どおりです。
SPF Record Exists for this Approved Sender
6. SMTP接続の設定
Email Delivery -> Configuration
以下のようにSMTP送信情報を確認してください。
メールの送信元(Computeインスタンス)にログインする必要があります。ここでは、Oracle Linux8 VMを使用しています。mailxはプリインストールされていないので、次のコマンドで手動でインストールしました。
sudo yum install mailx -y
インストール後、次のように/home/opc/.mailrc
を編集します。
[opc@linux8 ~]$ pwd
/home/opc
[opc@linux8 ~]$ cat .mailrc
set smtp-use-starttls
set smtp=smtp.email.ap-tokyo-1.oci.oraclecloud.com:587
set smtp-auth=plain
set smtp-auth-user=<smtp_user_ocid>
set smtp-auth-password=<password>
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
set from=<sender_email_address>
[opc@linux8 ~]$
項目 | 内容 | コメント |
---|---|---|
smtp | smtp.email.ap-tokyo-1.oci.oraclecloud.com | パブリック・エンドポイント |
smtp-auth | plain | SMTP Plainのみをサポート |
smtp-auth-user | SMTP資格証明ユーザのOCID | ステップ1で作成 |
smtp-auth-password | SMTP資格証明のパスワード | ステップ1で作成 |
from | 「承認済送信者」のメールアドレス | ステップ4で設定 |
7. テスト電子メールを送信
メール送信用コマンド:
echo "This is a test for OCI Email Delivery with DKIM" | mailx -s "Test for OCI Email Delivery" <Recipient_Email_Address>
[opc@linux8 ~]$ echo "This is a test for OCI Email Delivery with DKIM" | mailx -s "Test for OCI Email Delivery" <Recipient_Email_Address>
[opc@linux8 ~]$
まとめ
上記は、各機能をカバーしているステップ・バイ・ステップのガイドです。もし軽い検証だけをしたい場合は、ステップ1、4、6、および7の4つのステップのみでOKです。これは非常に簡単です。
以上です。
関連記事
オラクル・クラウドの個人ブログ一覧
Autonomous DBでOCIメール配信サービスを使用してメールを送信
OCI Computeにログインする時にメール通知を送信する方法