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 構成の管理をご覧ください。

メールの送信

事前準備が完了したら、Python 開発環境を設定します。

アプリケーション ルート ディレクトリの lib ディレクトリに SendGrid Python ライブラリを追加する必要があります。

これらのライブラリを追加すると、SendGrid インスタンスを作成して、簡単なコマンドでメールを送信できます。

アプリの .py ファイルの先頭でライブラリをインポートします。

import sendgrid
from sendgrid.helpers import mail

SendGrid で API キーを作成し、ドメインと API キーを設定します。SendGrid で設定済みのドメインを使用することも、テストドメインを使用することもできます。

SENDGRID_API_KEY = 'your-sendgrid-api-key'
SENDGRID_SENDER = 'your-sendgrid-sender'

これで、アプリ内から次の数行を使ってメールを送信できます。


sg = sendgrid.SendGridAPIClient(apikey=SENDGRID_API_KEY)

to_email = mail.Email(recipient)
from_email = mail.Email(SENDGRID_SENDER)
subject = 'This is a test email'
content = mail.Content('text/plain', 'Example message.')
message = mail.Mail(from_email, subject, to_email, content)

response = sg.client.mail.send.post(request_body=message.get())

return response

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

アプリを 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 は、有償アカウントに登録するお客様について、正当な対価を受け取ります。

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

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

Python 2 の App Engine スタンダード環境