易语言邮件发送客户端源码

源码程序使用易语言客户组件向QQ邮箱发送消息实现邮件发送功能。

.版本 2 .支持库 spec .程序集 窗口程序集1 .程序集变量 cishu, 整数型 .子程序 _按钮1_被单击 客户1.连接 (“smtp.qq.com”, 25) .子程序 _客户1_数据到达 .局部变量 kk, 文本型 .局部变量 pp, 文本型 .局部变量 pp2, 文本型 .局部变量 date, 文本型 kk = 到文本 (客户1.取回数据 ()) 调试输出 (到文本 (客户1.取回数据 ())) .如果 (kk = “220 smtp.qq.com Esmtp QQ Mail Server” + #换行符) 客户1.发送数据 (“HELO smtp.qq.com” + #换行符) .否则 .如果结束 .如果 (kk = “250 smtp.qq.com” + #换行符) 客户1.发送数据 (“AUTH LOGIN” + #换行符) .否则 .如果结束 .如果 (kk = “334 VXNlcm5hbWU6” + #换行符) 客户1.发送数据 (BASE64编码 (到字节集 (“[email protected]”)) + #换行符) .否则 .如果结束 .如果 (kk = “334 UGFzc3dvcmQ6” + #换行符) 客户1.发送数据 (BASE64编码 (到字节集 (“”)) + #换行符) .否则 .如果结束 .如果 (kk = “235 Authentication successful” + #换行符) 客户1.发送数据 (“MAIL FROM:<[email protected]>” + #换行符) .否则 .如果结束 调试输出 (cishu) .如果 (kk = “250 Ok” + #换行符) .如果 (cishu ≠ 1 或 cishu ≠ 0) .如果 (cishu = 2) 客户1.发送数据 (“RCPT TO:<[email protected]> ” + #换行符) .否则 客户1.发送数据 (“MAIL FROM:<[email protected]>” + #换行符) .如果结束 .如果 (cishu = 3) 客户1.发送数据 (“DATA ” + #换行符) .否则 .如果结束 .否则 客户1.发送数据 (“RCPT TO:<[email protected]> ” + #换行符) .如果结束 cishu = 1 + cishu .否则 .如果结束 .如果 (kk = “354 End data with <CR><LF>.<CR><LF>” + #换行符) date = BASE64编码 (读入文件 (“E:\2.jpg”)) 客户1.发送数据 (“FROM:<[email protected]>” + #换行符 + “to:<[email protected]>” + #换行符 + “subject:hello,you!” + #换行符 + “MIME_Version: 1.0” + #换行符 + “Content-type: text/html” + #换行符 + “Content-Transfer-Encoding: quoted-printable” + #换行符 + “X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157” + #换行符 + #换行符) pp2 = “<!DOCTYPE HTML>” + #换行符 + “<html>” + #换行符 + “<HEAD>” + #换行符 + “<META HTTP-EQUIV=3D” + #双引号左 + “Content-Type” + #双引号右 + “ ” + “CONTENT=3D” + #双引号左 + “text/html; charset=gb2312” + #双引号右 + “>” + #换行符 + “</HEAD>” + #换行符 + “<body><a href= //www.baidu.com target= _blank>wo ce shi yixia</a> ” + “<img src='data:image/jpeg;base64, ” + date + “' alt='abc.jpg' /> ” + #换行符 + “</body></html>” + #换行符 + “.” + #换行符 客户1.发送数据 (pp2) .否则 .如果结束 .如果 (kk = “250 Ok: queued as ” + #换行符) 客户1.发送数据 (“quit” + #换行符) .否则 .如果结束 ' “ Content-Type: application/octet-stream;” + #换行符 + “ name=” + #双引号左 + “eeeeee.e” + #双引号右 + #换行符 + “Content-Disposition: attachment; filename='eeeeee.e'” + BASE64编码 (读入文件 (“E:\eeeeee.e”)) + #双引号右 ' '最主要的就是 Content-Type: text/html; Content-Transfer-Encoding: base64类型和编码 ' 其实完全不用不懂网页的话,你就找网页吧他BASE64编码,然后 个两行 把编码粘进去不过先要声明Content-Type和编码 .子程序 BASE64编码, 文本型 .参数 二进制数据, 字节集, 参考 .局部变量 数据长度 .局部变量 整倍数 .局部变量 X .局部变量 编码文本, 文本型 .局部变量 行字数 .局部变量 三字节, 字节集 .局部变量 三字节组, 字节型, , "3" .局部变量 四字节组, 字节型, , "4" .局部变量 n .局部变量 编码值 .局部变量 xx 数据长度 = 取字节集长度 (二进制数据) xx = 取启动时间 () 整倍数 = 数据长度 \ 3 .如果真 (数据长度 % 3 ≠ 0) 整倍数 = 整倍数 + 1 .如果真结束 .计次循环首 (整倍数, X) 三字节 = 取字节集中间 (二进制数据, (X - 1) × 3 + 1, 3) .计次循环首 (3, n) 三字节组 [n] = 取字节集数据 (取字节集中间 (三字节, n, 1), #字节型, ) .计次循环尾 () 四字节组 [1] = 位与 (三字节组 [1], 252) ÷ 4 四字节组 [2] = 位或 (位与 (三字节组 [1], 3) × 16, 三字节组 [2] ÷ 16) 四字节组 [3] = 位或 (位与 (三字节组 [2], 15) × 4, 三字节组 [3] ÷ 64) 四字节组 [4] = 位与 (三字节组 [3], 63) .计次循环首 (取字节集长度 (三字节) + 1, n) ' 这里循环次数不用3,而用实际长度,考虑到数据长度不总是3的整倍数 编码值 = 四字节组 [n] + 1 四字节组 [n] = 取代码 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”, 编码值) 处理事件 () .计次循环尾 () 编码文本 = 编码文本 + 到文本 (四字节组) 行字数 = 行字数 + 4 .如果真 (行字数 = 76) 行字数 = 0 编码文本 = 编码文本 + #换行符 .如果真结束 处理事件 () .计次循环尾 () .如果真 (n < 5) ' 如果编码文本长度不是4的整倍数,后面补"=" 编码文本 = 编码文本 + 取重复文本 (5 - n, “=”) .如果真结束 输出调试文本 (到文本 (取启动时间 () - xx)) 返回 (编码文本)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注