众所周知,易语言支持库自带"连接发信服务器()","断开发信服务器()"命令...
但经过实践应用,连接与断开存在不稳定因素,目前暂不得知原由..会导致发信25端口占用卡住,最终切断全部网络连接..
经过查阅资料,得出另外一种发信方式,其原理是用客户组件,连接smtp服务器,一步一步判断返回值并发送数据..具体参看源码!
.版本 2
.支持库 shell
.支持库 spec
.子程序 发送邮件通知
.参数 主题内容, 文本型
.局部变量 返回数据, 文本型
客户1.连接 (smtp, 25)
返回数据 = 到文本 (等待数据 ())
.如果真 (取文本左边 (返回数据, 3) ≠ “220”)
断开 ()
信息框 (“发送失败”, 0, )
返回 ()
.如果真结束
发送字符 (“EHLO ” + smtp + #换行符) ' 服务器地址
返回数据 = 到文本 (等待数据 ())
.如果真 (取文本左边 (返回数据, 3) ≠ “250”)
断开 ()
信息框 (“发送失败”, 0, )
返回 ()
.如果真结束
发送字符 (“auth login” + #换行符)
返回数据 = 到文本 (等待数据 ())
.如果真 (取文本左边 (返回数据, 3) ≠ “334”)
断开 ()
信息框 (“发送失败”, 0, )
返回 ()
.如果真结束
发送字符 (BASE64编码 (到字节集 (id)) + #换行符) ' 邮箱账号
返回数据 = 到文本 (等待数据 ())
.如果真 (取文本左边 (返回数据, 3) ≠ “334”)
断开 ()
信息框 (“发送失败”, 0, )
返回 ()
.如果真结束
发送字符 (BASE64编码 (到字节集 (password)) + #换行符) ' 密码
返回数据 = 到文本 (等待数据 ())
.如果真