You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service付费层无法通过Microsoft 365中继发送SMTP邮件

问题:Azure App Service付费层无法通过Microsoft 365 SMTP中继发送邮件

我们拥有Microsoft 365商务账户,计划在Azure App Service托管的.NET Core C# Blazor应用中发送邮件。已按照微软文档的选项3(配置连接器以使用Microsoft 365或Office 365 SMTP中继)在365账户的Exchange中完成外部中继设置。

当App Service Plan为免费层时,应用能成功通过自有域邮箱(noreply@ourcompany.com)向外部Gmail地址发送邮件,说明中继配置是有效的。但升级至付费层(已尝试Basic B1和Standard S1)后,邮件发送失败,报错信息如下:

System.Net.Mail.SmtpException: Mailbox unavailable. The server response was: 5.7.64 TenantAttribution; Relay Access Denied [ValidationStatus of '' is EmptyCertificate]

切回免费层后,邮件发送功能恢复正常。

以下是Blazor应用中调用发送邮件的方法、邮件服务代码及appsettings配置:

Blazor应用发送邮件方法

private async Task SendEmail()
{
    MailMessage msg = new MailMessage
    {
        From = new MailAddress("someemailaddress@ourcompany.com"),
        Subject = "365 Test",
        Body = "Hello, this is a test."
    };

    msg.To.Add(new MailAddress("someexternalemail@gmail.com"));

    await EmailService.SendAsync(msg);
}

邮件服务代码

public interface ITestEmailService
{
    Task SendAsync(MailMessage mailMessage);
}

public class TestEmailService : ITestEmailService
{
    private readonly NetworkCredential networkCredentials;
    private readonly SmtpClientConfiguration smtpClientConfiguration;

    public TestEmailService(SmtpClientConfiguration smtpClientConfiguration)
    {
        this.smtpClientConfiguration = smtpClientConfiguration;

        networkCredentials = new NetworkCredential
        {
            UserName = smtpClientConfiguration.Username,
            Password = smtpClientConfiguration.Password
        };
    }

    public async Task SendAsync(MailMessage mailMessage)
    {
        using var smtpClient = new SmtpClient();
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = networkCredentials;
        smtpClient.Host = smtpClientConfiguration.Host;
        smtpClient.Port = smtpClientConfiguration.Port;
        smtpClient.EnableSsl = smtpClientConfiguration.Ssl;
        smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

        if (mailMessage != null)
            await smtpClient.SendMailAsync(mailMessage);
    }
}

appsettings配置

"SmtpClientConfiguration": {
    "Username": "",
    "Password": "",
    "Host": "<our company MX record>",
    "Port": 25,
    "Ssl": true
},

请问是否有人遇到过此类问题,或知晓付费层无法发送邮件的原因?

内容的提问来源于stack exchange,提问作者Trystan Lapinig-Wilcock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 06:30:18