zoukankan      html  css  js  c++  java
  • asp.net core 2.0 邮件发送服务

      网上找了一下,发现一个很不错的邮件发送服务Mailgun,首先要注册Mailgun账号,获得apikey以及domainame;

      然后项目中安装nuget:

      

      配置并注册服务:

      

      public interface IEmailSender
        {
            Task SendEmailAsync(string email, string subject, string message);
        }

      

      public class EmailSender:IEmailSender
        {
            private readonly EmailSettings _emailSettings;
    
            public EmailSender(IOptions<EmailSettings> emailOptions)
            {
                _emailSettings = emailOptions.Value;
            }
    
            public Task SendEmailAsync(string account, string subject, string mess)
            {
                var domainName = _emailSettings.DomainName;
                var apiKey = _emailSettings.ApiKey;
                var sender = new MailgunSender(domainName, apiKey);
                Email.DefaultSender = sender;
                var email = Email.From(_emailSettings.From, "XXXXXXX平台")
                    .To(account)
                    .Subject(subject)
                    .Body(mess);
                return email.SendAsync();
            }
        }

     

      public class EmailSettings
        {
            public string ApiKey { get; set; }
            public string ApiBaseUri { get; set; }
            public string RequestUri { get; set; }
            public string From { get; set; }
            public  string DomainName { get; set; }
        }
            #region 注册邮件服务
                services.Configure<EmailSettings>(Configuration.GetSection("EmailSettings"));
                services.AddTransient<IEmailSender, EmailSender>();
                #endregion

      调用:

      public class TestController : Controller
        {
            private readonly IOptions<EmailSettings> _emailOptions;
            private readonly ILogger<TestController> _logger;
            private readonly IEmailSender _emailSender;
    
            public TestController(IOptions<EmailSettings> emailOptions,ILogger<TestController> logger,IEmailSender emailSender)
            {
                _emailOptions = emailOptions;
                _logger = logger;
                _emailSender = emailSender;
            }
            public async Task<IActionResult> Index()
            {
                try
                {
                    string code = "259878";
                    await _emailSender.SendEmailAsync("3sdaasdadasdad6@qq.com",EmailType.Captcha ,$"验证码:{code},如非本人操作请忽略。");
                    _logger.LogInformation("发送邮件,to:"+"3asdasdadad6@qq.com"+",类型:"+EmailType.Captcha);
                    return Content("ok");
                }
                catch (Exception e)
                {
                    return Content("出错了:"+e.Message);
                }
                
            }
        }

      收到验证码:

  • 相关阅读:
    性能测试通过几种方式造数据
    linux 下shell中if的“-e,-d,-f”的用法
    JVM系列二:GC策略&内存申请、对象衰老
    如何使用 opencv 加载 darknet yolo 预训练模型?
    libtorch 哪些函数比较常用?
    如何使用 libtorch 实现 VGG16 网络?
    如何使用 libtorch 实现 AlexNet 网络?
    如何使用 libtorch 实现 LeNet 网络?
    如何在 windows 配置 libtorch c++ 前端库?
    window 如何枚举设备并禁用该设备和启用该设备?如何注册设备热拔插消息通知?
  • 原文地址:https://www.cnblogs.com/hany-sundigital/p/10030131.html
Copyright © 2011-2022 走看看