为编程爱好者分享易语言教程源码的资源网

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

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

三叶资源网 2013-03-02 05:06:51 网络相关源码 1581 ℃ 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))
返回 (编码文本)
文件下载
资源名称:易语言邮件发送客户端源码


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

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

欢迎 发表评论:

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

网站分类
随机tag
2144多线程注册例程源码wordpress靠边隐藏SendMessage易语言对接猫池源码sqlite3后台截图163邮箱登陆miniblink获取正文算法超文本浏览框支持库抗锯齿翻译工具二维码生成编辑框数据分页类Signature黑月版问道辅助内存脚本子类化
最新评论