2009-09-08 100 views
1

我正在寫一個程序來使用asp.net發送郵件,它給我一個錯誤,因爲「SendUsing」配置值是無效的。這裏是我的代碼asp.net發送郵件

protected void Button2_Click(object sender, EventArgs e) 
{ 
    MailMessage msg = new MailMessage(); 
    msg.To = "[email protected]"; 
    msg.From = "[email protected]"; 
    msg.Subject = "hello"; 
    SmtpMail.Send(msg); 
} 
+2

你有9個問題,但仍然學習如何使用「代碼」選項? – Shoban 2009-09-08 09:45:58

+0

剛剛在代碼中注意到您的電子郵件ID。請替換或刪除它。 – Shoban 2009-09-08 09:46:36

+0

我認爲你剛剛通過發佈你的電子郵件地址sangita註冊了一桶垃圾郵件:) – MPritchard 2009-09-08 09:50:23

回答

3

您需要添加你要使用的SMTP服務器,像

System.Web.Mail.SmtpMail.SmtpServer = "mail.provider.com"; 

也許你可能想看看System.Net.Mail,這是.Net 2中的新郵件類,System.Web.Mail已過時。

+0

不是如果SMTP服務器是本地的,反正+1,因爲這是常見的原因。 – 2009-09-08 09:48:21

0

通常這個異常必須處理下面的代碼行(或者我應該說,下面的代碼行的情況下):

SmtpMail.SmtpServer = "mail.your-domain.com" 

默認情況下,如果沒有設置SmtpMail的SmtpServer,系統.Web.Mail應該使用localhost作爲默認屬性。但是,由於某種原因,這不會出現工作。

你可以做一個簡單的谷歌搜索這;-)

Source

0

一個附加註釋:我發現Server 2008上,你的網站需要在應用程序池比其他身份運行ApplicationPoolIdentity(默認值)用於通過本地主機發送電子郵件(即,沒有SmtpMail.SmtpServer集)。所有其他身份都可以工作(NetworkService,LocalService,LocalSystem),而不是ApplicationPoolIdentity。

如果將SmtpMail.SmtpServer指定爲null或localhost以外的其他值,則可以使用ApplicationPoolIdentity。