我目前正在使用自己的SMTP服务器,我可以成功地从各种程序和网页(如Outlook,PHP和Pear Mail)发送电子邮件。
我需要做的下一个阶段是尝试通过我的SMTP服务器发送附件。我尝试通过PHP将附件发送到另一个SMTP服务器时对我的服务器进行局域网跟踪,我可以看到我从客户端获得以下内容:
DATA fragment, 661 bytes
我不确定这是否与附件有关。
如果是,这只是告诉SMTP服务器文件的长度,然后我应该在网络流上写一个base 64编码的字符串并将其写入用于发送电子邮件的文件。
感谢您提供的任何帮助。
答案 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)。