SendGrid でのメールの送信

SendGrid は、組織のメールを Google App Engine で運用するときに利用できます。SendGrid を使用すると、到達性が向上し、アプリによって送信されたメールが実際にどうなったかについて透明性を提供します。SendGrid インターフェースまたは API を介して、オープン、クリック、登録解除、スパムレポートなどに関する統計情報を確認できます。

料金

Google App Engine をご利用のお客様は、毎月 12,000 通のメールを無料で送信できます。無料メールを利用するには、下記の手順で登録してください。容量増加プランも用意されています。

始める前に

次のことを行う必要があります。

  1. GCP Console で GCP プロジェクトを作成または選択します。プロジェクトに App Engine アプリケーションが含まれていることを確認します。

    App Engine に移動

    プロジェクトに App Engine アプリケーションが存在する場合には、ダッシュボードが開きます。存在しない場合には、App Engine アプリケーションを配置するリージョンを選択するように指示されます。

  2. Google Cloud Platform デベロッパーとして、GCP Console から SendGrid に登録すると、月に 12,000 件の無料メールを利用できます。

  3. gcloud ツールでアプリをデプロイする場合は、Google Cloud SDK をダウンロードしてインストールし、初期化する必要があります。

    SDK をダウンロード

    gcloud ツールがすでにインストールされている環境で、初期化時に指定した ID とは異なる GCP プロジェクト ID を使用する場合は、Cloud SDK 構成の管理をご覧ください。

メール送信

SendGrid の Go ライブラリを使用して App Engine アプリからメールを送信するのは簡単です。

最後に次のコマンドを実行したら、コードを書き始めてかまいません。

go get gopkg.in/sendgrid/sendgrid-go.v2

このパッケージをアプリにインポートすると、簡単なコマンドで SendGrid インスタンスを作成し、メールを送信できるようになります。

次のコードでは、urlfetch HTTP クライアントで SendGrid を使用してメールを送信しています。

import (
	"net/http"

	"gopkg.in/sendgrid/sendgrid-go.v2"

	"google.golang.org/appengine"
	"google.golang.org/appengine/urlfetch"
)

func handler(w http.ResponseWriter, r *http.Request) {
	sg := sendgrid.NewSendGridClient("sendgrid_user", "sendgrid_key")
	ctx := appengine.NewContext(r)

	// Set http.Client to use the App Engine urlfetch client
	sg.Client = urlfetch.Client(ctx)

	message := sendgrid.NewMail()
	message.AddTo("example@email.com")
	message.SetSubject("Email From SendGrid")
	message.SetHTML("Through AppEngine")
	message.SetFrom("sendgrid@appengine.com")
	sg.Send(message)
}

独自のアカウント詳細を追加します。メールアドレスや他のメッセージ内容を編集します。

アプリを App Engine にデプロイする準備が整ったら、app.yaml ファイルが存在するディレクトリから次のコマンドを実行します。

gcloud app deploy

App Engine にデプロイする方法については、アプリのデプロイをご覧ください。

動作中の完全なアプリから開始する場合は、サンプル Google App Engine アプリをご確認ください。 アプリのメールに関する詳細は、SendGrid ドキュメントをご覧ください。

リアルタイム情報の取得

メールの送信だけでなく、SendGrid を使用すると、メールの受信や送信済みメールの確認を簡単に行うことができます。2 つのリアルタイム webhook ソリューションにより、アプリケーションでのメール機能を強化できます。

Event API の使用

アプリからメールの送信を開始した後で、状況の確認が必要になる場合があります。この場合、SendGrid の統計情報が非常に役立ちます。Event API を使用すると、すべてのデータを収集し、確認することができます。たとえば、受信者がメールを開いたりクリックしたりすると、SendGrid は非常に小さい JSON をGoogle App Engine アプリに送信します。これにより、イベントに対応するだけでなく、今後のためにデータを保存しておくこともできます。

イベントデータにはさまざまな用途があります。一般的には、メールの統計情報を内部ダッシュボードに統合して使用します。また、この情報を利用して登録の解除を行ったり、スパムレポートに迅速に作成できます。また、Event API を使用して過去数か月以内にクリックまたは開いたユーザーにだけメールを送信し、メールの効率性を向上させることもできます。

Event API ドキュメントには webhook の設定方法が記載されています。また、9 つのイベントタイプや、イベントのコールバックに含まれるフィールドについても解説しています。

Inbound Parse API の使用

メールの受信にも SendGrid を使用できます。Inbound Parse API は、パワフルでインタラクティブなアプリケーションに使用できます。たとえば、顧客がメールで送信したサポート チケットを自動管理したり、従業員が巡回先からディスパッチしたショートメールからデータを収集します。NudgeMail のリマインダー アプリケーションは Parse API に基づいて作成されています。

Event API と同様に、Parse API は新しいものが利用できる場合にデータをアプリケーションに送信する webhook です。この場合、受信メールに関連付けられたドメインに新しいメールが到着すると webhook が呼び出されます。メールに対する DNS の処理は複雑です。このため、Parse API に使用するドメインまたはサブドメインにすべての受信メールを割り当てる必要があります。

異なるフィールドとして送信者、受信者、件名、本文を含む JSON として構成されたアプリケーションにメールが送信されます。SendGrid では、メッセージのサイズが 20 MB までに制限されています。この制限内であれば、添付ファイルを受信できます。

Parse API ドキュメントには、メールと一緒に送信される追加フィールドだけでなく、DNS の設定や使用方法なども記載されています。

* Google は、有償アカウントに登録するお客様について、正当な対価を受け取ります。

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

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

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