Linux下已有的最简smtp client 程序SMTPClient: http://www.engelschall.com/sw/smtpclient/ SMTPClient 原先只支持quoted-printable MIME,参照下文的介绍对原程序稍加修改,便可支持application/octet-stream附件发送. 1.加入认证 现在大多数外发邮件服务器都需要用户认证.未经过认证的,可以给自己及同一个域的用户发邮件,但是不能外发,否则服务器会返回出错信息.如: SMTPclient: unexpected reply: 554 Service unavailable; Client host [218.79.104.4] blocked using cblless.anti-spam.org.cn; Mail from 218.79.0.0/16 refused, see http://anti-spam.org.cn/services/rblquery.php?IP=218.79.0.0 常用的认证方式在下文中有详悉介绍,实现的时候,个人认为用plain比较简单,可将用户名和密码在一行里同时发出,大多数的SMTP Server支持这种认证方式. http://www.fehcom.de/qmail/smtpauth.html 在smtpclient里添加认证时,只需多加3个选项,一个标志使用认证,另两个分别标志用户名和密码,随后在程序里与服务器交互流程中按格式增加AUTH行便可. 2. 添加MIME(multipart) MIME格式详解参见: http://dev.csdn.net/develop/article/18/18448.shtm 其中对附件进行base64编码,可使用另一个free software: base64.下载地址: http://www.fourmilab.ch/webtools/base64/ 在向smtpclient程序里添加mime代码时,需特别注意邮件头与邮件体之间必需输出空行,本人就因忽略了这点,用MUA收到的邮件可以看到回形针的附件标志,却没有显示附件及邮件内容.如果查看原文件,经过编码的内容都是有的.
打造Linux下支持SMTP plain认证及MIME格式的最简MTU
最新推荐文章于 2022-07-31 00:51:45 发布