在自定义SMTP服务器上发送附件

时间:2012-12-17 00:47:24

标签: smtp

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

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

DATA fragment, 661 bytes

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

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

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

SMTP没有消息的“附件”概念。电子邮件附件是邮件的同一部分,在SMTP中,所有邮件都在DATA命令和数据结束指示符(.“之间传输命令”)。请参阅RFC 5321.请注意,SMTP中没有办法告诉服务器有多少数据将遵循DATA命令,尽管服务器有一种方法可以限制邮件正文的大小(并且对DATA-end命令的回复可能是错误响应代码和表示发送了太多数据的消息。

您可以使用MIME来标识邮件正文的不同部分,但邮件正文的创建和解释完全在SMTP服务器的范围之外。请参阅RFC 2045和RFC 2046,以及改进MIME规范的许多其他相关RFC(包括RFC2184,RFC2231,RFC5335,RFC6532,RFC2646,RFC3798,RFC5147,RFC6657)。