当前位置: 首页 > news >正文

网站建设公司利润怎么样长沙网站制作作

网站建设公司利润怎么样,长沙网站制作作,作网站流程,wordpress 付费模版前言网站开发中#xff0c;经常碰到需要发送邮件的场景。比如#xff0c;重置用户密码#xff0c;需要执行下列流程#xff1a;用户在重置页面输入邮箱地址进入邮箱#xff0c;使用获得的重置链接打开重置页面输入新密码一般来说#xff0c;重置链接都需要包含一个token值… 前言网站开发中经常碰到需要发送邮件的场景。比如重置用户密码需要执行下列流程用户在重置页面输入邮箱地址进入邮箱使用获得的重置链接打开重置页面输入新密码一般来说重置链接都需要包含一个token值用于保证当前重置操作是正确的来源如下图:问题为了将上面的业务实现示例代码如下[ApiController] [Route([controller])] public class ResetController : ControllerBase {private readonly Dictionarystring,string _cache new Dictionarystring, string();[HttpGet]public void Get([FromQuery] string email){var token  Guid.NewGuid().ToString(N);_cache.Add(token, email);//发送邮件smtpServer、from来源于配置using (var smtpClient  new SmtpClient(smtpServer,25)){smtpClient.Send(from, email, 重置密码, token);}}[HttpPost]public string Post(string token, string newPassword){var email  _cache[token];//重置密码逻辑return email;} }可以发现如果要拿到token我们必须获得邮件内容。怎么办当然有很多种解决方案比如从缓存获取token但是那样会与业务内部实现强耦合。在这里我们用Smtp4dev去真实的获得邮件。Smtp4devSmtp4devhttps://github.com/rnwood/smtp4dev用于开发和测试的虚拟SMTP电子邮件服务器。可以让你在测试应用程序时无需向真实客户发送邮件也无需使用特殊配置设置复杂的真实电子邮件服务器。安装非常简单直接执行下列命令dotnet tool install -g Rnwood.Smtp4dev然后执行下列命令运行Smtp4devsmtp4dev --urlshttps://localhost:9000 --dbd:\codes\smtp4dev.db--urls 管理页面访问地址--db 邮件存储Sqlite数据库后面测试会用到smtp4dev对应的SMTP服务器地址为localhost:25。测试用例测试用例代码很简单[Fact] public void Test1() {var controller  new ResetController();var email  user_Guid.NewGuid().ToString(N)  localhost;controller.Get(email);var token  GetToken(email);var result  controller.Post(token,111);Assert.Equal(email, result); }GetToken将从邮件中获取token。获取邮件虽然smtp4dev提供了API来获取邮件但是我们这里使用更简单的方式直接从数据库读取邮件。首先创建DbContext:public class Smtp4devContext : DbContext {public DbSetMessage Messages { get; set; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlite(DataSourced:\codes\smtp4dev.db);} }public class Message { public string Id { get; set; }public string To { get; set; }public string ReceivedDate { get; set; }public string Data { get; set; } }然后获取指定收件人的最新邮件private static Message GetMessage(string email) {return new Smtp4devContext().Messages.Where(p  p.To  email).OrderByDescending(p  p.ReceivedDate).First(); }最后从邮件的Data属性中分析出token:private string GetToken(string email) {var message  GetMessage(email);var lines  message.Data.Split(\r\n, StringSplitOptions.RemoveEmptyEntries);return lines.Last(); }运行测试成功结论如果你在开发和测试时需要发送邮件试试Smtp4dev吧如果你觉得这篇文章对你有所启发请关注我的个人公众号”My IO“记住我
http://www.zqtcl.cn/news/651461/

相关文章:

  • 淄博优化网站企业营销型网站做的好
  • 玉泉营网站建设网络营销公司组织架构
  • 网上有专业的做网站吗最新网站域名ip地址查询
  • 大理网站制作公司北京seo服务商找行者seo
  • 有关网站建设合同wordpress 使用
  • 外贸商城网站制作公司毕业设计做系统网站
  • 曲阜住房城乡建设局网站php用什么工具做网站
  • 深圳网站开发奇辰科技视觉vi设计系统
  • 网站开发与管理期末考试工商年检在哪个网站做
  • 网站建设有什么系统深圳微网站
  • 网站建设算什么专业企业建设网站需要注意什么
  • 太原cms建站模板建设部网站监理注销查询
  • 流量对网站排名的影响因素网站内容的作用
  • 彩钢做网站能赚钱吗合肥市住房和城乡建设厅
  • 顺德网站建设itshunde罗村建网站
  • 网站开发语言开发十大免费货源网址
  • 网站建设要那些收费项如何做自己的淘客网站
  • 郴州文明网网站网站设计策划书3000字
  • 免费学习资源网站网站维护得多久
  • 电子商务网站建设考试重点长沙网站推广平台
  • 商业性质网站建设步骤佛山企业网站优化
  • 做网站投入网站设计与开发未来发展方向
  • 网站seo优化外包顾问网站ip解析
  • 贵阳建网站公司兼职网站推广如何做
  • 建设企业网站公司价格page做网站
  • 直播网站建设模板跨境电商选品
  • 购物网站有哪些shop++是什么
  • 自动化优化系统网站建设网站建设类文章
  • 网站建设以及推广提案书支付通道网站怎么做
  • 上海兼职做网站凤凰军事新闻