Mailjet でのメールの送信

Mailjet は、毎月 25,000 件のメールを App Engine ユーザーに無料枠で提供するサードパーティのグローバル メールサービスです。また、Mailjet は以下も提供しています。

  • 取引メールやマーケティング メールを送信するための API、ユーザー インターフェース、SMTP リレー
  • 欧州のデータ プライバシー コンプライアンス
  • カスタマイズ可能な優先度の設定や自動スロットル管理など、メールと到達性に関する機能
  • サブアカウント、認証、連絡先、キャンペーン、カスタム ペイロード、統計、リアルタイムのイベント、Event API を介した解析を管理するための Go、PHP、Nodejs、Java、Python、Ruby の API リソース ライブラリ
  • 応答性の高い HTML メール テンプレートを作成するための統合 MJML フレームワーク
  • 4 種類以上の言語による 24 時間 365 日のフォローザサン サポート
  • gmail.com 以外のドメインからメールを送信する機能

始める前に

Mailjet でメールを送信する前に:

  1. Mailjet アカウントを作成します。Google App Engine デベロッパーは、1 か月あたり 25,000 件の無料メールから始めることができます。
  2. Mailjet で、送信者のメールアドレスを追加して確認します。
  3. Mailjet SMTP 設定から API キーとシークレットをメモします。
  4. GCP Console で [リソースの管理] ページに移動します。

    [リソースの管理] ページに移動

  5. 既存のプロジェクトを選択するか、[プロジェクトを作成] をクリックして、新しい GCP プロジェクトを作成します。

設定

Mailjet API 用の Go ラッパーを使用して、アプリケーションからメールを送信します。

  1. Mailjet パッケージをアプリのフォルダに追加します。

    go get github.com/mailjet/mailjet-apiv3-go
    
  2. アプリケーション コードでライブラリをインポートします。

    import "github.com/mailjet/mailjet-apiv3-go"
    

メールの送信

アプリケーション コードでメッセージを送信するには:

  1. 新しい Mailjet クライアントを作成します。

  2. 送信者のメールアドレスと名前、件名、メッセージ本文、受信者など、メッセージの詳細と内容を指定します。

  3. サーバーのレスポンスを取得し、メッセージのステータスを確認します。

例:

func sendEmail(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)

	mailjetClient := mailjet.NewMailjetClient(
		mustGetenv("MJ_APIKEY_PUBLIC"),
		mustGetenv("MJ_APIKEY_PRIVATE"),
	)

	mailjetClient.SetClient(urlfetch.Client(ctx))

	to := r.FormValue("to")
	if to == "" {
		http.Error(w, "Missing 'to' parameter.", http.StatusBadRequest)
		return
	}

	messagesInfo := []mailjet.InfoMessagesV31{
		{
			From: &mailjet.RecipientV31{
				Email: fromEmail,
				Name:  "Mailjet Pilot",
			},
			To: &mailjet.RecipientsV31{
				mailjet.RecipientV31{
					Email: to,
					Name:  "passenger 1",
				},
			},
			Subject:  "Your email flight plan!",
			TextPart: "Dear passenger, welcome to Mailjet! May the delivery force be with you!",
			HTMLPart: "<h3>Dear passenger, welcome to Mailjet!</h3><br />May the delivery force be with you!",
		},
	}

	messages := mailjet.MessagesV31{Info: messagesInfo}
	resp, err := mailjetClient.SendMailV31(&messages)
	if err != nil {
		msg := fmt.Sprintf("Could not send mail: %v", err)
		http.Error(w, msg, 500)
		return
	}

	fmt.Fprintf(w, "%d email(s) sent!", len(resp.ResultsV31))
}

統計情報

Mailjet Send API 呼び出しのレスポンス ペイロードには MessageID が含まれています。MessageID を使用して、メッセージに関する情報と統計情報にアクセスできます。

/message に対する Mailjet API の GET オペレーションでは、送信者、受信者、メッセージ サイズなどのメッセージに関する基本情報が返されます。さらに、正常に送信されたかどうかなどのメッセージの現在の状態も返されます。サンプル API レスポンスを含むメッセージ統計情報の詳細については、Mailjet API ガイドをご覧ください。

Event API

Mailjet Event API は、メッセージの送信時刻や開封時刻など、送信されたメッセージに関連したイベントについてのリアルタイム通知を、HTTP リクエスト(Webhook)を使って行います。このイベント通知は、取引キャンペーンからマーケティング キャンペーンに至るまであらゆる種類のメッセージにおいて機能します。

Event API を使用すると、お客様に送信されたマーケティング メッセージのロギングや顧客管理(CRM)システムで登録解除された連絡先の更新などの特定のアクションを効率的に実行できます。イベントの発生時にほぼリアルタイムでデータが push されるので、1 日に何回か Mailjet API をポーリングする必要がなくなります。

イベントをグループ化することもできます。これは、送信量が多い場合に役立ちます。詳細な手順については、Mailjet のドキュメントをご覧ください。

受信メールの Parse API

さらに Mailjet では、メールを受信して解析し、Webhook に内容を配信できます。Mailjet ですべての情報を整理できるため、それを CRM やデータベースに保存できます。

Event API と同様に Parse API は、定義された Webhook にほぼリアルタイムで通知します。Webhook は、新しいメッセージが事前定義されたルートと一致すると、データをアプリケーションに返送します。送信者、受信者、件名、本文、ヘッダーなどの必要なすべての有益な情報を含んだ JSON パケット構造のメールがアプリケーションに送信されます。

各メールで送信される追加のフィールドなどの詳細と、DNS セットアップと使用の手順については、Mailjet の Parse API のドキュメントをご覧ください。

Google Compute Engine からのメールの送信

プロジェクトで Compute Engine を使用して、メールを送信する必要があるバックエンド タスクを実行する場合、Compute Engine から Mailjet を使用することもできます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine スタンダード環境