0

我目前正在自己​​的 SMTP 服务器上工作,我可以成功地从各种程序和网页(如 Outlook、PHP 和 Pear Mail)发送电子邮件。

我需要做的下一个阶段是尝试通过我的 SMTP 服务器发送附件。我尝试在通过 PHP 将附件发送到另一个 SMTP 服务器时对我的服务器进行 LAN 跟踪,我可以看到我从客户端得到以下信息:

DATA fragment, 661 bytes

我不确定这是否与附件有关。

如果是,这只是告诉 SMTP 服务器文件有多长,然后我应该将一个 base 64 编码的字符串写入网络流并将其写入用于发送电子邮件的文件。

感谢您的任何帮助,您可以提供。

4

1 回答 1

1

SMTP 没有邮件“附件”的概念。电子邮件附件是同一消息正文的一部分,在 SMTP 中全部在DATA命令和End-of-DATA指示符(.“命令”)之间传输。请参阅 RFC 5321。请注意,在 SMTP 中没有办法告诉服务器有多少数据将遵循DATA命令,尽管服务器有办法限制消息正文的大小(以及对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 回答