2011-07-20 233 views
3

我想使用下面的代碼從asp.net(C#)發送電子郵件。ASP.Net無法發送電子郵件

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net.Mail; 
using System.Web; 
using MovieReviews.Utils; 

/// <summary> 
/// Summary description for EmailUtil 
/// </summary> 
public class EmailUtil 
{ 
public static void SendEmail(string to, string name, string from, string body) 
{ 
    try 
    { 
     SmtpClient smtpClient = new SmtpClient(); 
     MailMessage message = new MailMessage(); 

     MailAddress fromAddress = new MailAddress(from, name); 

     smtpClient.Host = "localhost"; 

     //Default port will be 25 

     smtpClient.Port = 25; 

     //From address will be given as a MailAddress Object 

     message.From = fromAddress; 

     // To address collection of MailAddress 

     message.To.Add(to); 
     message.Subject = "Feedback"; 


     message.IsBodyHtml = false; 

     // Message body content 

     message.Body = body; 

     // Send SMTP mail 

     smtpClient.Send(message); 

    } 
    catch (Exception ex) 
    { 
     Logger.LogError(ex); 
     throw ex; 
    } 

} 
} 

當我嘗試執行它說

試圖通過其 訪問權限不允許的方式來訪問一個插座127.0.0.1:25

請建議我該怎麼做。我試圖根據論壇中的一些答案關閉防火牆,但沒有運氣。

預先感謝您

回答

3

爲您的代碼工作,你需要有一個SMTP服務器,接受上127.0.0.1連接在本地機器上運行,異常意味着這兩種情況並非如此,或者一些問題存在特權和/或配置。

編輯: 根據您的操作系統,你可以配置IIS來充當SMTP服務器。如果您使用的是Windows 2008,則需要使用IIS 7(不包括SMTP服務器)以外的IIS 6(包含SMTP服務器)。

1

我有同樣的問題。

這個端口被封鎖,由於邁克菲 - >訪問保護 - >防病毒保護標準 - >防止大量郵件蠕蟲形式發送郵件。

如果你能刪除或任何其他防病毒保護你的罰款。 如果它是對組織的保護策略,則嘗試切換端口。

我已經更改端口81的Smtp4dev,並在C#應用程序和它的工作。