SendGrid を使用して Node.js から電子メールを送信する方法How to Send Email Using SendGrid from Node.js

このガイドでは、Azure の SendGrid 電子メール サービスを使用して一般的なプログラム タスクを実行する方法を紹介します。This guide demonstrates how to perform common programming tasks with the SendGrid email service on Azure. サンプルは Node.js API を使用して記述されています。The samples are written using the Node.js API. 紹介するシナリオは、電子メールの作成電子メールの送信添付ファイルの追加フィルターの使用、およびプロパティの更新です。The scenarios covered include constructing email, sending email, adding attachments, using filters, and updating properties. SendGrid と電子メールの送信の詳細については、「 次のステップ 」を参照してください。For more information on SendGrid and sending email, see the Next Steps section.

SendGrid 電子メール サービスとはWhat is the SendGrid Email Service?

SendGrid は、信頼性の高いトランザクション メール配信、拡張性、およびリアルタイム分析の機能を備えたクラウドベースの電子メール サービスであり、柔軟な API を備えているためカスタム統合も容易です。SendGrid is a cloud-based email service that provides reliable transactional email delivery, scalability, and real-time analytics along with flexible APIs that make custom integration easy. SendGrid の一般的な使用シナリオを次に示します。Common SendGrid usage scenarios include:

  • 顧客に受信通知を自動送信するAutomatically sending receipts to customers
  • 顧客に広告メールを月 1 回送信するための配布リストを管理するAdministering distribution lists for sending customers monthly e-fliers and special offers
  • ブロックされた電子メールや顧客の応答性などを表す測定値をリアルタイムで収集するCollecting real-time metrics for things like blocked e-mail, and customer responsiveness
  • 傾向を認識するために役立つレポートを生成するGenerating reports to help identify trends
  • 顧客の問い合わせを転送するForwarding customer inquiries
  • アプリケーションからの電子メール通知Email notifications from your application

詳細については、https://sendgrid.com を参照してください。For more information, see https://sendgrid.com.

SendGrid アカウントの作成Create a SendGrid Account

Azure ユーザーは 1 か月あたり 25,000 通の電子メールを無料で利用できます。Azure customers can unlock 25,000 free emails each month. 毎月 25,000 通の無料電子メールにより、高度なレポートおよび分析と すべての API (Web、SMTP、イベント、解析など) を利用できるようになります。These 25,000 free monthly emails will give you access to advanced reporting and analytics and all APIs (Web, SMTP, Event, Parse and more). SendGrid の提供するその他のサービスについては、SendGrid のソリューションに関するページにアクセスしてください。For information about additional services provided by SendGrid, visit the SendGrid Solutions page.

SendGrid アカウントにサインアップするにはTo sign up for a SendGrid account

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. 左側のメニューで、 [リソースの作成] をクリックします。In the menu on the left, click Create a resource.

    command-bar-new

  3. [アドオン][SendGrid Email Delivery (SendGrid 電子メール配信)] の順にクリックします。Click Add-ons and then SendGrid Email Delivery.

    sendgrid-store

  4. サインアップ フォームに入力し、 [作成] を選択します。Complete the signup form and select Create.

    sendgrid-create

  5. Azure 設定で SendGrid サービスを特定する名前を入力します。Enter a Name to identify your SendGrid service in your Azure settings. 名前は 1 ~ 100 文字にする必要があります。また、名前に含めることができるのは英数字、ダッシュ、ピリオド、およびアンダースコアのみです。Names must be between 1 and 100 characters in length and contain only alphanumeric characters, dashes, dots, and underscores. この名前は、Azure ストアのサブスクライブ項目の一覧で一意になっている必要があります。The name must be unique in your list of subscribed Azure Store Items.

  6. パスワードを入力し、確認します。Enter and confirm your Password.

  7. サブスクリプションを選択します。Choose your Subscription.

  8. 新しいリソース グループを作成するか、既存のリソース グループを使用します。Create a new Resource group or use an existing one.

  9. [価格レベル] セクションで、サインアップする SendGrid プランを選択します。In the Pricing tier section select the SendGrid plan you want to sign up for.

    sendgrid-pricing

  10. 所有している場合は、プロモーション コードを入力します。Enter a Promotion Code if you have one.

  11. 連絡先情報を入力します。Enter your Contact Information.

  12. 法律条項を確認し、同意します。Review and accept the Legal terms.

  13. 購入を確認すると、 [デプロイメントに成功しました] ポップアップが表示され、 [すべてのリソース] セクションにアカウントが表示されます。After confirming your purchase you will see a Deployment Succeeded pop-up and you will see your account listed in the All resources section.

    all-resources

    購入を完了して [管理] をクリックし、電子メール検証プロセスが始まると、SendGrid からアカウントの確認を求める電子メールが届きます。After you have completed your purchase and clicked the Manage button to initiate the email verification process, you will receive an email from SendGrid asking you to verify your account. この電子メールを受信していない場合やアカウントの検証に問題がある場合は、この FAQ を参照してください。If you do not receive this email, or have problems verifying your account, please see this FAQ.

    manage

    アカウントが確認されるまでは、1 日に送信できる電子メールの数は最大 100 件です。You can only send up to 100 emails/day until you have verified your account.

    サブスクリプション プランを変更するか、SendGrid 連絡先設定を表示するには、SendGrid サービスの名前をクリックし、SendGrid Marketplace ダッシュボードを開きます。To modify your subscription plan or see the SendGrid contact settings, click the name of your SendGrid service to open the SendGrid Marketplace dashboard.

    settings

    SendGrid を使用して電子メールを送信するには、API キーを指定する必要があります。To send an email using SendGrid, you must supply your API Key.

