新閣上位機開發(fā)——C#結合SMTP實現(xiàn)郵件報警通知

前言

C#是微軟推出的一門面向?qū)ο蟮耐ㄓ眯途幊陶Z言,它除了可以開發(fā)PC軟件策泣、網(wǎng)站(借助 ASP.NET)和APP(基于 Windows Phone)衙傀,還能作為游戲腳本,編寫游戲邏輯萨咕。SMTP是一種提供可靠且有效的電子郵件傳輸?shù)膮f(xié)議统抬,是建立在FTP文件傳輸服務上的一種郵件服務,主要用于系統(tǒng)之間的郵件信息傳遞任洞,并提供有關來信的通知蓄喇。今天主要跟大家分享一下如何通過C#結合SMTP來實現(xiàn)報警通知发侵。

思路

C#結合SMTP實現(xiàn)郵件報警通知交掏,經(jīng)過分析,我們需要解決以下兩個問題:

第一個問題是如何進行報警的檢測 第二個問題是如何實現(xiàn)郵件的發(fā)送 下面刃鳄,我們主要針對這兩點進行詳細分析盅弛。

報警檢測

1、實際應用中叔锐,報警會分兩種挪鹏,一種是離散量報警(即開關量報警),另外一種是條件報警(即數(shù)據(jù)報警)愉烙,而對于開關量報警讨盒,又分為上升沿檢測和下降沿檢測;對于條件報警步责,一般會存在高限報警檢測返顺、高高報警檢測禀苦、低限報警檢測、低低報警檢測遂鹊。

2振乏、對于不同的報警,檢測的方式會所有不同秉扑,但是檢測原理卻是相通的慧邮,主要就是要捕捉報警產(chǎn)生的那一個瞬間,比如離散報警的上升沿舟陆,其實就是需要檢測這個變量值從False到True進行跳變误澳,對于條件報警的高限,就是捕捉變量實際值大于(或等于)報警高限值這個狀態(tài)秦躯。因此報警檢測需要單獨開啟一個線程來進行實時檢測脓匿,這樣才不會漏掉報警信息,至于報警檢測的精度宦赠,由報警檢測量大小和計算機性能本身來決定陪毡。

3、由于報警需要結合配置信息來實現(xiàn)勾扭,沒法直接用代碼進行展示毡琉,下面結合上升沿報警和高限報警,對整個流程進行梳理妙色,如下圖所示:


郵件類編寫

對于C#來說桅滋,實現(xiàn)郵件通知很方便,可以直接調(diào)用相關的類庫來實現(xiàn)身辨,這里我們主要是對類庫進行封裝丐谋,形式一個EmailHelper類,后續(xù)只需要調(diào)用這個EmailHelper就行了煌珊,在EmailHelper類中号俐,首先創(chuàng)建了一些郵件發(fā)送會用到的一些屬性,包括發(fā)送人定庵、收件人吏饿、標題、內(nèi)容蔬浙、發(fā)件人密碼等信息猪落,具體如下圖所示:


完成屬性創(chuàng)建后,編寫一個發(fā)送郵件的方法畴博,郵件發(fā)送方法編寫的邏輯和正常發(fā)送郵件一致笨忌,步驟如下所示:

1、使用指定的郵件地址初始化MailAddress實例

2俱病、向收件人地址集合添加郵件地址

3官疲、向抄送收件人地址集合添加郵件地址

4杂曲、設置發(fā)件人信息

5、在有附件的情況下添加附件

6袁余、指定發(fā)件人的郵件地址和密碼以驗證發(fā)件人身份

7擎勘、設置SMTP郵件服務器

8、將郵件發(fā)送到SMTP郵件服務器

具體代碼如下所示:

郵件發(fā)送

1颖榜、這里首先要設置一下郵箱棚饵,按照提示開啟下面的服務,開通之后會提供一個密碼掩完,因此最終發(fā)送郵件使用的密碼并不是郵箱登錄密碼噪漾,而是開通下列服務之后產(chǎn)生的一個密碼。


2且蓬、為了便于搭建整體環(huán)境欣硼,我這里使用新閣教育上位機配置軟件(CMSPro)結合西門子S7-1200 PLC來進行功能測試,首先通過CMSPro配置一些變量恶阴,如下圖所示:


3诈胜、針對每個變量,進行報警配置冯事,以M8.0配置上升沿為例:


4焦匈、按照同樣的方式,將其他變量進行相應的報警配置昵仅,配置完成后缓熟,點擊保存并運行:


5、由上圖可知摔笤,當前M8.0為False够滑,手動將M8.0進行置位,或者通過TIA博圖軟件將M8.0置位吕世,這時候彰触,郵箱中將收到一封報警郵件,再將M8.0復位寞冯,郵箱中將再次收到一封報警消除的郵件渴析,如下圖所示:


?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吮龄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咆疗,老刑警劉巖漓帚,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異午磁,居然都是意外死亡尝抖,警方通過查閱死者的電腦和手機毡们,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昧辽,“玉大人衙熔,你說我怎么就攤上這事〗淋瘢” “怎么了红氯?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長咕痛。 經(jīng)常有香客問我痢甘,道長,這世上最難降的妖魔是什么茉贡? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任塞栅,我火速辦了婚禮,結果婚禮上腔丧,老公的妹妹穿的比我還像新娘放椰。我一直安慰自己,他們只是感情好愉粤,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布庄敛。 她就那樣靜靜地躺著,像睡著了一般科汗。 火紅的嫁衣襯著肌膚如雪藻烤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天头滔,我揣著相機與錄音怖亭,去河邊找鬼。 笑死坤检,一個胖子當著我的面吹牛兴猩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播早歇,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼倾芝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箭跳?” 一聲冷哼從身側響起晨另,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谱姓,沒想到半個月后借尿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年路翻,在試婚紗的時候發(fā)現(xiàn)自己被綠了狈癞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡茂契,死狀恐怖蝶桶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掉冶,我是刑警寧澤真竖,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站郭蕉,受9級特大地震影響疼邀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜召锈,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一旁振、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涨岁,春花似錦拐袜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秉撇,卻和暖如春甜攀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背琐馆。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工规阀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瘦麸。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓谁撼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親滋饲。 傳聞我的和親對象是個殘疾皇子厉碟,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容