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
请建议我该做什么。根据论坛上的一些答案,我试着关闭防火墙,但没有运气。
提前感谢
要使您的代码正常工作,您需要在本地机器上运行一个SMTP服务器,该服务器接受127.0.0.1上的连接,异常暗示这不是这种情况,或者是特权和/或配置存在一些问题。
编辑:根据您的操作系统,您可以配置IIS作为SMTP服务器。如果你是在Windows 2008上,那么你需要使用IIS 6(包含SMTP服务器)除了IIS 7(没有SMTP服务器)。
我也有同样的问题。
此端口由于McAfee ->访问保护->反病毒标准保护->防止群发邮件蠕虫发送邮件而被阻止。
如果你可以删除它或任何其他AV保护,你就没事了。如果是组织的保护策略,请尝试切换端口。
我在Smtp4dev和c#应用程序中将端口更改为81,它工作了。