ASP.Net无法发送电子邮件

本文关键字:电子邮件 Net ASP | 更新日期: 2023-09-27 18:02:30

我正在尝试使用下面的代码从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

请建议我该做什么。根据论坛上的一些答案,我试着关闭防火墙,但没有运气。

提前感谢

ASP.Net无法发送电子邮件

要使您的代码正常工作,您需要在本地机器上运行一个SMTP服务器,该服务器接受127.0.0.1上的连接,异常暗示这不是这种情况,或者是特权和/或配置存在一些问题。

编辑:根据您的操作系统,您可以配置IIS作为SMTP服务器。如果你是在Windows 2008上,那么你需要使用IIS 6(包含SMTP服务器)除了IIS 7(没有SMTP服务器)。

我也有同样的问题。

此端口由于McAfee ->访问保护->反病毒标准保护->防止群发邮件蠕虫发送邮件而被阻止。

如果你可以删除它或任何其他AV保护,你就没事了。如果是组织的保护策略,请尝试切换端口。

我在Smtp4dev和c#应用程序中将端口更改为81,它工作了。