中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

易語言如何實現發信

發布時間:2021-08-13 09:04:16 來源:億速云 閱讀:209 作者:小新 欄目:編程語言

小編給大家分享一下易語言如何實現發信,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

眾所周知,易語言支持庫自帶"連接發信服務器()","斷開發信服務器()"命令...

但經過實踐應用,連接與斷開存在不穩定因素,目前暫不得知原由..會導致發信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)) + #換行符) ' 密碼
返回數據 = 到文本 (等待數據 ())
.如果真 (取文本左邊 (返回數據, 3) ≠ “235”)
  斷開 ()
  信息框 (“發送失敗”, 0, )
  返回 ()
.如果真結束
發送字符 (“MAIL FROM: ” + “<” + id + “>” + #換行符) ' 發件人
返回數據 = 到文本 (等待數據 ())
.如果真 (取文本左邊 (返回數據, 3) ≠ “250”)
  斷開 ()
  信息框 (“發送失敗”, 0, )
  返回 ()
.如果真結束
發送字符 (“RCPT TO: ” + “<” + email + “>” + #換行符) ' 收件人
返回數據 = 到文本 (等待數據 ())
.如果真 (取文本左邊 (返回數據, 3) ≠ “250”)
  斷開 ()
  信息框 (“發送失敗”, 0, )
  返回 ()
.如果真結束
發送字符 (“DATA” + #換行符)
返回數據 = 到文本 (等待數據 ())
.如果真 (取文本左邊 (返回數據, 3) ≠ “354”)
  斷開 ()
  信息框 (“發送失敗”, 0, )
  返回 ()
.如果真結束
發送字符 (“Subject: ” + 主題內容 + #換行符) ' 主題
發送字符 (“From:” + “<” + id + “>” + #換行符)
發送字符 (“To:” + “<” + email + “>” + #換行符)
發送字符 (#換行符)
發送字符 (主題內容 + #換行符) ' 正文
發送字符 (#換行符 + “.” + #換行符)
返回數據 = 到文本 (等待數據 ())
.如果真 (取文本左邊 (返回數據, 3) ≠ “250”)
  信息框 (“發送失敗”, 0, )
.如果真結束
斷開 ()


.子程序 _客戶1_數據到達

數據 = 客戶1.取回數據 ()

.子程序 等待數據, 字節集
.局部變量 數據_, 字節集

.循環判斷首 ()
  處理事件 ()
.循環判斷尾 (數據 = { })
數據_ = 數據
數據 = { }
調試輸出 (到文本 (數據_))
返回 (數據_)

.子程序 _客戶1_連接斷開

調試輸出 (“連接斷開” + #換行符)

.子程序 發送字符
.參數 字符, 文本型
.局部變量 i, 整數型

調試輸出 (字符)
.計次循環首 (取文本長度 (字符), i)
  客戶1.發送數據 (到字節集 (字符 (取代碼 (字符, i))))
.計次循環尾 ()

.子程序 斷開

發送字符 (“quit” + #換行符)
客戶1.斷開連接 ()

.子程序 BASE64編碼, 文本型
.參數 待編碼數據, 字節集, , 待編碼字節集
.局部變量 余數
.局部變量 臨時, 字節型, , "3"
.局部變量 變量
.局部變量 集合, 字節集
.局部變量 長度, 整數型
.局部變量 字符, 字節集
.局部變量 i

長度 = 取字節集長度 (待編碼數據)
.如果真 (長度 < 1)
  返回 (“”)
.如果真結束
余數 = 長度 % 3
.如果真 (余數 > 0)
  待編碼數據 = 待編碼數據 + 取空白字節集 (3 - 余數)
.如果真結束
長度 = 取字節集長度 (待編碼數據)
字符 = 取空白字節集 (長度 × 4 ÷ 3)
i = 1
集合 = 到字節集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”)
.變量循環首 (1, 長度, 3, 變量)
  臨時 [1] = 待編碼數據 [變量]
  臨時 [2] = 待編碼數據 [變量 + 1]
  臨時 [3] = 待編碼數據 [變量 + 2]
  字符 [i] = 集合 [右移 (臨時 [1], 2) + 1]
  字符 [i + 1] = 集合 [左移 (位與 (臨時 [1], 3), 4) + 右移 (臨時 [2], 4) + 1]
  字符 [i + 2] = 集合 [左移 (位與 (臨時 [2], 15), 2) + 右移 (臨時 [3], 6) + 1]
  字符 [i + 3] = 集合 [位與 (臨時 [3], 63) + 1]
  i = i + 4
.變量循環尾 ()
.如果真 (余數 > 0)
  長度 = 取字節集長度 (字符)
  .如果 (余數 = 1)
    字符 [長度 - 1] = 取代碼 (“=”, )
    字符 [長度] = 取代碼 (“=”, )
  .否則
    字符 [長度] = 取代碼 (“=”, )
  .如果結束

.如果真結束
返回 (到文本 (字符))

以上是“易語言如何實現發信”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄄城县| 扬中市| 乃东县| 耿马| 富宁县| 鸡东县| 大同县| 榆中县| 德惠市| 弥渡县| SHOW| 天台县| 清原| 安吉县| 廉江市| 育儿| 杭州市| 武隆县| 隆林| 兴和县| 南充市| 双牌县| 玉溪市| 美姑县| 孟连| 平安县| 女性| 凭祥市| 黑龙江省| 莱芜市| 葫芦岛市| 安平县| 南岸区| 宝山区| 云南省| 仪征市| 定安县| 辽阳县| 米易县| 定结县| 循化|