はじめに
この記事では、SAP Cloud Integrationを利用してメールを送信してみる、というシナリオを実装してみます。使用するのはGmailのメールサーバです。以下の点で苦労したので、記録に残しておきます。
- Gmailの証明書の取得方法
- 証明書をアップロードしても出るエラーの対処
関連記事
【SAP Cloud Integration】ODataサービスを呼ぶ
参考にした記事
SAP Cloud Integration(CPI): Customizing Email using Mail Adapter
こちらはOutlookでの設定です。
事前準備
GmailのユーザID、パスワードをSecurity Materialに登録
Security Materialのタイルをクリックします。
Create>User Credentailsを選択します。
GoogleアカウントのユーザID、パスワードを設定します。
Gmailの証明書をKeystoreに登録
TLSを使ってGmailのSMTPサーバと通信するために、Gmailの証明書を取得します。
証明書はこちらの記事を参考に取得しました。
https://kb.fortinet.com/kb/documentLink.do?externalID=FD40548
以下のように証明書の部分を切り取って、.cer
形式で保存します。
Keystoreに証明書を登録します。
Add>Certificateより、ダウンロードした証明書を選択して追加します。
Connectivity Testsで接続テストをしておきます。
以下を設定して"Send"をクリックします。正常終了すればOKです。
項目 | 設定値 |
---|---|
Host | smtp.gmail.com |
Authentication | Plain User/Password |
Credential Name | <Security Materialに登録したCredentialの名前> |
以下のようなエラーが出た場合は、メッセージの一番下に記載されているURLに従って対応します。
https://support.google.com/mail/answer/78754
2ステップの認証を使っていない場合(私の場合はそうでした)、以下を実行します。
- 安全性の低いアプリによるアクセスを有効にする
- Google アカウントへのアクセスを許可のページへ行き、設定を有効にする
Integration Flowの作成
以下のようなフローを作成しました。各ステップの設定は以降で説明します。
Start Timer
タイマーで起動する設定です。このフローはデプロイ時に一度だけ動きます。
Set Content
このステップはContent Modifierです。メールに添付ファイルをつけたいのでMessage Bodyにテキストを設定しています。
Mail Adapter
メール送信の設定です。
項目 | 設定値 |
---|---|
Address | smtp.gmail.com:587 |
Authentication | Plain User/Password |
Credential Name | <Security Materialに登録したCredentialの名前> |
項目 | 設定値 |
---|---|
From | <自分のメールアドレス> |
To | 同上 |
Subject | <メールの件名> |
Body Mime-Type | Text/Plain |
項目 | 設定値 |
---|---|
Name | <添付ファイルの名前> |
Mime-Type | Text/Plain |
Source | Body ※Content Modifierで設定したBodyをそのままテキストファイルにする |
以上でフローの設定は完了です。保存、デプロイして動作を確認します。
動作確認
Monitor Message Processingのタイルを見ると、正常終了したことがわかります。
Gmailのメールボックスにメールが届きました。
添付ファイルもついています。