• abp发送邮件AbpMailKit


    1、在EntityFramework项目中:Migrations/SeedData/DefaultSettingsCreator.cs中配置邮件服务:

    public void Create()
            {
                #region Emailing
                string mail_smtp = ConfigurationManager.AppSettings["mail_smtp"];
                string mail_main = ConfigurationManager.AppSettings["mail_main"];
                string mail_pwd = ConfigurationManager.AppSettings["mail_pwd"];
                string mail_port = ConfigurationManager.AppSettings["mail_port"];
                string mail_ssl = ConfigurationManager.AppSettings["mail_ssl"];
                string mail_name = ConfigurationManager.AppSettings["mail_name"];
    
                AddSettingIfNotExists(EmailSettingNames.DefaultFromAddress, mail_main);
                AddSettingIfNotExists(EmailSettingNames.DefaultFromDisplayName, mail_name);
                AddSettingIfNotExists(EmailSettingNames.Smtp.Port, mail_port);
                AddSettingIfNotExists(EmailSettingNames.Smtp.Host, mail_smtp);
                AddSettingIfNotExists(EmailSettingNames.Smtp.UserName, mail_main);
                AddSettingIfNotExists(EmailSettingNames.Smtp.Password, mail_pwd);
                AddSettingIfNotExists(EmailSettingNames.Smtp.Domain, "");
                AddSettingIfNotExists(EmailSettingNames.Smtp.EnableSsl, mail_ssl);
                AddSettingIfNotExists(EmailSettingNames.Smtp.UseDefaultCredentials, "false");
                #endregion
    
                //Languages
                AddSettingIfNotExists(LocalizationSettingNames.DefaultLanguage, "en");
            }

    2、在Web项目中config配置邮件服务器

    <appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <!-- 邮件服务 -->
        <add key="mail_smtp" value="smtp.exmail.qq.com" />
        <add key="mail_main" value="xxx@xxx.com" />
        <add key="mail_pwd" value="xxx" />
        <add key="mail_port" value="123" />
        <add key="mail_ssl" value="true" />
        <add key="mail_name" value="admin" />
      </appSettings>

    3、在项目Core中nuget安装:AbpMailKit,然后在Core中找到 xxxCoreModule.cs
    using Abp.MailKit;

    [DependsOn(typeof(AbpZeroCoreModule),typeof(AbpMailKitModule))]
        public class AbpFrameworkCoreModule : AbpModule{...}

    4、在Core项目下面建一个类TaskManager

    using Abp.Domain.Services;
    using Abp.Net.Mail;
    using Abp.Net.Mail.Smtp;
    
    namespace AbpFramework.Base
    {
        public class TaskManager : IDomainService
        {
            private readonly IEmailSender _emailSender;
    
            public TaskManager(
            IEmailSender emailSender,
            ISmtpEmailSenderConfiguration smtpEmialSenderConfigtion
            )
            {
                _emailSender = emailSender;
            }
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="emailAddress">目标邮箱</param>
            /// <param name="subject">邮件标题</param>
            /// <param name="body">邮件内容</param>
            public void SendMail(string emailAddress, string subject, string body)
            {
                try
                {
                    //TODO:发送一份邮件通知,所有调用该方法的地方的文档都需要坚持调整,暂时屏蔽邮件异常
                    _emailSender.SendAsync(
                        to: emailAddress,
                        subject: subject,
                        body: body,
                        isBodyHtml: true
                    );
                }
                catch (System.Exception ex)
                {
                }
            }
        }
    }

    5、调用,在Application项目中

    [AbpAuthorize]
    public class DispatchAppService : ApplicationService
    {
        private readonly TaskManager _taskManager;
        public DispatchAppService(TaskManager taskManager)
        {
            _taskManager = taskManager;
        }
        public void SendMail()
        {
            _taskManager.SendMail("abc@abc.com", "标题", "Html内容");
        }
    }

     人家的邮件发送,有点复杂:https://www.cnblogs.com/Wddpct/p/5919507.html

  • 相关阅读:
    卡尔曼滤波公式
    在博客园主页添加github链接
    博客园插入latex公式
    Leetcode刷题(2020/03/20)
    git设置http代理
    ubuntu下解压.zip文件乱码
    Linux系统中的变量PATH
    【windows】在控制面板卸载软件的时候,出现2502,2503的问题
    替换openjdk的版本时遇到报错Transaction check error
    安装Python3.6.4后,在使用numpy时报错RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  • 原文地址:https://www.cnblogs.com/xsj1989/p/14246915.html
Copyright © 2020-2023  润新知