2015-11-06 153 views
1

我想從我的網站的電子郵件「[email protected]」發送電子郵件。 但有一個錯誤,並且電子郵件不發送。 在我的代碼和錯誤:在asp.net中發送電子郵件

public void SendMail(string Subject, string To, string Body) 
{ 
    SmtpClient MyMail = new SmtpClient(); 
    MailMessage MyMsg = new MailMessage(); 
    MyMail.Host = "[email protected]"; 
    MyMsg.To.Add(new MailAddress(To)); 
    MyMsg.Subject = Subject; 
    MyMsg.SubjectEncoding = Encoding.UTF8; 
    MyMsg.IsBodyHtml = true; 
    MyMsg.From = new MailAddress("[email protected]", "myname"); 
    MyMsg.BodyEncoding = Encoding.UTF8; 
    MyMsg.Body = Body; 
    MyMail.UseDefaultCredentials = false; 
    NetworkCredential MyCredentials = new NetworkCredential("[email protected]", "pass"); 
    MyMail.Credentials = MyCredentials; 
    MyMail.Send(MyMsg); 
} 

這是錯誤: error message

+0

你是否檢查了它告訴你的異常的狀態和響應屬性? –

+0

您可以請將錯誤消息包含爲文本嗎? – Scott

+1

我懷疑「[email protected]」是一個SMTP主機的有效名稱 – Steve

回答

1

你是誤會什麼SmtpClient主機屬性用於。

這裏這行代碼是錯誤的...

MyMail.Host = "[email protected]"; 

MyMail.Host應該指向您的SMTP服務器 - 你試圖將其設置爲發件人地址。

你已經在你的MailMessage對象設置發件人地址,詮釋,他的線如下所示...

MyMsg.From = new MailAddress("[email protected]", "myname"); 

所以,只給你一個例子,我可能會在IP 10.1有一臺服務器。 0.5,它運行在端口25上的SMTP服務器您需要將您的MyMail.Host = "10.1.0.5",甚至更好的設置它在這樣的構造......

SmtpClient MyMail = new SmtpClient("10.1.0.5", 25); 

現在,這只是一個例子 - 我不知道知道您是否可以在哪裏設置SMTP服務器。但是如果你沒有設置SMTP服務器,那是你錯過的東西。如果您確實設置了它,則Host屬性應該是其IP或域名。

+0

我該如何設置SMTP服務器? –

+1

這是一個您將不得不進行的研究項目。只要說有很多選項,從Windows Server操作系統提供的內置SMTP服務器到付費的第三方軟件,再到開源選項。這個論壇有點偏離主題。通常,如果您爲擁有系統工程/ IT部門的公司工作,他們會爲您設置它。這不是一個真正的編程相關的任務 - 一旦你有一個工作的SMTP服務器,但你應該對你的代碼做的是正確地指出你的SmtpClient。 – Jim

+0

如果你想使用IIS作爲你的SMTP服務器,這可能會有幫助... https://technet.microsoft.com/en-us/library/cc772058(v=ws.10).aspx – Jim