メインコンテンツまでスキップ

Kurocoからのメール送信に任意のメール配信サービスを使用する(blastengine)

概要

トリガ「デフォルトのメール送信方法(SendGrid)を代替」を利用すると、SendGridの代わりに、blastengine、Mailchimp、Amazon SESなどの任意のメール配信サービスを利用して、通知や招待のメールを送信できます。

本チュートリアルではその例として、SendGridによるメール送信をblastengineに代替する手順を紹介します。

学べること

以下の手順で任意のメール配信サービスを使用したメール送信を実装します。

前提条件

備考

本チュートリアルではメールの送信にblastengine(ブラストエンジン)を使用します。
サービスの詳細はblastengineとそのAPIドキュメントを確認してください。

また、SPF/DKIMの設定をするのでfromのメールに使用するドメインは自身が所有しているものを利用することとします。

注意

SendGridを利用しない場合、配信のトラッキング機能(配信、メールバウンス、開封率、クリック数)はご利用できませんのでご注意ください。

blastengineの設定

まずはblastengineにアクセスして、無料トライアルに登録します。

Image from Gyazo

トライアルアカウントにログインしたら[API連携で試す]タブの[アドレス登録]をクリックして、blastengineからの配信を許可するアドレスを入力します。

Image from Gyazo

続いて、APIキーの取得をします。
[設定ページ]をクリックしてblastengineの設定ページに遷移します。

Image from Gyazo

APIキーの[確認・再発行]をクリックします。

Image from Gyazo

APIキーが表示されるのでメモします。

Image from Gyazo

また、アカウント管理のページにアクセスし、IDをメモします。

Image from Gyazo

Kurocoの設定

シークレットを登録する

Kurocoの管理画面にアクセスし、[環境設定] -> [シークレット]をクリックします。

Image from Gyazo

[追加]をクリックします。

Image from Gyazo

以下のblastengineの管理画面で確認したAPIキーと、IDを登録します。

項目
名前BLASTENGINE_API_KEY
blastengineのAPIキー
項目
名前BLASTENGINE_ID
blastengineのID

Image from Gyazo

以上でblastengineを利用する準備が整いました。

カスタム処理を登録する

blastengineを利用する準備ができたら、SendGridによるメール送信をblastengineに代替するカスタム処理を書きます。

[オペレーション] -> [カスタム処理]をクリックします。

Image from Gyazo

[追加]をクリックします。

Image from Gyazo

以下のように設定します。

項目
タイトルsending_email_with_blastengine
識別子sending_email_with_blastengine
トリガデフォルトのメール送信方法(SendGrid)を代替
処理以下の内容
sending_email_with_blastengine
{* Create BearerToken *}
{secret var='apiKey' key='BLASTENGINE_API_KEY'}
{secret var='id' key='BLASTENGINE_ID'}
{rcms_hash var='token' data="`$id``$apiKey`" algo="sha256"}
{assign var='BearerToken' value=$token|strtolower|base64_encode}

{* Set Request Headers *}
{append var=headers value="Authorization: Bearer `$BearerToken`"}
{append var=headers value="Content-Type: application/json"}
{append var=headers value="Accept-Language: ja-JP"}

{* Set Body *}
{assign var='body' value=$payload|@json_decode}
{assign var='body.from.email' value="noreply@kuroco-mail.app"}

{* Send Request *}
{api
endpoint="https://app.engn.jp/api/v1/deliveries/transaction"
method='POST'
headers=$headers
body=$body
var=response
status_var=status
}

{logger msg1="blastengine_mail_log" msg2=$body msg3=$response}
{assign var='is_mail_sent' value=true}
注意

noreply@kuroco-mail.appの部分は自身のメールアドレスに変更してください。

Image from Gyazo

入力ができたら[追加する]をクリックしてカスタム処理を追加します。

動作の確認

実際にKurocoからのメールを送信してみます。
動作の確認のため、パスワードリマインダーを使用してみます。

Kurocoのログイン画面にアクセスし、[パスワードを忘れた場合はこちら]をクリックします。

Image from Gyazo

blastengineからの配信を許可したメールアドレスを入力して、[送信する]をクリックします。

Image from Gyazo

届いたメールを確認すると、fromがカスタム処理内のメールアドレスになっており、besender-s.jp 経由の表示が確認できます。

Image from Gyazo

また、blastengineの配信ログを確認すると、該当のメールがblastengineから送られたことが分かります。

Image from Gyazo

メールの到達率を上げる

ここまでで、blastengineを利用したメールの送信はできていますが、 送信したメールが迷惑メールと判断されるのを防ぐために、SPFレコードとDKIMの設定をしてメール認証を実施します。

メール認証を実施することで、メールのなりすましを防ぎ、実際にメールを送信したのがドメイン所有者であると判断できます。

SPF/DKIMの設定がされていないメールに対する処理が年々厳しくなっていますので必ず実施するようにしてください。

SPFレコードを設定する

ドメイン管理サービスで以下のTXTレコードを設定します。

ホスト名TYPEVALUE
空欄TXTv=spf1 include:spf.besender.jp ~all

設定ができたらMxToolboxのSPF Record Checkで、正しく設定されているか確認します。

Image from Gyazo

DKIMを設定する

次にDKIMの設定をします。
まず、公開鍵・秘密鍵のペアを準備し、blastengineに秘密鍵を設定します。

秘密鍵・公開鍵の生成

秘密鍵はローカル環境でOpenSSLのコマンドラインツールを使用して、生成します。
まず、ターミナル開いて以下のコマンドでOpenSSLが利用可能か確認します。

openssl version
備考

Windowsの場合などでOpenSSLがインストールされていない場合は別途インストールしてください。

次に以下のコマンドで秘密鍵を作成します。

openssl genpkey -algorithm RSA -out private_key.pem

公開鍵は、OpenSSLを使用して、秘密鍵から抽出します。
以下がそのコマンドです。

openssl rsa -pubout -in private_key.pem -out public_key.pem

blastengineに登録

作成した秘密鍵をblastengineに登録します。

blastengineの設定ページにアクセスしてDKIM作成者署名の設定の[確認・変更]をクリックします。

Image from Gyazo

DKIM作成者署名の設定が表示されるので、新規登録をクリックし、以下を設定します。

項目
セレクタkuroco
ドメインfromメールで利用するドメイン
秘密鍵先ほど作成した-----BEGIN PRIVATE KEY-----から始まる秘密鍵

Image from Gyazo

入力が完了したら[確認]をクリックして登録します。

DNSを設定

ドメイン管理サービスで以下のTXTレコードを設定します。

ホスト名TYPEVALUE
kuroco._domainkeyTXTv=DKIM1; k=rsa; p=公開鍵の-----BEGIN PUBLIC KEY-----と-----END PUBLIC KEY-----を抜いた部分
注意

VALUEの長さが設定できる文字数を超える場合はTXTレコードを分割して登録する必要があります。
対応が必要な場合はドメイン管理サービスに問い合わせて設定してください。

設定ができたらMxToolboxのDKIM Record Lookupで、正しく設定されているか確認します。

Image from Gyazo

再度Kurocoからのメールを送信して確認すると、fromがカスタム処理内のメールアドレスになっており、今度はbesender-s.jp 経由の表示が無いことを確認できます。

Image from Gyazo

以上で、任意のメール配信サービスを利用する設定は完了です。

関連ドキュメント


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。