📄 用汇编语言写esmtp电子邮件发送程序 .txt
字号:
用汇编语言写ESMTP电子邮件发送程序
相关的例子:下载>>> 作者:谢家路 于2007-12-16上传
--------------------------------------------------------------------------------
有幸在老罗的缤纷天地(http://www.luocong.com)看到《用汇编语言编写ESMTP邮件发送程序》一文,可是将源文件下载下来却不能正确发送邮件,于是查找资料稍作编码,于是有此文。
随着网上垃圾邮件的广泛传播,大多数邮件服务器都已经增加了认证功能,广泛采用ESMTP。以下是与ESMTP建立连接发送邮件的发送过程:
(一)建立连接
1, 客户端与SMTP服务器建立Socket连接
2,发送 ehlo 域名\r\n,服务器收到后返回220编码,表示服务器准备就绪;
Exam: ehlo local
2、发送 auth login\r\n,服务器收到后返回334编码,表示服务器要求用户输入用户名;
3、发送 经过Base64编码的用户名\r\n,服务器收到后返回334编码,表示服务器要求用户输入密码;
4、发送 经过Base64编码的密码\r\n服务器收到后并经认证成功后返回235编码,表示认证成功,用户可以发送邮件;
(二)发送信封
5、发送 mail from:<发送者的Email地址>\r\n,服务器收到后返回250编码,表示请求操作就绪;
6、发送 rcpt to:<目标Email地址>\r\n,服务器收到后返回250编码,表示请求操作就绪;
(三)客户端发送邮件数据
7、发送 data\r\n,表示开始向服务器发送邮件数据;
8,客户端可以选择发送邮件的首部字段;
from:发送者的Email地址
to:目标Email地址
subject:邮件主题
date:发送日期
Cc:(Cc == Carbon copy 复写副本),表示应给某人发送一个副本
Bcc: (Bcc == Blind carbon copy 暗送)
reply-to:对方回信所用的邮件地址
9,发送 \r\n表示邮件首部结束
10,发送 正文\r\n
11,发送"."\r\n,表示邮件发送结束
12、发送 quit\r\n,断开连接
应该注意每条命令均以\r\n(CRLF,CR == 回车,LF == 换行)结束。
此外有MIME(通用因特网邮件扩充),其主要包括以下5个新的邮件首部字段
MIME-Version:标志MIME的版本,现在的版本号位1.0,若无此行,则为英文文本;
Content-Description:可读字符串,说明此邮件是什么,和邮件主题类似;
Content-Id:邮件的唯一标识符;
Content-Transfer-Encoding:制定邮件主题的编码方式;
Content-Type:说明邮件的性质。
本人没有过多的时间,遂略去此部分。如有疑问请发送邮件至:bottlexx@163.com,代码没有经过太多的优化,对服务器的返回码也没有进行判断,请高手指点。
包括的文件有:
esmtp.asm,esmtp.rc,resource.h,version.h, make.bat
在cmd下进入工作目录,输入 make esmtp ,即生成可执行文件,可以将make.bat当作一个通用文件。
实用此文件只需将主源文件和资源文件同名,然后将文件名作为.bat文件的参数即可。
--------------------------------------------------------------------------------
<<<上一篇 欢迎访问AoGo汇编小站:http://www.aogosoft.com 下一篇>>>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -