ASP.Net无法发送电子邮件

时间:2011-07-20 00:34:23

标签: c# asp.net

我正在尝试使用以下代码从asp.net(C#)发送电子邮件。

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

请建议我该怎么办。我试着按照论坛中的一些答案关闭防火墙,但没有运气。

提前谢谢

2 个答案:

答案 0 :(得分:3)

要使您的代码正常工作,您需要在本地计算机上运行SMTP服务器,该服务器接受127.0.0.1上的连接,例外情况表明这不是特殊情况或存在特权和/或配置的某些问题。< / p>

编辑: 根据您的操作系统,您可以将IIS配置为充当SMTP服务器。如果您使用的是Windows 2008,则需要在IIS 7(无SMTP服务器)之外使用IIS 6(包含SMTP服务器)。

答案 1 :(得分:1)

我遇到了同样的问题。

此端口因McAfee而被阻止 - &gt;访问保护 - &gt;防病毒标准保护 - &gt;防止群发邮件蠕虫发送邮件。

如果你可以删除那个或任何其他AV保护,你没事。 如果它是组织的保护政策,那么尝试切换端口。

我已经在Smtp4dev和C#应用程序中将端口更改为81并且它有效。