首页 > 解决方案 > .Net.Mail 不使用交换 SMTP 引发异常

问题描述

将 .Net.Mail 库与交换服务器一起使用时出现问题。问题是当域或电子邮件不存在时,我没有收到任何异常。

我的代码:

  public async Task SendEmailAsync(Email email)
  {
        SmtpClient _client = new SmtpClient("smtp.dummyExchange.cz");
        _client.Credentials = new System.Net.NetworkCredential("credential", "pass");
        _client.DeliveryMethod = SmtpDeliveryMethod.Network;
        _client.EnableSsl = true;
        _client.Port = 25;

        MailMessage mail = new MailMessage();
        mail.From = new MailAddress("fake@fake.cz");
        mail.To.Add('fake@gmail.fake');
        mail.Subject = 'subject';
        mail.Body = Getmailbody();
        mail.IsBodyHtml = true;

        string messageId = $"<{GenerateMessageId()}>";
        mail.Headers.Add("Message-ID", messageId);

        try
        {
            await _client.SendMailAsync(mail);
        }
        catch (Exception)
        {
            throw;
        }
        finally
        {
            mail.Dispose();
        }....

我尝试使用与外部中继 SMTP 服务器完全相同的代码,一切正常。所以要么是交换设置问题,要么我只是在交换中使用了错误的 SmtpClient?

编辑:

例如,当通过中继 smtp 服务器发送电子邮件时,我收到此异常:

"Mailbox unavailable. The server response was: 4.1.2 <fake@gmail.fake>: Recipient address rejected: Domain not found"

但是在使用exchange的时候,也不例外。

编辑:

交换版本:Exchange 2016 CU13

谢谢您的帮助。

标签: c#.netsmtpexchange-server

解决方案


推荐阅读