在通过C#发送电子邮件时给出的内部异常,端口25没有正在运行的进程

时间:2016-01-14 07:08:24

标签: c# visual-studio email smtp protocols

我正在尝试通过C#.NET code发送电子邮件,但提供内部例外:

An attempt was made to access a socket in a way forbidden by its access permissions

发送电子邮件的代码是,请告知我的错误(代码将在我们自己的网络下的本地域中运行):

MailMessage mail = new MailMessage("email1@yahoo.com","email2@gmail.com"); 
smtpClient client = new SmtpClient(); 
client.Port = 25; 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.UseDefaultCredentials = false; 
client.Host = "SecretIP of SMPT Server OR IP"; 
mail.Subject = "This is a test email."; 
mail.Body = "This is my test email body"; 
bool mailSent = false; 
bool serverListening = false; 

try 
{ 
    Ping p = new Ping(); 
    PingReply pr = p.Send(client.Host, 5000); 
    if(pr.Status == IPStatus.Success) 
    { 
        serverListening = !(serverListening); 
        client.Send(email); 
        emailSent = !(emailSent); 
    } 
}
catch (Exception ex)
{
    Exception ex2 = ex;
    string errorMessage = string.Empty;
    while (ex2 != null)
    {
        errorMessage += ex2.ToString();
        ex2 = ex2.InnerException;
    }
}

1 个答案:

答案 0 :(得分:0)

第1步:

首先,从email server's

ping您的cmd.exe IP /别名

在您的情况下,电子邮件服务器的IP为SecretIP of SMPT Server OR IP
(即client.Host的值)
所以你的命令将是:

ping IP
//OR
ping Alias Name

第2步:

现在您已确认IP已成功ping或不遵循以下说明:

        
  • 如果没有ping服务器IP,那么您应该咨询内部IT部门团队,询问安装Microsoft Exchange Server的服务器IP。
  •     
  • 如果正在成功ping通服务器IP,则表示您正在ping的IP是可访问的,但
    • 服务器/主机上未安装Microsoft Server Exchange Server,并且您正在使用该服务器/主机client.Host
    • 由于此IP上未安装Microsoft Exchange Server,原因是邮件失败。
    • 向IT部门询问正确的IP或是否有在Outlook中为您自己的域配置的电子邮件然后转到Outlook - 文件 - 信息 - 帐户设置 - 电子邮件标签....双击它并复制别名。此别名是具有您的EMAILS的服务器,并使用您的电子邮件进行大量处理: - )

提示注意:

访问Microsoft Exchange Server Link以了解详情。