2016-05-10 25 views
0

您好,我收到一個有趣的錯誤。當爲ASP.NET/MVC應用程序的一部分運行我能,如果我使用的Windows應用程序,但相同的代碼來發送電子郵件引發的SendMessage錯誤說 - System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissionsSmtpClient從Windows應用程序發送郵件,但在ASP.NET/MVC失敗

我使用的代碼是:

using (MailMessage message = new MailMessage("[email protected]", "[email protected]")) 
       { 
        message.CC.Add("[email protected]"); 
        message.IsBodyHtml = true; 
        message.Subject = "Test subject"); 
        message.Body = "Test Body"; 
        SmtpClient client = new SmtpClient(); 
        client.Host = "abc.com"; 
        client.Port = 25; 
        client.Send(message); 
       } 

有人可以建議這裏有什麼問題。

感謝, 一個

+1

聽起來像你的Web服務器着聯繫郵件服務器.. – BugFinder

+0

什麼可能是這個問題的解決。 – Preets

+0

通過防火牆獲得訪問權限通常是.. – BugFinder

回答

0

獲取或設置用於SMTP事務的主機名或IP地址。

as msdn表示。也許你不能使用「abc.com」作爲主機。

爲Gmail可能是它應該是

client.Host = "smtp.gmail.com"; 

它爲我工作

using (MailMessage message = new MailMessage("[email protected]", "[email protected]")) 
{ 
    message.CC.Add("[email protected]"); 
    message.IsBodyHtml = true; 
    message.Subject = "Test subject"; 
    message.Body = "Test Body"; 
    SmtpClient client = new SmtpClient(); 
    client.Host = "smtp.gmail.com"; 
    client.Port = 25; 
    client.Credentials = new NetworkCredential("yourEmail", "Password"); 
    client.EnableSsl = true; 
    client.UseDefaultCredentials = false; 
    client.Send(message); 
} 
+0

主機名是正確的,因爲它在Windows應用程序中工作。但爲什麼它在瀏覽器應用程序中失敗。它也適用於我的gmail。 – Preets

+0

我不確定。但是你需要一個主機的現有IP地址來發送電子郵件 –