【SAP Cloud Integration】メールを送信する

##はじめに
この記事では、[SAP Cloud Integration](https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/2fb0aa4dc5194b589adcd1c5534901e3.html)を利用してメールを送信してみる、というシナリオを実装してみます。使用するのはGmailのメールサーバです。以下の点で苦労したので、記録に残しておきます。

- Gmailの証明書の取得方法
- 証明書をアップロードしても出るエラーの対処

関連記事
[【SAP Cloud Integration】ODataサービスを呼ぶ](https://qiita.com/tami/items/3f4a51d80ff7acd83ce5)

参考にした記事
[SAP Cloud Integration(CPI): Customizing Email using Mail Adapter](https://blogs.sap.com/2021/09/21/sap-cloud-integrationcpi-customizing-email-using-mail-adapter/)
こちらはOutlookでの設定です。

##事前準備
###GmailのユーザID、パスワードをSecurity Materialに登録
Security Materialのタイルをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/2c956707-e537-43be-0398-3c95fc29a45d.png)
Create>User Credentailsを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/a1a067cc-4cdb-f8b6-f450-9192b83ecb2f.png)
GoogleアカウントのユーザID、パスワードを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/b88a34e8-105b-67e2-ea07-c6f130290841.png)

###Gmailの証明書をKeystoreに登録
TLSを使ってGmailのSMTPサーバと通信するために、Gmailの証明書を取得します。
証明書はこちらの記事を参考に取得しました。
https://kb.fortinet.com/kb/documentLink.do?externalID=FD40548
以下のように証明書の部分を切り取って、`.cer`形式で保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/5f026e73-e9d8-15e2-97ae-c1242f3e6e21.png)
Keystoreに証明書を登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/00fcf26f-b095-591b-bc86-39a6de04839a.png)
Add>Certificateより、ダウンロードした証明書を選択して追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/b542a02d-11a9-59f2-1f42-420dc4484847.png)
Connectivity Testsで接続テストをしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/0169c741-79a0-663e-bd54-0bff08402c71.png)
以下を設定して"Send"をクリックします。正常終了すればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/d065f8a5-3066-eb7e-8687-170fbc309646.png)

|項目  |設定値  |
|---|---|
|Host  |smtp.gmail.com  |
|Authentication |Plain User/Password  |
|Credential Name  |\<Security Materialに登録したCredentialの名前>  |

以下のようなエラーが出た場合は、メッセージの一番下に記載されているURLに従って対応します。
https://support.google.com/mail/answer/78754
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/7d6833e7-6c21-743c-3734-57d43fedbb24.png)
2ステップの認証を使っていない場合（私の場合はそうでした）、以下を実行します。

- [安全性の低いアプリによるアクセスを有効にする](https://support.google.com/accounts/answer/6010255)
- [Google アカウントへのアクセスを許可](https://www.google.com/accounts/DisplayUnlockCaptcha)のページへ行き、設定を有効にする

##Integration Flowの作成
以下のようなフローを作成しました。各ステップの設定は以降で説明します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/914aeed9-8939-438a-6730-d539ce84b2fe.png)
###Start Timer
タイマーで起動する設定です。このフローはデプロイ時に一度だけ動きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/5860e7f9-567c-c301-9334-320e698edddc.png)
###Set Content
このステップはContent Modifierです。メールに添付ファイルをつけたいのでMessage Bodyにテキストを設定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/7cff9055-61ea-d396-e8ea-a6c86cd38b2d.png)

###Mail Adapter
メール送信の設定です。

- Connectionタブの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/aebe8194-0dbe-5449-c1e6-edde096b8ca2.png)

|項目  |設定値  |
|---|---|
|Address  |smtp.gmail.com:587  |
|Authentication |Plain User/Password  |
|Credential Name  |\<Security Materialに登録したCredentialの名前>  |

- Processingタブの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/f282a6e8-0fb2-95c9-80ab-261bda375c3d.png)

|項目  |設定値  |
|---|---|
|From  |<自分のメールアドレス>  |
|To |同上  |
|Subject  |<メールの件名>  |
|Body Mime-Type  |Text/Plain  |

添付ファイルをつける設定をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/c77b8aa3-b61e-ad7c-8189-a0fb206f7da3.png)

|項目  |設定値  |
|---|---|
|Name  |<添付ファイルの名前>  |
|Mime-Type |Text/Plain  |
|Source  |Body ※Content Modifierで設定したBodyをそのままテキストファイルにする  |

以上でフローの設定は完了です。保存、デプロイして動作を確認します。

##動作確認
Monitor Message Processingのタイルを見ると、正常終了したことがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/28104ad4-ff86-3da7-4685-11bdbb757d42.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/aa4df9c6-4721-9ec1-99c3-aec8cfdf181f.png)
Gmailのメールボックスにメールが届きました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/f76ce165-d3de-f3ac-9593-ecddce751d0d.png)
添付ファイルもついています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/d37a3677-60fa-7776-fc5d-e3879cb8ea61.png)