Asp.net 更改ABP SmtpEmailSender中的默认发件人电子邮件地址

Asp.net 更改ABP SmtpEmailSender中的默认发件人电子邮件地址,asp.net,aspnetboilerplate,Asp.net,Aspnetboilerplate,我正在使用ASP.NET样板框架发送邮件通知。我想根据场景更改发件人的邮件地址(一个用于员工,另一个用于最终用户) 请告知我如何在运行时更改发件人邮件地址(默认配置除外) 提前感谢。这里有两种方法: iemailssender具有一个从参数接收: mailSender.SendAsync( 发件人:isEmployee?employeeSenderEmailAddress:endUserSenderEmailAddress, 收件人:toEmailAddress, 主题:邮件主题, 正文:邮件正

我正在使用ASP.NET样板框架发送邮件通知。我想根据场景更改发件人的邮件地址(一个用于员工,另一个用于最终用户)

请告知我如何在运行时更改发件人邮件地址(默认配置除外)

提前感谢。

这里有两种方法:

  • iemailssender
    具有一个从参数接收

    mailSender.SendAsync(
    发件人:isEmployee?employeeSenderEmailAddress:endUserSenderEmailAddress,
    收件人:toEmailAddress,
    主题:邮件主题,
    正文:邮件正文,
    isBodyHtml:true);
    
  • 您可以子类化
    SmtpEmailSenderConfiguration
    ,注入
    IAbpSession
    并覆盖
    UserName
    getter。这样,您就抽象了电子邮件地址逻辑

    公共重写字符串用户名
    {
    得到
    {
    var isEmployee=AbpSession.UserId==0;//示例
    返回isEmployee?employeeSenderEmailAddress:endUserSenderEmailAddress;
    }
    }
    
    请记住在模块的
    预初始化
    方法中更换服务:

    Configuration.ReplaceService(typeof(IEmailSenderConfiguration),()=>
    {
    IocManager.IocContainer.Register(
    用于()的组件
    .由()实施
    .生活方式
    );
    });
    
  • 这里有两种方法:

  • iemailssender
    具有一个从
    参数接收

    mailSender.SendAsync(
    发件人:isEmployee?employeeSenderEmailAddress:endUserSenderEmailAddress,
    收件人:toEmailAddress,
    主题:邮件主题,
    正文:邮件正文,
    isBodyHtml:true);
    
  • 您可以子类化
    SmtpEmailSenderConfiguration
    ,注入
    IAbpSession
    并覆盖
    UserName
    getter。这样,您就抽象了电子邮件地址逻辑

    公共重写字符串用户名
    {
    得到
    {
    var isEmployee=AbpSession.UserId==0;//示例
    返回isEmployee?employeeSenderEmailAddress:endUserSenderEmailAddress;
    }
    }
    
    请记住在模块的
    预初始化
    方法中更换服务:

    Configuration.ReplaceService(typeof(IEmailSenderConfiguration),()=>
    {
    IocManager.IocContainer.Register(
    用于()的组件
    .由()实施
    .生活方式
    );
    });
    

  • 您可以在abp.dll中使用下面的
    iemailssender
    方法。参考

    )

    您只需根据需要设置
    from
    to
    参数


    您可以根据角色或权限区分员工和其他用户。

    您可以在abp.dll中使用下面的
    iemailssender
    方法。参考

    )

    您只需根据需要设置
    from
    to
    参数

    您可以根据角色或权限区分员工和其他用户

    mailSender.SendAsync(
      to: toEmailAddress,
      subject: mailSubject,
      body: mailBody,
      isBodyHtml: true);
    
    void Send(
    string from,
    string to,
    string subject,
    string body,
    bool isBodyHtml = true