首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能在使用FluentEmail发送电子邮件之前更改发件人

不能在使用FluentEmail发送电子邮件之前更改发件人
EN

Stack Overflow用户
提问于 2022-04-14 12:20:35
回答 1查看 172关注 0票数 0

由于发件人每天或每小时只能发送有限的电子邮件,我需要根据接收者的数量选择合适的发件人,我正在使用FluentEmail Mailkit发件人并尝试这样做,但仍然从DI中配置的默认发件人发送邮件。

代码语言:javascript
运行
复制
fluentEmail.Sender = GetFluentEmailSender(fluentEmail.Sender, fluentEmail.Data.ToAddresses.Count);

DI配置:

代码语言:javascript
运行
复制
services.AddFluentEmail(defaultFromEmail, defaultFromName).
                AddRazorRenderer(templateRootFolder);

services.AddSingleton<ISender>(new MailKitSender(
                new SmtpClientOptions
                {
                    Server = notificationSettings.EmailSettings.MailKitSender.Server,
                    Port = notificationSettings.EmailSettings.MailKitSender.Port,
                    Password = password,
                    UseSsl = notificationSettings.EmailSettings.MailKitSender.UseSsl,
                    User = notificationSettings.EmailSettings.MailKitSender.UserName,
                    SocketOptions = (MailKit.Security.SecureSocketOptions)notificationSettings.EmailSettings.MailKitSender.SocketOptions,
                    RequiresAuthentication = notificationSettings.EmailSettings.MailKitSender.RequiresAuthentication
                }

                ));

这是个窃听器还是我滥用了它?

EN

回答 1

Stack Overflow用户

发布于 2022-04-21 10:03:56

也许您不太了解Asp.Net核心应用程序是如何启动的。如果您感兴趣,您可以阅读源代码。

简而言之,启动文件中的服务注册只执行一次,这就是为什么不能在services.AddSingleton<ISender>中修改发送方信息的原因。

如果您想更改发件人的信息,我建议您可以创建IEmailService,在这种方法中,我们可以从appsettings.json文件中读取配置。我们只需要在没有寄件人信息的情况下注册这个移民服务。

您可以参考以下博客:

ASP.NET核心3.1 -通过MailKit通过SMTP发送电子邮件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71871504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档