ASP.Net 无法发送电子邮件

3

我正在尝试使用以下代码从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个回答

3

要使您的代码工作,您需要在本地计算机上运行一个SMTP服务器,并接受127.0.0.1上的连接。异常表明这种情况不存在,或者存在某些权限和/或配置问题。

编辑: 根据您的操作系统,您可以配置IIS作为SMTP服务器。如果您使用的是Windows 2008,则需要同时使用IIS 6(包含SMTP服务器)和IIS 7(没有SMTP服务器)。


1
我遇到了同样的问题。
这个端口被 McAfee 阻止了 -> 访问保护 -> 防病毒标准保护 -> 防止大规模邮件蠕虫发送邮件。
如果您可以删除该项或任何其他 AV 保护,那么就没问题了。如果这是组织中的保护策略,则尝试切换端口。
我已将 Smtp4dev 和 C# 应用程序中的端口更改为 81,并且它起作用了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接