加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

# WebService (三)SMTP邮件发送功能

发布时间:2020-12-17 00:54:44 所属栏目:安全 来源:网络整理
导读:本文介紹用如何?C#?實現 SMTP 發送郵件的功能 ? 一、功能與規劃: 程序分為3個部分: 1. WebService: 提供用戶 WebService 接口調用,檢查用戶參數,返回錯誤提示,將參數存儲到數據庫. 2. 數據庫,?存儲需要發送的郵件數據(包含收件人、主旨、郵件內容、發送

本文介紹用如何?C#?實現 SMTP 發送郵件的功能

?

一、功能與規劃:

程序分為3個部分:

1. WebService: 提供用戶 WebService 接口調用,檢查用戶參數,返回錯誤提示,將參數存儲到數據庫.

2. 數據庫,?存儲需要發送的郵件數據(包含收件人、主旨、郵件內容、發送時間等), 與發送log

3. 后臺發送郵件程序,并設置 windows 排程1分鐘執行一次,

????后臺發送郵件程序,每天發送一次日報表給管理員,將1天內的發送錯誤數通知管理員,以便了解有無異常并分析原因

?

?

?

實現思路:

1. 排程:?數據庫提供2個欄位 SendTimeString [字符串] 和 SendTime [日期型]

??? 判斷 SendTimeString 的內容:

??? 0 : 馬上發送,在 SendTime 欄位寫入當前時間

??? 1 : 后面接一個指定的時間, 表示在該時間發送

??? 2 : 后面接 D數值/H數值/M數據,分別表示在當前時間的基礎上延時n天/n小時/n分鐘后發送

??? 3 : 后面接分鐘數,如: 30 表示在下一個半小時,如果當前時間為 08:40,那發送時間為 9:30,如果當前時間為 8:10,則發送時間為 8:30

?

2. 附件:WebService 接收 3 個參數 attString / attName / attDate,分別表示文件內容字符串,文件名字符串,文件日期字符串(建立時間/修改時間/存取時間)

??? 如果用戶需要發送附件,則需要把等發送的文件轉換為 16 進制的字符串,比如文件內容 0123456789,

??? 用16進制字符串表達為 30313233343536373839?

??? WebService 接收到附件后將文件存儲在 webservice 所在的服務器上,排程發送郵件時,再添加附件發送。

??

3. 日志記錄:

??? 記錄每次 webservice 調用事件、后臺排程的執行結果、發送每封郵件的結果到數據庫,以便追溯

?

4. WebService 權限驗證

??? 調用 WebService 時驗證用戶提供的用戶名和密碼及綁定的 IP 地址是否與數據庫中預先設定的數據相匹配,只有驗證通過才允許發送郵件。

?

二、實現步驟:

1. 建表

1) USERS 表: 用來存放用戶名、密碼及IP地址

2) TASK 表: 用來存放 WebService 接收到的任務列表

3) TASK_DETAIL 表: 用來關聯 TASK 表的 TASK ID,存放對應的每一位收件人是否發送成功

4) RUN_LOG 表: 每一次執行后臺程式產生一條記錄,存放發送成功的 TASK ID 列表及是否發生錯誤。

5) DEY_REPORT 表: 每天用 SMTP 發送報表的內容(檢查 RUN_LOG表是否出現錯誤)給SMTP管理員

6) CONFIG 表: 存放系統數據 (比如:系統管理員郵箱、SMTP 服務器地址、等等)

?

2.開發 WebService

代碼省略.

?

?

3.開發后臺 windows 應用程序

代碼省略

?

其它說明:

1. 調用 WEBSERVICE 時需要將文件轉換為 16進制字符串

2. 調用 WEBSERVICE 時可以把附件的建立時間/修改時間/存取時間通過字符串傳給 Webservice,保存附件時設置附件的時間,

?? 但是,使用SMTP時發送附件給 Lotus Notes 服務器后,使用 Lotus Notes 下載附件時,附件的建立時間變成了當前時間,

?? 所以,這個問題還沒有好的解決方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读