You are viewing the Japanese site, but your language preference is set to English. Switch to English site →

SMTPメールの送信方法

UIAPIを使用したメール送信も可能です。

SMTPとは?

Simple Mail Transfer Protocol(SMTP)は、あるサーバーから別のサーバーにメールを送信する手早く簡単な方法です。SendGridが提供するSMTPサービスでは、自社のクライアントまたはサーバーの代わりにSendGridのサーバー経由でメールを配信できます。つまり、SendGridの配信を利用することで、お客様のニーズに合わせた規模でメールを配信することができます。

SendGridのSMTP APIでは、X-SMTPAPIヘッダーと呼ばれるJSONエンコードされたリストを使用し、メールの処理に関するカスタムの指示を指定することもできます。X-SMTPAPIヘッダーは、指定した方法でメッセージを変更するために、SendGridにより解析されます。

SMTPの詳細、SMTPでメールを送信する利点、SendGridがどのように役立つかについては、TwilioブログSMTP Service Crash Courseを参照してください。

Telnetを使用したテスト用SMTPメール送信

このページでは、Telnetを使用して最初のテストメッセージを送信する方法を説明します。こちらを実施すると、X-SMTPAPIヘッダーを使用してメッセージの参照や作成を行う準備が整います。

前提条件

このチュートリアルを完了するために、以下の前提条件を必ず満たしてください。

  1. [SendGridアカウント]にサインアップします。(https://signup.sendgrid.com/)
  2. フルアクセス"Mail Send"権限を持つSendGrid APIキーを作成し、保存します。
  3. 送信者IDを確認します。
  4. ターミナルを開きます。ターミナルはコマンドプロンプトまたはコマンドラインと呼ばれることもあります。ターミナルを使用してAPIキーをエンコードし、Telnet接続を開始するコマンドを入力します。

次のコードサンプルでは、大なり小なりの記号に囲まれた部分がプレースホルダーの値となります(例: <YOUR_API_KEY>)。大なり記号、小なり記号、記号内のテキストは実際の値に置き換える必要があります。例えば、echo -n '<YOUR_API_KEY>' | openssl base64は、APIキーが「SG.someactualkey」の場合、echo -n 'SG.someactualkey' | openssl base64となります。

プレースホルダを囲む大なり記号と小なり記号が2セットあることがあります。この場合、実際の値では1セットの大なり記号と小なり記号が必要とされ、置き換えてはいけません。例えば、From: "Example" <<example@example.com>>From: "Example" <example@example.com>になります。

ターミナルを開き、APIキーを保存した後、APIキーをBase64エンコードする必要があります。なお、APIキーを外部Webページで変換するのは安全ではないので、ターミナルで変換することをお勧めします。MacまたはLinuxを使用している場合は、あらかじめインストールされているOpenSSLパッケージを使用し、次のコマンドを入力すると、文字列をBase64エンコードできます。

echo -n '<YOUR_API_KEY>' | openssl base64

エンコードされたキーは後で使用するために保存してください。改行文字や空白文字を意図せず含めていないことも確認してください。このようなミスは、出力を折り返すシェルから、エンコードされたキーをコピーする際に発生することがあります。エンコードされたキーは改行文字があると正常に認証できません。

Telnetはバックスペースを正しく登録しません。コマンドを正確に入力するか、このページからコマンドをコピーし貼り付ける必要があります。

お使いのPCにTelnetをインストールする必要がある場合があります。Telnetは一部のオペレーティングシステムにネイティブに搭載されています。最新のMacOSにはTelnetがインストールされていません。Windows 10では、手動でTelnetを有効にする必要があります。

MacOSにTelnetをインストールするには、Homebrewを使用します。

Windows 10でTelnetを有効にするには、Windowsの[コントロール パネル]から[Windows の機能]>[Windows の機能の有効化または無効化]の順に移動します。[Telnet クライアント]の横のチェックボックスをオンにし、[OK]を選択します。

  1. ターミナルで次のコマンドを入力し、Telnetセッションを開始します。
TELNET smtp.sendgrid.net 25

SendGridは、暗号化されていない接続やTLS接続をポート255872525で受け入れます。ポート465を使用してSSL経由で接続することもできます。多くのホスティングプロバイダーやISPは、慣例としてポート25をブロックしています。ポート25を使用したTelentセッションが頻繁にタイムアウトする場合や接続しない場合は、ご利用のISPまたはホスティングプロバイダーがこのポートをブロックしている可能性があります。ご利用のISPまたはホスティングプロバイダーに連絡して、送信SMTPリレー用にどのポートが開いているかを確認することができます。サーバーホストがメールの大量送信に対して制限を設けている場合があります。制限を回避するためにポート587を使用することをお勧めします。

  1. SendGridに正常に接続した後、次のコマンドを入力し、サーバーにログインします。
AUTH LOGIN

メールサーバーから334 VXNlcm5hbWU6という応答があります。これは、ユーザー名を求めるためのBase64エンコードされたリクエストです。

  1. YXBpa2V5と入力し、キーボードのEnterキーを押します。Twilio SendGridから、APIキーを使用して認証するよう要求されます。Basic認証とAPIキーを使用している場合は、アカウントのユーザー名の代わりに文字列apikeyを使用します。文字列apikeyは、Base64エンコードされている場合のYXBpa2V5です。それが、このステップでこの文字列を使用する理由です。

メールサーバーから334 UGFzc3dvcmQ6という応答があります。この応答は、パスワード(APIキー)を求めるためのBase64エンコードされたリクエストです。

  1. 次の行にBase64変換されたAPIキーをパスワードとして入力し、Enterキーを押します。

メールサーバーから235 Authentication successfulという応答があります。ここまでくると、選択したポートでのsmtp.sendgrid.netへの接続が開き、APIキーが有効であることが分かります。

  1. 次に、SMTP MAIL FROMコマンドを使用して送信元のメールアドレスを追加し、Enterキーを押します。
MAIL FROM: <SENDER_EMAIL>

メールサーバーから250 Sender address acceptedという応答があります。

  1. SMTP RCPT TOコマンドを使用して送信先のメールアドレスを追加し、Enterキーを押します。
RCPT TO: <RECIPIENT_ADDRESS>

このステップの間にRCPT TOのアドレスをさらに追加できます。このプロセスを繰り返すには、メッセージの配信先にする受信者ごとにRCPT TOコマンドをもう1つ追加し、Enterキーを押します。

受信者が追加されるたびに、サーバーから250 Recipient address acceptedという応答があります。

  1. 次の行にDATAと入力し、Enterキーを押します。

メールサーバーから354 Continueという応答があります。メールの宛先の一部であるMAIL FROMコマンドとRCPT TOコマンドとは異なり、DATAコマンドは、送信者から受信者にメールをルーティングするための情報を含むことは意図されていません。その代わりに、DATAコマンドではメッセージのコンテンツを変更できます。

  1. オプションで、mail-toヘッダーを追加し、受信者の名前とメールアドレスをメールヘッダーに追加した後、Enterキーを押します。名前は引用符で囲み、アドレスは大なり記号と小なり記号で囲みます。
To: "<RecipientName>" <<RecipientEmailAddress>>
  1. 次に、fromヘッダーを追加し、送信者の名前とメールアドレスをメールヘッダーに追加した後、Enterキーを押します。fromヘッダーが含まれていない場合、SendGridはメールをブロックします。これは、RFC 5322のコンプライアンス指針に違反しているためです。名前は引用符で囲み、アドレスは大なり記号と小なり記号で囲みます。
From: "<SenderName>" <<SenderEmail>>
  1. 件名を含め、Enterキーを押します。
Subject: <EMAIL_SUBJECT>
  1. Enterキーを再度押し、復帰改行を追加します。 メッセージの本文のコンテンツを追加し、Enterキーを押します。
"<MESSAGE>"

例えば、次のように入力します。

“This is a test for the SMTP relay."
  1. 最後に、ピリオド.を入力してメールを送信し、Enterキーを押します。

メールサーバーから250 Ok: queued as <examplestring1234>が返されます。これは、このメールが送信のキューに追加されていることを意味します。キューは瞬時に移動します。指定された受信者にメールがすぐに配信されることが分かるはずです。

  1. quitと入力してEnterキーを押し、Telnet接続を終了します。

これまでのすべてのコマンドは、以下のようになります。

235 Authentication successful
MAIL FROM:tiramisu@example.com
250 Sender address accepted
RCPT TO:person1@sendgrid.com
250 Recipient address accepted
DATA
354 Continue
From: "Tira Misu" <tiramisu@example.com>
To: "Person 1" <person1@sendgrid.com>
Subject: Test message subject
"This is the test message body."
.
250 Ok: queued as Yo60h6C5ScGPeP5fUWU3K

テストメールを送信できました。次は、サーバーとSMTPサービスとの連携を学習します。

メッセージサイズの制限: メッセージサイズの合計は、20MB以内としてください。メッセージ自体、ヘッダー、添付ファイルの合計をあわせたサイズです。

このページを評価:

サポートが必要ですか?

誰にでもそういうことはあります。今すぐTwilio SendGridサポートチームにヘルプしてもらいましょう。

コーディングで行き詰っていませんか?Stack OverflowのSendGridタグの質問一覧を参照するか、Stack OverflowのTwilio Collectiveにアクセスして、皆さんの知恵を借りましょう。

フィードバックいただき、ありがとうございました。

フィードバックいただいた理由を選択してください。その他、ご意見をいただければ、今後のドキュメントの改善に役立てさせていただきます。

フィードバックを送信中...
🎉 フィードバックいただき、ありがとうございました。
何らかの問題が発生しました。もう一度試してください。

フィードバックいただき、ありがとうございました。

thanks-feedback-gif