SendGrid API キーを確認するにはTo find your SendGrid API Key

  1. Manageをクリックします。Click Manage.

    manage

  2. SendGrid のダッシュボードの左側のメニューで、 [設定][API キー] の順に選択します。In your SendGrid dashboard, select Settings and then API Keys in the menu on the left.

    api-keys

  3. [API キーの作成] をクリックします。Click the Create API Key.

    general-api-key

  4. 少なくとも、このキーの名前を指定して電子メールの送信のフル アクセスを提供し、 [保存] を選択します。At a minimum, provide the Name of this key and provide full access to Mail Send and select Save.

    access

  5. この時点で API が 1 回表示されます。Your API will be displayed at this point one time. 必ず安全に保管してください。Please be sure to store it safely.

SendGrid の資格情報を確認するにはTo find your SendGrid credentials

  1. キー アイコンをクリックして、自分のユーザー名を検索します。Click the key icon to find your Username.

    key

  2. パスワードは、セットアップ時に選択したものです。The password is the one you chose at setup. 変更するには、 [パスワードの変更] または [パスワードのリセット] を選択します。You can select Change password or Reset password to make any changes.

電子メール配信を管理するには、管理 ボタンをクリックします。To manage your email deliverability settings, click the Manage button. これで、SendGrid のダッシュボードにリダイレクトされます。This will redirect to your SendGrid dashboard.

manage

SendGrid 経由での電子メールの送信の詳細については、電子メール API の概要に関するページを参照してください。For more information on sending email through SendGrid, visit the Email API Overview.

SendGrid Node.js モジュールの参照Reference the SendGrid Node.js Module

Node.js 用の SendGrid モジュールは、次のコマンドを使用することによって、ノード パッケージ マネージャー (npm) でインストールできます。The SendGrid module for Node.js can be installed through the node package manager (npm) by using the following command:

npm install sendgrid

インストールした後、次のコードを使用して、アプリケーションでモジュールを要求できます。After installation, you can require the module in your application by using the following code:

var sendgrid = require('sendgrid')(sendgrid_username, sendgrid_password);

SendGrid モジュールは、SendGrid 機能および Email 機能をエクスポートします。The SendGrid module exports the SendGrid and Email functions. SendGrid は Web API による電子メールの送信を処理します。Email は電子メール メッセージをカプセル化します。SendGrid is responsible for sending email through Web API, while Email encapsulates an email message.

方法:電子メールを作成するHow to: Create an Email

SendGrid モジュールを使って電子メール メッセージを作成するには、最初に Email 機能で電子メール メッセージを作成し、次に SendGrid 機能でメッセージを送信します。Creating an email message using the SendGrid module involves first creating an email message using the Email function, and then sending it using the SendGrid function. 以下は、Email 機能を使用した新しいメッセージの作成の例です。The following is an example of creating a new message using the Email function:

var email = new sendgrid.Email({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.'
});

また、html プロパティを設定することによって、HTML メッセージをサポートするクライアント向けに H|TML メッセージを指定することもできます。You can also specify an HTML message for clients that support it by setting the html property. 例:For example:

html: This is a sample <b>HTML<b> email message.

text プロパティと html プロパティの両方を設定することで、HTML メッセージをサポートできないクライアントに対しては、テキスト コンテンツへの正常なフォールバックを提供できます。Setting both the text and html properties provides graceful fallback to text content for clients that cannot support HTML messages.

Email 機能でサポートされるすべてのプロパティについて詳しくは、「sendgrid-nodejs」をご覧ください。For more information on all properties supported by the Email function, see sendgrid-nodejs.

方法:電子メールを送信するHow to: Send an Email

