2011-07-20 186 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#应用程序和它的工作。