易語言發(fā)信寫法講解
更新時間:2018年12月05日 14:18:25 投稿:laozhang
在本篇內容里小編給大家分享了關于易語言發(fā)信寫法的相關知識點以及實例代碼,需要的朋友們可以學習下。
眾所周知,易語言支持庫自帶"連接發(fā)信服務器()","斷開發(fā)信服務器()"命令...
但經(jīng)過實踐應用,連接與斷開存在不穩(wěn)定因素,目前暫不得知原由..會導致發(fā)信25端口占用卡住,最終切斷全部網(wǎng)絡連接..
經(jīng)過查閱資料,得出另外一種發(fā)信方式,其原理是用客戶組件,連接smtp服務器,一步一步判斷返回值并發(fā)送數(shù)據(jù)..具體參看源碼!
.版本 2 .支持庫 shell .支持庫 spec .子程序 發(fā)送郵件通知 .參數(shù) 主題內容, 文本型 .局部變量 返回數(shù)據(jù), 文本型 客戶1.連接 (smtp, 25) 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “220”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (“EHLO ” + smtp + #換行符) ' 服務器地址 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “250”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (“auth login” + #換行符) 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “334”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (BASE64編碼 (到字節(jié)集 (id)) + #換行符) ' 郵箱賬號 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “334”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (BASE64編碼 (到字節(jié)集 (password)) + #換行符) ' 密碼 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “235”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (“MAIL FROM: ” + “<” + id + “>” + #換行符) ' 發(fā)件人 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “250”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (“RCPT TO: ” + “<” + email + “>” + #換行符) ' 收件人 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “250”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (“DATA” + #換行符) 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “354”) 斷開 () 信息框 (“發(fā)送失敗”, 0, ) 返回 () .如果真結束 發(fā)送字符 (“Subject: ” + 主題內容 + #換行符) ' 主題 發(fā)送字符 (“From:” + “<” + id + “>” + #換行符) 發(fā)送字符 (“To:” + “<” + email + “>” + #換行符) 發(fā)送字符 (#換行符) 發(fā)送字符 (主題內容 + #換行符) ' 正文 發(fā)送字符 (#換行符 + “.” + #換行符) 返回數(shù)據(jù) = 到文本 (等待數(shù)據(jù) ()) .如果真 (取文本左邊 (返回數(shù)據(jù), 3) ≠ “250”) 信息框 (“發(fā)送失敗”, 0, ) .如果真結束 斷開 () .子程序 _客戶1_數(shù)據(jù)到達 數(shù)據(jù) = 客戶1.取回數(shù)據(jù) () .子程序 等待數(shù)據(jù), 字節(jié)集 .局部變量 數(shù)據(jù)_, 字節(jié)集 .循環(huán)判斷首 () 處理事件 () .循環(huán)判斷尾 (數(shù)據(jù) = { }) 數(shù)據(jù)_ = 數(shù)據(jù) 數(shù)據(jù) = { } 調試輸出 (到文本 (數(shù)據(jù)_)) 返回 (數(shù)據(jù)_) .子程序 _客戶1_連接斷開 調試輸出 (“連接斷開” + #換行符) .子程序 發(fā)送字符 .參數(shù) 字符, 文本型 .局部變量 i, 整數(shù)型 調試輸出 (字符) .計次循環(huán)首 (取文本長度 (字符), i) 客戶1.發(fā)送數(shù)據(jù) (到字節(jié)集 (字符 (取代碼 (字符, i)))) .計次循環(huán)尾 () .子程序 斷開 發(fā)送字符 (“quit” + #換行符) 客戶1.斷開連接 () .子程序 BASE64編碼, 文本型 .參數(shù) 待編碼數(shù)據(jù), 字節(jié)集, , 待編碼字節(jié)集 .局部變量 余數(shù) .局部變量 臨時, 字節(jié)型, , "3" .局部變量 變量 .局部變量 集合, 字節(jié)集 .局部變量 長度, 整數(shù)型 .局部變量 字符, 字節(jié)集 .局部變量 i 長度 = 取字節(jié)集長度 (待編碼數(shù)據(jù)) .如果真 (長度 < 1) 返回 (“”) .如果真結束 余數(shù) = 長度 % 3 .如果真 (余數(shù) > 0) 待編碼數(shù)據(jù) = 待編碼數(shù)據(jù) + 取空白字節(jié)集 (3 - 余數(shù)) .如果真結束 長度 = 取字節(jié)集長度 (待編碼數(shù)據(jù)) 字符 = 取空白字節(jié)集 (長度 × 4 ÷ 3) i = 1 集合 = 到字節(jié)集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”) .變量循環(huán)首 (1, 長度, 3, 變量) 臨時 [1] = 待編碼數(shù)據(jù) [變量] 臨時 [2] = 待編碼數(shù)據(jù) [變量 + 1] 臨時 [3] = 待編碼數(shù)據(jù) [變量 + 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 .變量循環(huán)尾 () .如果真 (余數(shù) > 0) 長度 = 取字節(jié)集長度 (字符) .如果 (余數(shù) = 1) 字符 [長度 - 1] = 取代碼 (“=”, ) 字符 [長度] = 取代碼 (“=”, ) .否則 字符 [長度] = 取代碼 (“=”, ) .如果結束 .如果真結束 返回 (到文本 (字符))
以上就是我們整理的關于發(fā)送信件寫法的全部內容,感謝大家對腳本之家的支持。
您可能感興趣的文章:
相關文章
易語言隱藏選擇夾通過現(xiàn)行子夾來顯示和切換指定子夾的內容
今天小編就為大家分享一篇關于易語言隱藏選擇夾通過現(xiàn)行子夾來顯示和切換指定子夾的內容,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-11-11