我正在尝试向虚假的电子邮件地址发送电子邮件并获取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()}");
}