SMTPでメール送信する
SMTPとは?
SMTP(simple mail transfer protocol)はあるサーバから他のサーバにメールを送信するための簡単な方法です。SendGridはユーザのメールクライアントもしくはサーバの代わりにメールを配信するSMTPサービスを提供します。
SendGridのSMTP APIは、メッセージに挿入するX-SMTPAPIヘッダを通じて、送信するメールを開発者がカスタマイズできるようにする機能です。
X-SMTPAPIヘッダはSendGridにそのメールの扱いを指示するためのものなので、最終的に送信されるメッセージからは削除されます。
Telnetでテストメールを送信する
2024年4月以降、Domain AuthenticationもしくはSingle Sender Verificationの設定が必須になり、送信元に指定するドメインまたはメールアドレスで設定を完了させていない場合はメールを送信できません。詳しくはこちらをご覧ください。
はじめに
- SendGridダッシュボードのAPI KeysページでAPIキーを作成します。
- コマンドライン、bash、シェル、ターミナル機能(ご利用のOSに依存します)を開きます。このウィンドウでTelnet接続を行うためにコマンド入力を行います。
- APIキーをBase64でエンコードします。エンコードのためにAPIキーを外部のWebページに入力するのは安全ではありません。bashを利用して変換することをお勧めします。MacもしくはLinuxをご利用の場合、あらかじめインストールされているOpenSSLパッケージが利用できます。OpenSSLを使用してAPIキーを変換するには、次のコマンドを入力してください(
<<YOUR_API_KEY>>
の部分を作成したAPIキーに置き換えてください)。
echo -n '<<YOUR_API_KEY>>' | openssl base64
後で使用するため、変換したAPIキーを保存しておきます。この際、改行や空白が含まれないように注意してください。
Telnetはバックスペースを正しく扱えません。このため、コマンドは正確に入力するか、コピー&ペーストして入力してください。
TelnetでSMTPメールを送信する
「>」で始まる行は、コマンドの入力が必要です。ただし、「#」以降の文字列は補足説明用のコメントであるため入力不要です。
2XX・3XXなどの数字で始まる行は、サーバからの応答を出力したものです。
TelnetでSendGridのメールサーバ smtp.sendgrid.net に接続します。
1 2 |
|
220の応答が確認できたら、EHLOに続けて自分のドメインを入力します。
1 2 3 4 5 6 7 8 |
|
SendGridサーバに接続できたらユーザ名/パスワードを入力し、ログインします。ユーザ名は、「apikey」をBASE64エンコードした固定文字列「YXBpa2V5」を、パスワードは、APIキーをBASE64エンコードした文字列(「はじめに」で作成したもの)を入力します。
1 2 3 4 5 6 |
|
235 Authentication successfulが表示されれば、ユーザ名/パスワードが正しく入力され、指定したポートでsmtp.sendgrid.netとの接続が確立したことを意味します。
送信元メールアドレスと宛先メールアドレスを入力します。
1 2 3 4 |
|
メールコンテンツの入力開始を意味するDATAを入力します。
1 2 |
|
354の応答が確認できたら、メールヘッダ情報(To/From/Subjectなど)を入力します。次に、空行を挿入してからメール本文(ボディ部)を入力します。最後にピリオドを打ってメールコンテンツの入力を終了します。
1 2 3 4 5 6 7 |
|
250 Okの応答は、このメールが送信キューに登録されたことを意味します。このキューはすぐに処理され、メールが送信されます。
QUITを入力してTelnet接続を切断します。
1 2 |
|
SMTP APIを用いたコンテンツの構築方法についてはSMTPメールの構築を参照してください。