0

私は現在、自分の SMTP サーバーで作業しており、Outlook、PHP、Pear Mail などのさまざまなプログラムや Web ページから電子メールを正常に送信できます。

次に行う必要があるのは、SMTP サーバー経由で添付ファイルを送信することです。PHP 経由で添付ファイルを別の SMTP サーバーに送信しているときに、サーバーの LAN トレースを実行しようとしましたが、クライアントから次のメッセージが表示されることがわかりました。

DATA fragment, 661 bytes

これが添付ファイルに関連しているかどうかはわかりません。

もしそうなら、これはファイルの長さをSMTPサーバーに伝えているだけで、Base 64でエンコードされた文字列をネットワークストリームに書き込んで、電子メールの送信に使用するファイルに書き込むだけです。

ご協力いただきありがとうございます。

4

1 に答える 1

1

SMTP には、メッセージへの「添付」という概念がありません。DATA電子メールの添付ファイルは、SMTP でコマンドとEnd-of-DATAインジケータ ( .「コマンド」)の間ですべて送信されるメッセージの同じ本文の一部です。DATARFC 5321 を参照してください。SMTP には、コマンドに続くデータの量をサーバーに伝える方法がないことに注意してください。End-of-DATA コマンドは、エラー応答コードと、送信されたデータが多すぎることを示すメッセージである可能性があります。

MIME を使用してメッセージ本文のさまざまな部分を識別できますが、メッセージ本文の作成と解釈は完全に SMTP サーバーの範囲外です。RFC 2045 と RFC 2046、および MIME 仕様を改良する他の多くの関連 RFC (RFC2184、RFC2231、RFC5335、RFC6532、RFC2646、RFC3798、RFC5147、RFC6657 を含む) を参照してください。

于 2012-12-17T02:24:12.270 に答える