ASP.NET C# 非同步程序(多執行緒)寄送郵件 (適合大量郵件)

之前因為公司的需求,需要寫道發送電子報的功能 ...

撇開效率的問題不說 ... 一封信一封信寄可以達到隱藏其他使用者,以及被判定為廣告郵件的機率

但是 如果人數一多 ... 就會出現等待過久的情況 ...

所以就寫了一個 非同步的郵件寄送 ..如下

PhoenixMail.aspx(僅列出部分)

PhoenixMail.aspx.cs

程式解說:

行18 將郵件字串分離

行19~21 非同步執行

行25 非同步執行方法主體

行28 宣告一個計時器

行33.34 設定SMTP位址 以及帳號密碼

行35.36開始計時器

行37~60一一寄出郵件

行62.計時器停止

行67 回傳訊息

行70 宣告一個非同步委派的方法(與非同步主體簽名碼相同)

行72 非同步回傳訊息的方法

以下 略

請自行修改"YourMail.com" "YourAccount" "YourPassword" 等等

以上 Phoenix 2008/11/14

  1. demo 2008/11/14 下午 08:24 回覆

    # re: ASP.NET C# 非同步程序寄送郵件 (適合大量郵件)

    那如果頁面關掉呢?=.=

  2. phoenix7765 2008/11/14 下午 08:41 回覆

    # re: ASP.NET C# 非同步程序寄送郵件 (適合大量郵件)

    to demo :
    頁面關掉不會有引響 ...

    因為他開了另外一個執行緒在跑哦!

  3. jeff377 2008/11/14 下午 09:24 回覆

    # re: ASP.NET C# 非同步程序(多執行緒)寄送郵件 (適合大量郵件)

    這類大量發送郵件的需求,比較不適合在頁面上直接執行;要使用排程方式在伺服端背景以多執行緖執行比較合適。

  4. dotjum 2008/11/14 下午 10:05 回覆

    # re: ASP.NET C# 非同步程序(多執行緒)寄送郵件 (適合大量郵件)

    我是使用 Windows Service ,之前有開多執行續,後來發現如果寄太快,幾乎都會被判斷成垃圾信或就連垃圾桶都沒出現,後來客戶的電子報,都先單用單執行緒來慢慢寄信,寄成功率就高許多,目前這邊大概是3萬封大概慢慢寄要10小時。
    又網頁來做需要消耗很大時間的工作,用板主分享的這招還不錯,謝謝分享了。

  5. demo 2008/11/15 上午 12:38 回覆

    # re: ASP.NET C# 非同步程序(多執行緒)寄送郵件 (適合大量郵件)

    可否詳細介紹一下,如何開啟另一個執行緒?

    相當有興趣

  6. ~深白色~ 2009/2/3 下午 07:37 回覆

    # re: ASP.NET C# 非同步程序(多執行緒)寄送郵件 (適合大量郵件)

    寫的很好,非常精緻...
    因為正好也在寫這類的程式,就剛好看搜尋到你的範例了^^
    加油~~

回應

標題 *
名稱 *
Email (將不會被顯示)
Url
回應
登入後使用進階評論
Please add 1 and 4 and type the answer here: