SMTPでメール送信する

SendGridではUIおよびAPI経由でもメール送信ができます。

SMTPとは?

SMTPsimple mail transfer protocol)はあるサーバから他のサーバにメールを送信するための簡単な方法です。SendGridはユーザのメールクライアントもしくはサーバの代わりにメールを配信するSMTPサービスを提供します。

SendGridのSMTP APIは、メッセージに挿入するX-SMTPAPIヘッダを通じて、送信するメールを開発者がカスタマイズできるようにする機能です。

X-SMTPAPIヘッダはSendGridにそのメールの扱いを指示するためのものなので、最終的に送信されるメッセージからは削除されます。

SMTPの詳細と、SMTPでメールを送信することの利点、そしてSendGridがどうやってメール送信を便利にするのかについてはブログ記事 3分でわかる!SMTPサービス講座 を参照してください。

Telnetでテストメールを送信する

はじめに

  • SendGridダッシュボードのAPI KeysページでAPIキーを作成します。
  • コマンドライン、bash、シェル、ターミナル機能(ご利用なっているOSに依存します)を開きます。このウィンドウでTelnet接続を行うためにコマンド入力を行います。
  • APIキーをBase64でエンコードします。エンコードのためにAPIキーを外部のWebページに入力するのは安全ではありません。bashを利用して変換することをお勧めします。MacもしくはLinuxをご利用の場合、あらかじめインストールされているOpenSSLパッケージが利用できます。OpenSSLを使用してAPIキーを変換するには、次のコマンドを入力してください: echo -n '<<YOUR_API_KEY>>' | openssl base64。後で使用するため、変換したAPIキーを保存しておきます。

Telnetはバックスペースを正しく扱えません。このため、コマンドは正確に入力するか、コピー&ペーストして入力してください。

TelnetでSMTPメールを送信する:

  1. ターミナルでセッションを開始するために次のコマンドを入力します: TELNET smtp.sendgrid.net 25
    SendGridは平文およびTLS接続をポート番号 25, 587, 2525 で受け付けます。SSL接続は 465 で利用できます。多くのホスティングプロバイダやISPは25番ポートをブロックしています。この場合、SMTPリレーで利用可能なポート番号についてはホスティングプロバイダもしくはISPに確認してください。送信制限を回避するために、ポート587番の利用を推奨します。
  2. SendGridのサーバに接続できたら、AUTH LOGIN と入力してサーバにログインしてください。
    メールサーバは 334 VXNlcm5hbWU6 というレスポンスを返します。これはユーザ名の入力を促す文字列をBase64エンコードしたものです。次のようなエラーが返った場合、PCにTelnetをインストールする必要があります: 'telnet' is not recognized as an internal or external command, operable program or batch file。Telnet は多くのOSで初めからインストールされています。
  3. ユーザ名をBase64エンコードした文字列を入力します。すべてのユーザ名は apikey となるため、Base64エンコードした文字列は YXBpa2V5 です。
    メールサーバは 334 UGFzc3dvcmQ6 というレスポンスを返します。これはパスワード(この場合、APIキー)の入力を促す文字列をBase64エンコードしたものです。
  4. 次に、パスワードとしてBase64エンコードしたAPIキーを入力します。
    メールサーバは 235 Authentication successful というレスポンスを返します。ここまでで、指定したポートでsmtp.sendgrid.netとの接続が可能で、APIキーが正しいことが確認できます。
  5. 次に、送信元メールアドレスを入力します: mail from:<<SENDER_EMAIL>
    メールサーバは 250 Sender address accepted というレスポンスを返します。
  6. 宛先メールアドレスを入力します: rcpt to:<<RECIEPIENT_ADDRESS>>
    メールサーバは 250 Recipient address accepted というレスポンスを返します。
  7. 次の行で DATA と入力します。これはメールのコンテンツを入力することを意味します。
  8. 任意で、宛先名と宛先アドレスを指定するためにToヘッダを入力します: To: <<NAME>> <<EMAIL>>
  9. 次に、Fromヘッダで送信者名と送信元アドレスを指定します。送信元アドレスが指定されていない場合、SendGridはこの送信を破棄します。これは RFC 5322 のガイドラインに違反しているためです: From: NAME <<EMAIL>
  10. 件名を入力します: Subject: <<EMAIL_SUBJECT>>
  11. メッセージ本文を入力します: <<MESSAGE>>。例: “This is a test for the SMTP relay."
  12. 最後に、ピリオドを入力してEnterキーを押下します: .[Enter]
    メールサーバは 250 Ok: queued as … というレスポンスを返します。これは、このメールが送信キューに登録されたことを意味します。このキューはすぐに処理されます。
  13. 次のコマンドを入力してTelnet接続を切断します: quit

テストメールの送信方法についてはSMTP APIの使用方法を参照してください。

追加のリソース