我已将 SendGrid 配置为为平台发送电子邮件。尽管如此,邮件仍在尝试使用 DefaultSmtpEmailNotificationSendingGateway 发送。
我在 VirtoCommerce.Platform.Web 项目 StartUp.cs 中找到了这段代码。
var emailNotificationSendingGatewayName = ConfigurationManager.AppSettings.GetValue("VirtoCommerce:Notifications:Gateway", "Default");
if (string.Equals(emailNotificationSendingGatewayName, "Default", StringComparison.OrdinalIgnoreCase))
{
emailNotificationSendingGateway = new DefaultSmtpEmailNotificationSendingGateway(settingsManager);
}
else if (string.Equals(emailNotificationSendingGatewayName, "SendGrid", StringComparison.OrdinalIgnoreCase))
{
emailNotificationSendingGateway = new SendGridEmailNotificationSendingGateway(settingsManager);
}
if (emailNotificationSendingGateway != null)
{
container.RegisterInstance(emailNotificationSendingGateway);
}
基于此,我已经尝试过了。
- 在要覆盖的 Azure AppService 中将应用设置设置为“SendGrid”。
- 然后从 web.config 中删除默认应用设置。
- 然后在 web.config 中将显式设置添加到“SendGrid”。
- 然后从 Azure AppService 中删除应用设置
尽管如此,邮件仍在上述四个状态中路由到 DefaultSmtpEmailNotificationSendingGateway。