为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 网络相关源码 正文

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

三叶资源网 2013-03-02 05:06:51 网络相关源码 1440 ℃ 0 评论

源码程序使用易语言客户组件向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= http://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))
返回 (编码文本)
文件下载


来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
多线程Exdui界面RAPIDXMLBCC校验创建access数据库socket5调试崩溃自动转储TTP-244条形码销毁时钟易语言破解版明朝时代页游脱机抖音王境泽空格ExUI图标列表框音速启动eWOW64Ext字符串加密音频转换大师
最新评论