Mailjet は、毎月 6,000 件のメール無料枠を Compute Engine ユーザーに提供する、サードパーティのグローバル メールサービスです。また、Mailjet は以下も提供しています。
- 取引メールやマーケティング メールを送信するための API、ユーザー インターフェース、SMTP リレー
- 欧州のデータ プライバシー コンプライアンス
- カスタマイズ可能な優先度の設定や自動スロットル管理など、メールと到達性に関する機能
- サブアカウント、認証、連絡先、キャンペーン、カスタム ペイロード、統計、リアルタイムのイベント、Event API を介した解析を管理するための Go、PHP、Nodejs、Java、Python、Ruby の API リソース ライブラリ
- レスポンシブ HTML メールのテンプレートを作成するための統合 MJML フレームワーク
- 4 種類以上の言語による 24 時間 365 日のフォローザサン サポート
gmail.com
以外のドメインからメールを送信する機能
このドキュメントでは、以下の方法で Mailjet を介してメールを送信するように VM インスタンスを構成する方法について説明します。
- 次のものを使用して SMTP リレーを使用する:
- Postfix
- Node.js の Nodemailer
- Java を使用して Mailjet API を直接使用する
最も一般的な SMTP サーバー、ライブラリ、フレームワークとの統合の例を含む、その他のメール ソリューションに関する各種のドキュメントについては、Mailjet のドキュメントをご覧ください。
始める前に
Mailjet の Google Partner ページ*で新しい Mailjet アカウントを作成します。登録時に、メール メッセージの送信元として使用するドメインとメールアドレスを指定します。
送信元のメールアドレスが検証済みであることを確認してください。
ポート 2525 で TCP トラフィックを許可するように、ファイアウォール ルールを設定します。
* Google は、有料のアカウントに登録するお客様について、正当な対価を受け取ります。
SMTP リレーとして Mailjet を構成する
Mailjet をメールリレーとして構成すると、メール メッセージを Mailjet に転送してリモート配信できます。
Postfix の使用
instance-name
をメール メッセージ送信元インスタンスの名前に置き換え、SSH を使用して VM に接続します。gcloud compute ssh instance-name
VM に Postfix Mail Transport Agent をインストールします。プロンプトが表示されたら、ドメイン名のデフォルトの選択を受け入れ、
Local Only
構成を選択します。Debian
sudo apt update && sudo apt -y install postfix libsasl2-modules
CentOS
sudo yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
Postfix の構成オプションを変更します。Postfix の構成オプションは
main.cf
ファイルで設定されています。任意のテキスト エディタでこのファイルを開きます。sudo vi /etc/postfix/main.cf
ファイルを更新します。
次の行をコメントアウトします。
# default_transport = error # relay_transport = error
次の行をファイルの末尾に追加します。
relayhost = in-v3.mailjet.com:2525 smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
これらの行により、SSL / TLS サポートが適用され、これらのリクエストに SMTP 認証が構成されます。Simple Access and Security Layer(SASL)モジュールによって、Postfix の構成で認証が処理されます。
変更を保存し、ファイルを閉じます。
任意のテキスト エディタで SASL パスワード マップを作成します。
sudo vi /etc/postfix/sasl_passwd
sasl_passwd
ファイルに次の行を追加して Mailjet の認証情報を指定します。in-v3.mailjet.com:2525 YOUR_API_KEY:YOUR_SECRET_KEY
postmap
ユーティリティを使用して.db
ファイルを生成します。sudo postmap /etc/postfix/sasl_passwd sudo ls -l /etc/postfix/sasl_passwd*
次のようなレスポンスが返されます。
-rw------- 1 root root 68 Jun 1 10:50 /etc/postfix/sasl_passwd -rw------- 1 root root 12288 Jun 1 10:51 /etc/postfix/sasl_passwd.db
認証情報を含むファイルは不要となったため、このファイルを削除します。
sudo rm /etc/postfix/sasl_passwd
.db
ファイルに対する権限を設定します。sudo chmod 600 /etc/postfix/sasl_passwd.db sudo ls -la /etc/postfix/sasl_passwd.db
最後に、構成を再読み込みして、変更したパラメータを読み込みます。
Debian
sudo /etc/init.d/postfix restart
CentOS
sudo postfix reload
構成をテストします。
mailx
またはmailutils
パッケージをインストールし、構成をテストします。Debian
sudo apt -y install mailutils
CentOS
sudo yum install mailx -y
テスト メッセージを送信します。
echo 'Test passed.' | mail -s 'Test-Email' -aFrom:from-email destination-email
以下を置き換えます。
from-email
: 検証済みのメールアドレス。destination-email
: メール メッセージ送信先アドレス。
システムログを調べて、
status
を含むステータス行と正常なサーバー レスポンス コード(250)
を確認します。Debian
sudo tail -n 5 /var/log/syslog
CentOS
sudo tail -n 5 /var/log/maillog
Mailjet での Postfix の設定に関する問題が発生した場合は、Mailjet の Postfix セットアップ手順をご覧ください。
Nodemailer の使用
以下の手順では、Debian Wheezy 上で Mailjet と Node.js を使用する方法について説明します。
-
SSH を使用してインスタンスに接続します。
gcloud compute ssh instance-name
-
パッケージ リポジトリを更新します。
user@test-wheezy:~# sudo apt update
-
Node.js の依存関係をインストールします。
user@test-wheezy:~# sudo apt -y install git-core curl build-essential openssl libssl-dev
- GitHub から Node.js リポジトリのクローンを作成します。
user@test-wheezy:~# git clone https://github.com/nodejs/node
- Node.js ソースツリーのディレクトリに移動します。
user@test-wheezy:~# cd node
- この OS と仮想マシンのノード ソフトウェアを構成します。
user@test-wheezy:~# ./configure
- Node.js、npm、関連オブジェクトをビルドします。
user@test-wheezy:~# sudo make
処理が完了するまで数分かかることがあります。
- Node.js、npm、その他のソフトウェアをデフォルトの場所にインストールします。
user@test-wheezy:~# sudo make install
-
メーラー パッケージをインストールします。
user@test-wheezy:~# npm install nodemailer nodemailer-smtp-transport
-
node
ディレクトリ内に、次の JavaScript を含む、sendmail.js
という名前の新しいファイルを作成します。 -
プログラムを実行して、Mailjet を介してメール メッセージを送信します。
user@test-wheezy:~# node sendmail.js
- SSH を使用してインスタンスに接続します。
gcloud compute ssh instance-name
-
パッケージ リポジトリを更新します。
user@test-centos:~# sudo yum update -y
-
Node.js の依存関係をインストールします。
user@test-centos:~# sudo yum install git-core curl openssl openssl-dev -y ... user@test-centos:~# sudo yum groupinstall "Development Tools" -y ...
-
GitHub から Node.js リポジトリのクローンを作成します。
user@test-centos:~# git clone https://github.com/nodejs/node
-
Node.js ソースツリーのディレクトリに移動します。
user@test-centos:~# cd node
- この OS と仮想マシンのノード ソフトウェアを構成します。
user@test-centos:~# ./configure
- Node.js、npm、関連オブジェクトをビルドします。
user@test-centos:~# sudo make
処理が完了するまで数分かかることがあります。
- Node.js、npm、その他のソフトウェアをデフォルトの場所にインストールします。
user@test-centos:~# sudo make install
-
メーラー パッケージをインストールします。
user@test-centos:~# npm install npm install nodemailer nodemailer-smtp-transport
-
node
ディレクトリ内に、次の JavaScript を含む、sendmail.js
という名前の新しいファイルを作成します。 -
プログラムを実行して、Mailjet を介してメール メッセージを送信します。
user@test-centos:~# node sendmail.js
Java で Mailjet API を介してメールを送信する
Mailjet API の使用例については、Mailjet 公式ドキュメントをご覧ください。
-
SSH を使用してインスタンスに接続します。
gcloud compute ssh instance-name
-
パッケージ リポジトリを更新し、必要なパッケージをインストールします。
user@test-instance:~# sudo apt update && sudo apt install git-core openjdk-8-jdk maven
-
GitHub から Java リポジトリのクローンを作成します。
user@test-instance:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
-
次の場所にあるこの例のメイン ソースコードに移動します。
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
Mailjet の設定を構成します。次の変数を置き換える方法については、Mailjet の認証のドキュメントをご覧ください。
your-mailjet-api-key
: Mailjet アカウントの API キー。your-mailjet-secret-key
: Mailjet アカウントに対応するシークレット キー。
mailjet
ディレクトリから、Maven を使用して、クラスを JAR ファイルとしてパッケージ化します。user@test-instance:~# mvn clean package
- OpenJDK 8 を使用していることを確認します。
user@test-instance:~# sudo update-alternatives --config java
- ターゲット ディレクトリからメールを送信するには、受信者と送信者のメールアドレスを引数として指定して JAR ファイルを実行します。
user@test-instance:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
- SSH を使用してインスタンスに接続します。
gcloud compute ssh instance-name
-
パッケージ リポジトリを更新し、必要なパッケージをインストールします。
user@test-centos:~# sudo yum update && sudo yum install git-core openjdk-8-jdk maven
-
GitHub から Java リポジトリのクローンを作成します。
user@test-centos:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
-
次の場所にあるこの例のメイン ソースコードに移動します。
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
Mailjet の設定を構成します。次の変数を置き換える方法については、Mailjet の認証のドキュメントをご覧ください。
your-mailjet-api-key
: Mailjet アカウントの API キー。your-mailjet-secret-key
: Mailjet アカウントに対応するシークレット キー。
mailjet
ディレクトリから、Maven を使用して、クラスを JAR ファイルとしてパッケージ化します。user@test-centos:~# mvn clean package
- OpenJDK 8 を使用していることを確認します。
user@test-centos:~# sudo alternatives --config java
-
ターゲット ディレクトリからメールを送信するには、受信者と送信者のメールアドレスを引数として指定して JAR ファイルを実行します。
user@test-centos:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
Mailjet SMTP 設定
クライアントの構成に使用する Mailjet 固有の SMTP 設定を簡単に確認できるように、以下に示します。
- ホスト: in-v3.mailjet.com
- ポート: 2525
次のステップ
Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。