为编程爱好者分享易语言教程源码的资源网
三叶资源网官方③群:33301895 网络创业点子 C全站文字广告,诚邀与您合作 三叶资源网培训教程视频 三叶资源网官方③群:33301895
三叶资源网官方③群:33301895 网络创业点子 B全站文字广告,诚邀与您合作 三叶资源网培训教程视频 三叶资源网官方③群:33301895

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

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

三叶资源网 2013-03-02 网络相关源码 214 ℃ 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编码 (到字节集 (“408477779@qq.com”)) + #换行符)
.否则

.如果结束
.如果 (kk = “334 UGFzc3dvcmQ6” + #换行符)
    客户1.发送数据 (BASE64编码 (到字节集 (“”)) + #换行符)
.否则

.如果结束
.如果 (kk = “235 Authentication successful” + #换行符)
    客户1.发送数据 (“MAIL FROM:<408477779@qq.com>” + #换行符)
.否则

.如果结束

调试输出 (cishu)
.如果 (kk = “250 Ok” + #换行符)
    .如果 (cishu ≠ 1 或 cishu ≠ 0)
        .如果 (cishu = 2)
            客户1.发送数据 (“RCPT TO:<13526686842@163.com> ” + #换行符)
        .否则
            客户1.发送数据 (“MAIL FROM:<408477779@qq.com>” + #换行符)
        .如果结束
        .如果 (cishu = 3)
            客户1.发送数据 (“DATA ” + #换行符)
        .否则

        .如果结束

    .否则
        客户1.发送数据 (“RCPT TO:<408477779@qq.com> ” + #换行符)
    .如果结束
    cishu = 1 + cishu
.否则

.如果结束

.如果 (kk = “354 End data with <CR><LF>.<CR><LF>” + #换行符)
    date = BASE64编码 (读入文件 (“E:\2.jpg”))
    客户1.发送数据 (“FROM:<408477779@qq.com>” + #换行符 + “to:<408477779@163.com>” + #换行符 + “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))
返回 (编码文本)
文件下载


Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网官方③群:33301895

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

欢迎 发表评论:

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

网站分类
随机tag
快捷回复定时关机易语言支持库APK查询工具Python编程取QQ昵称UI界面鱼刺通用架构源码​百合网注册E2EE互联网服务器套件文件编码检测DLL函数查看器精易皮肤模块模块源码QuotedHttpWatch超级列表框易语言5.8动态加密
最新评论