不从SmtpClient.Send(MailMessage)抛出SmtpFailedRecipientException

时间:2017-10-30 20:58:52

标签: c# .net email

我正在尝试向虚假的电子邮件地址发送电子邮件并获取SmtpFailedRecipientException,但是当我将电子邮件发送到公司域中的虚假地址时,不会抛出任何异常。我正在使用.NET 4.5.2在VS2015中进行开发,并在Windows 7环境中运行控制台应用程序。

此代码正常运行并在电子邮件地址有效时发送电子邮件,当我尝试发送无效的Gmail或Hotmail地址时,它甚至会抛出SmtpFailedRecipientException。似乎唯一没有抛出异常的时候是我尝试发送到公司域内的假地址。我们公司使用Office365,当我尝试从我的地址发送到虚假地址时,我的收件箱中收到“无法送达”的消息。

有谁知道为什么会这样?我怀疑它可能是邮件服务器上的设置,但我没有访问邮件服务器来检查和查看。我也可能只是遗漏了一些明显的东西并且犯了一个菜鸟错误。

// Initialize SMTP client
SmtpClient client = null;
try
{
    string from = "myEmailAddress@mycompany.com", to = "fakeEmailAddress@mycompany.com";

    // Build client
    client = new SmtpClient("mail.mycompany.com");
    client.Port = 25;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;

    // Create message
    using (MailMessage message = new MailMessage(from, to)
    {
        Subject = "Test email to fake address",
        Body = "This email won't be sent"
    })
    {
        // Send message
        client.Send(message);
    }
}
catch (SmtpFailedRecipientException ex)
{
    Console.WriteLine($"SmtpFailedRecipientException caught.{Environment.NewLine}{ex.ToString()}");
}
catch (Exception ex)
{
    Console.WriteLine($"Exception caught.{Environment.NewLine}{ex.ToString()}");
}

0 个答案:

没有答案