Email 機能で電子メール メッセージを作成した後で、SendGrid の Web API を使用してメッセージを送信できます。After creating an email message using the Email function, you can send it using the Web API provided by SendGrid.

Web APIWeb API

sendgrid.send(email, function(err, json){
    if(err) { return console.error(err); }
    console.log(json);
});

注意

前の例では、電子メール オブジェクトとコールバック関数の受け渡しを示していますが、電子メールのプロパティを直接指定することによって、send 関数を直接呼び出すこともできます。While the above examples show passing in an email object and callback function, you can also directly invoke the send function by directly specifying email properties. 例:For example:

sendgrid.send({
to: 'john@contoso.com',
from: 'anna@contoso.com',
subject: 'test mail',
text: 'This is a sample email message.'
});

方法:添付ファイルを追加するHow to: Add an Attachment

添付ファイルをメッセージに追加するには、files プロパティでファイル名とパスを指定します。Attachments can be added to a message by specifying the file name(s) and path(s) in the files property. 次の例に、添付ファイルを送信する方法を示します。The following example demonstrates sending an attachment:

sendgrid.send({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.',
    files: [
        {
            filename:     '',           // required only if file.content is used.
            contentType:  '',           // optional
            cid:          '',           // optional, used to specify cid for inline content
            path:         '',           //
            url:          '',           // == One of these three options is required
            content:      ('' | Buffer) //
        }
    ],
});

注意

files プロパティを使用する場合、fs.readFile を使ってファイルにアクセスできることが必要です。When using the files property, the file must be accessible through fs.readFile. 添付するファイルが、BLOB コンテナーなどの Azure Storage でホストされている場合、files プロパティを使用して添付ファイルとして送信するには、最初にファイルをローカル ストレージまたは Azure ドライブにコピーする必要があります。If the file you wish to attach is hosted in Azure Storage, such as in a Blob container, you must first copy the file to local storage or to an Azure drive before it can be sent as an attachment using the files property.

方法:フィルターを使用してフッターと追跡を有効にするHow to: Use Filters to Enable Footers and Tracking

SendGrid では、フィルター を使用することでその他の電子メール機能も利用できます。SendGrid provides additional email functionality through the use of filters. その設定を電子メール メッセージに追加することで、クリック追跡、Google 分析、サブスクリプション追跡などの独自の機能を有効にすることができます。These are settings that can be added to an email message to enable specific functionality such as enabling click tracking, Google analytics, subscription tracking, and so on. すべてのフィルターの一覧については、フィルター設定に関するページを参照してください。For a full list of filters, see Filter Settings.

フィルターは、フィルターのプロパティを使用してメッセージに適用できます。Filters can be applied to a message by using the filters property. 各フィルターは、フィルター固有の設定を格納したハッシュで指定します。Each filter is specified by a hash containing filter-specific settings. 次の例に、フッター フィルターとクリック追跡フィルターの使用方法を示します。The following examples demonstrate the footer and click tracking filters:

var email = new sendgrid.Email({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.'
});

email.setFilters({
    'footer': {
        'settings': {
            'enable': 1,
            'text/plain': 'This is a text footer.'
        }
    }
});

sendgrid.send(email);

クリック追跡Click Tracking

var email = new sendgrid.Email({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.'
});

email.setFilters({
    'clicktrack': {
        'settings': {
            'enable': 1
        }
    }
});

sendgrid.send(email);

方法:電子メールのプロパティを更新するHow to: Update Email Properties

メールの一部のプロパティは、setProperty を使って上書きすることや、addProperty を使って追加することができます。Some email properties can be overwritten using setProperty or appended using addProperty. たとえば、次のようにして、新しい受信者を追加できます。For example, you can add additional recipients by using

email.addTo('jeff@contoso.com');

また、次のように、フィルターを設定することもできます。or set a filter by using

email.addFilter('footer', 'enable', 1);
email.addFilter('footer', 'text/html', '<strong>boo</strong>');

詳しくは、「sendgrid-nodejs」をご覧ください。For more information, see sendgrid-nodejs.

方法:その他の SendGrid サービスを使用するHow to: Use Additional SendGrid Services

SendGrid の Web ベース API を使用して、Azure アプリケーションからその他の SendGrid 機能を利用することができます。SendGrid offers web-based APIs that you can use to leverage additional SendGrid functionality from your Azure application. 詳細については、SendGrid API に関するドキュメントを参照してください。For full details, see the SendGrid API documentation.

次の手順Next Steps

これで、SendGrid 電子メール サービスの基本を学習できました。さらに詳細な情報が必要な場合は、次のリンク先を参照してください。Now that you've learned the basics of the SendGrid Email service, follow these links to learn more.