易語(yǔ)言發(fā)信寫(xiě)法講解
眾所周知,易語(yǔ)言支持庫(kù)自帶"連接發(fā)信服務(wù)器()","斷開(kāi)發(fā)信服務(wù)器()"命令...
但經(jīng)過(guò)實(shí)踐應(yīng)用,連接與斷開(kāi)存在不穩(wěn)定因素,目前暫不得知原由..會(huì)導(dǎo)致發(fā)信25端口占用卡住,最終切斷全部網(wǎng)絡(luò)連接..
經(jīng)過(guò)查閱資料,得出另外一種發(fā)信方式,其原理是用客戶(hù)組件,連接smtp服務(wù)器,一步一步判斷返回值并發(fā)送數(shù)據(jù)..具體參看源碼!
.版本 2 .支持庫(kù) shell .支持庫(kù) spec .子程序 發(fā)送郵件通知 .參數(shù) 主題內(nèi)容, 文本型 .局部變量 返回?cái)?shù)據(jù), 文本型 客戶(hù)1.連接 (smtp, 25) 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “220”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (“EHLO ” + smtp + #換行符) ' 服務(wù)器地址 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “250”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (“auth login” + #換行符) 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “334”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (BASE64編碼 (到字節(jié)集 (id)) + #換行符) ' 郵箱賬號(hào) 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “334”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (BASE64編碼 (到字節(jié)集 (password)) + #換行符) ' 密碼 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “235”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (“MAIL FROM: ” + “<” + id + “>” + #換行符) ' 發(fā)件人 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “250”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (“RCPT TO: ” + “<” + email + “>” + #換行符) ' 收件人 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “250”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (“DATA” + #換行符) 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “354”) 斷開(kāi) () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結(jié)束 發(fā)送字符 (“Subject: ” + 主題內(nèi)容 + #換行符) ' 主題 發(fā)送字符 (“From:” + “<” + id + “>” + #換行符) 發(fā)送字符 (“To:” + “<” + email + “>” + #換行符) 發(fā)送字符 (#換行符) 發(fā)送字符 (主題內(nèi)容 + #換行符) ' 正文 發(fā)送字符 (#換行符 + “.” + #換行符) 返回?cái)?shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回?cái)?shù)據(jù), 3) ≠ “250”) 信息框 (“發(fā)送失敗”, 0, ) .如果真結(jié)束 斷開(kāi) () .子程序 _客戶(hù)1_數(shù)據(jù)到達(dá) 數(shù)據(jù) = 客戶(hù)1.取回?cái)?shù)據(jù) () .子程序 等待數(shù)據(jù), 字節(jié)集 .局部變量 數(shù)據(jù)_, 字節(jié)集 .循環(huán)判斷首 () 處理事件 () .循環(huán)判斷尾 (數(shù)據(jù) = { }) 數(shù)據(jù)_ = 數(shù)據(jù) 數(shù)據(jù) = { } 調(diào)試輸出 (到文本 (數(shù)據(jù)_)) 返回 (數(shù)據(jù)_) .子程序 _客戶(hù)1_連接斷開(kāi) 調(diào)試輸出 (“連接斷開(kāi)” + #換行符) .子程序 發(fā)送字符 .參數(shù) 字符, 文本型 .局部變量 i, 整數(shù)型 調(diào)試輸出 (字符) .計(jì)次循環(huán)首 (取文本長(zhǎng)度 (字符), i) 客戶(hù)1.發(fā)送數(shù)據(jù) (到字節(jié)集 (字符 (取代碼 (字符, i)))) .計(jì)次循環(huán)尾 () .子程序 斷開(kāi) 發(fā)送字符 (“quit” + #換行符) 客戶(hù)1.斷開(kāi)連接 () .子程序 BASE64編碼, 文本型 .參數(shù) 待編碼數(shù)據(jù), 字節(jié)集, , 待編碼字節(jié)集 .局部變量 余數(shù) .局部變量 臨時(shí), 字節(jié)型, , "3" .局部變量 變量 .局部變量 集合, 字節(jié)集 .局部變量 長(zhǎng)度, 整數(shù)型 .局部變量 字符, 字節(jié)集 .局部變量 i 長(zhǎng)度 = 取字節(jié)集長(zhǎng)度 (待編碼數(shù)據(jù)) .如果真 (長(zhǎng)度 < 1) 返回 (“”) .如果真結(jié)束 余數(shù) = 長(zhǎng)度 % 3 .如果真 (余數(shù) > 0) 待編碼數(shù)據(jù) = 待編碼數(shù)據(jù) + 取空白字節(jié)集 (3 - 余數(shù)) .如果真結(jié)束 長(zhǎng)度 = 取字節(jié)集長(zhǎng)度 (待編碼數(shù)據(jù)) 字符 = 取空白字節(jié)集 (長(zhǎng)度 × 4 ÷ 3) i = 1 集合 = 到字節(jié)集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”) .變量循環(huán)首 (1, 長(zhǎng)度, 3, 變量) 臨時(shí) [1] = 待編碼數(shù)據(jù) [變量] 臨時(shí) [2] = 待編碼數(shù)據(jù) [變量 + 1] 臨時(shí) [3] = 待編碼數(shù)據(jù) [變量 + 2] 字符 [i] = 集合 [右移 (臨時(shí) [1], 2) + 1] 字符 [i + 1] = 集合 [左移 (位與 (臨時(shí) [1], 3), 4) + 右移 (臨時(shí) [2], 4) + 1] 字符 [i + 2] = 集合 [左移 (位與 (臨時(shí) [2], 15), 2) + 右移 (臨時(shí) [3], 6) + 1] 字符 [i + 3] = 集合 [位與 (臨時(shí) [3], 63) + 1] i = i + 4 .變量循環(huán)尾 () .如果真 (余數(shù) > 0) 長(zhǎng)度 = 取字節(jié)集長(zhǎng)度 (字符) .如果 (余數(shù) = 1) 字符 [長(zhǎng)度 - 1] = 取代碼 (“=”, ) 字符 [長(zhǎng)度] = 取代碼 (“=”, ) .否則 字符 [長(zhǎng)度] = 取代碼 (“=”, ) .如果結(jié)束 .如果真結(jié)束 返回 (到文本 (字符))
以上就是我們整理的關(guān)于發(fā)送信件寫(xiě)法的全部?jī)?nèi)容,感謝大家對(duì)腳本之家的支持。
相關(guān)文章
易語(yǔ)言隱藏選擇夾通過(guò)現(xiàn)行子夾來(lái)顯示和切換指定子夾的內(nèi)容
今天小編就為大家分享一篇關(guān)于易語(yǔ)言隱藏選擇夾通過(guò)現(xiàn)行子夾來(lái)顯示和切換指定子夾的內(nèi)容,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11易語(yǔ)言設(shè)置組合框內(nèi)容自動(dòng)排序的方法
今天小編就為大家分享一篇關(guān)于易語(yǔ)言設(shè)置組合框內(nèi)容自動(dòng)排序的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11易語(yǔ)言獲取隨機(jī)數(shù)并且不重復(fù)的代碼
今天小編就為大家分享一篇關(guān)于易語(yǔ)言獲取隨機(jī)數(shù)并且不重復(fù)的代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11一步一步跟我學(xué)易語(yǔ)言之關(guān)于變量
今天小編就為大家分享一篇關(guān)于一步一步跟我學(xué)易語(yǔ)言之關(guān)于變量,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10零基礎(chǔ)易語(yǔ)言入門(mén)教程(四)之?dāng)?shù)據(jù)類(lèi)型
這篇文章主要介紹了零基礎(chǔ)易語(yǔ)言入門(mén)教程(四)之?dāng)?shù)據(jù)類(lèi)型的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-05-05