Asp.Net Forums之郵件發送

來源:互聯網
上載者:User
原文:http://blog.joycode.com/dotey/archive/2005/01/15/43113.aspx

Asp.Net Forums之郵件發送

Forums中很多地方要用到郵件發送,如:郵件註冊、找回密碼、郵件訂閱等。

添加新貼的代碼流程非常慢。每次添加文章,應用程式首先要確保沒有重複貼,然後格式化文章內容和表情映像,記號並索引,如果必要還要將文章添加到相應的隊列中,對附件進行有效性檢查,最終完成發貼後,給預訂者發出 e-mail 通知。顯然,這裡做的工作太多。索引文章是一個很耗時的操作,此外,內建的 System.Web.Mail 功能要與 SMTP 伺服器串連並順序發送郵件。當特定文章或主題預定者數量增加時,發送文章的執行時間會越來越長。

  並不是每個請求都需要索引郵件,所以Forums採用的是批量集中處理,並且一次只索引25個文章或每隔五分鐘發送一次郵件。定時器這部分在我的上一個blog有說明《asp.net forums中定時器的應用》

在Asp.Net中郵件發送非常容易,一般都需要Smtp伺服器,但是一些免費信箱的Smtp伺服器(如smtp.163.com)都需要帳號密碼驗證。在MailMessage對象的Filds集合中加入以下內容即可:

Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1" );
//basic authentication
Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", txtUserName.Text );
// 設定smtp伺服器登入帳號(如您163.com的信箱帳號)
Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", txtPassword.Text );
// 設定smtp伺服器登入密碼 (如您的163.com的信箱帳號密碼)

但是使用免費的Smtp伺服器一定要注意一個問題,就是發送郵件的帳號(即Message.From)必須和上面的Smtp伺服器登入帳號一致,否則將會導致找不到cdo對象的異常。

範例程式碼:
郵件發送範例程式碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.