すべてのプロダクト
Search
ドキュメントセンター

Direct Mail:SMTP を使用してメールを送信する

最終更新日:Nov 01, 2025

SMTP 送信を有効にする

SMTP インターフェイスを使用してメールを送信するには、まず SMTP 送信機能を有効にする必要があります。

  1. Direct Mail コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[送信元アドレス] をクリックします。

  3. 送信元アドレスのリストから、SMTP 送信を有効にしたい送信元アドレスを探し、操作列で[SMTP パスワードの設定]をクリックします。

  4. 表示されたダイアログボックスで、SMTP パスワードを入力し、[OK] をクリックします。

SMTP 送信メソッド

簡易メール転送プロトコル (SMTP) は、メールの送信に使用されるプロトコルです。コマンドと応答を使用して、クライアントとサーバー間でメッセージを転送します。クライアントがコマンドを送信し、サーバーが応答を返します。この呼び出しと応答のプロセスは、送信者によって制御されます。

SMTP プロトコル仕様の詳細については、「RFC5321」をご参照ください。

SMTP プロトコルを使用するメールサーバーには 2 つのタイプがあります:

  • smtpd とも呼ばれるメール送信サーバー。送信者の認証が必要です。

  • mx とも呼ばれるメール受信サーバー。外部ドメインからローカルユーザーに配信されたメールを受け入れます。

Alibaba Cloud Direct Mail サーバーは smtpd サーバーであり、ユーザー認証が必要です。認証ユーザー名は送信元アドレスと一致する必要があります。ユーザー名とパスワードはコンソールで設定できます。

プログラムから SMTP を使用してメールを送信するには、プログラミング言語用の SMTP ライブラリを使用します。詳細については、「SMTP 呼び出しの例」をご参照ください。

SMTP プロトコルを使用してメールを送信するプロセスは次のとおりです:

  1. クライアントは `telnet` コマンドを使用して SMTP サーバーに接続し、セッションを確立します。

  2. クライアントは `HELO` または `EHLO` コマンドを送信します。

  3. クライアントは `AUTH` コマンドを送信してユーザーを認証します (smtpd メソッドを使用)。

  4. クライアントは `MAIL` コマンドを送信して送信者を指定します。

  5. クライアントは `RCPT` コマンドを送信して受信者を指定します。

  6. クライアントは `DATA` コマンドを送信してメール本文の送信を開始します。

  7. クライアントは `.` (ピリオド) を送信してメール本文の終わりを示します。

  8. クライアントは `QUIT` コマンドを送信してセッションを終了します。

次の例は、SMTP コマンドを使用してメールを送信する方法を示す `telnet` セッションを示しています。

: S はサーバーを表し、C はクライアントを表します。Linux コマンド `echo -n Content|base64` を使用して Base64 エンコーディングを実行できます。

非暗号化メソッド:

$telnet smtpdm.aliyun.com 80
S:220 smtp.aliyun-inc.com MX AliMail Server(127.0.0.1)
C:EHLO test.com
S:250-smtp.aliyun-inc.com
S:250-8BITMIME
S:250-AUTH=PLAIN LOGIN XALIOAUTH
S:250-AUTH PLAIN LOGIN XALIOAUTH
S:250-PIPELINING
S:250 DSN
C:AUTH LOGIN
S:334 dXNlcm5hbWU6
C:YSoqKkBleGFtcGxlLm5ldA==         注: ユーザー名 a***@example.net の Base64 エンコーディング。
S:334 UGFzc3dvcmQ6
C:dGVzdA==                     注: ユーザーパスワード test の Base64 エンコーディング。
S:235 Authentication successful
C:MAIL FROM: <a***@example.net>   注: 送信元アドレスを山括弧 (<>) で囲みます。
S:250 Mail Ok
C:RCPT TO: <a***@example.net>
S:250 Rcpt Ok
C:DATA
S:354 End data with <CR><LF>.<CR><LF>
C:subject: test
C:from: <a***@example.net>
C:to: <a***@example.net>
C:
C:test
C:.
S:Data Ok: queued as freedom ###envid=148316944
C:QUIT
S:221 Bye

暗号化メソッド (OpenSSL ツールが必要):

openssl s_client -connect smtpdm.aliyun.com:465 -crlf
or
openssl s_client -cipher AES128-GCM-SHA256 -connect  smtpdm.aliyun.com:465 -tls1_3 -crlf

OpenSSL が正常に接続された後、同じウィンドウで次のクライアントコマンドを 1 行ずつ入力します:

$openssl s_client -connect smtpdm.aliyun.com:465 -crlf
***
***
***
S:220 DirectMail Smtpd Server(127.0.0.1)
C:EHLO test.com
S:250-smtp.aliyun-inc.com
S:250-8BITMIME
S:250-AUTH=PLAIN LOGIN XALIOAUTH
S:250-AUTH PLAIN LOGIN XALIOAUTH
S:250-PIPELINING
S:250 DSN
C:AUTH LOGIN
S:334 dXNlcm5hbWU6
C:YSoqKkBleGFtcGxlLm5ldA==          注: ユーザー名 a***@example.net の Base64 エンコーディング。
S:334 UGFzc3dvcmQ6
C:dGVzdA==                        注: ユーザーパスワード test の Base64 エンコーディング。
S:235 Authentication successful
C:MAIL FROM: <a***@example.net>  注: 送信元アドレスを山括弧 (<>) で囲みます。
S:250 Mail Ok
C:rcpt to: <a***1@example.net>  注: rcpt to には小文字を使用してください。大文字は認識されない場合があります。
S:250 Rcpt Ok
C:DATA
S:354 End data with <CR><LF>.<CR><LF>
C:subject: test
C:from: <a***@example.net>
C:to: <a***1@example.net>
C:
C:test
C:.
S:250 Data Ok: queued as freedom ###envid=600000105713504612
C:QUIT
S:DONE

この例では、`DATA` コマンドの後に入力されたメール本文は単純なテキスト文字列です。標準のリッチテキストメールの場合、Multipurpose Internet Mail Extensions (MIME) 仕様に従ってフォーマットする必要があります。これには、件名と本文のエンコーディングが含まれます。適切なフォーマットにより、受信者のサーバーがメールを迷惑メールとして識別するリスクが軽減されます。

MIME プロトコルの詳細については、「RFC2045」をご参照ください。Alibaba Cloud の公式サイトで提供されている SMTP 送信の例にある言語固有のライブラリを使用して、MIME メールをエンコードできます。

MIME メールを作成する方法の詳細については、「SMTP を使用して添付ファイル付きのメールを送信する方法」をご参照ください。