php - 发送验证码邮件有什么好的解决方案?

 mobiledu2502871537 发布于 2022-11-30 12:55

用户Passport系统,注册,找回密码都是通过邮件发送验证码,有什么好的方案实现。
我之前用的是私人的QQ邮箱,发现偶尔系统会来一封邮件要我输入验证码,而且就怕用多了会被腾讯拉黑或者自动移到垃圾箱处理。
还有就是什么情况下发送邮件需要用队列?

8 个回答
  • 以下情况需要用到邮件队列:
    1.给多个用户批量发送邮件的时候,必须异步调用队列发送,因为点击发送后,操作者有可能关闭了页面,此时只有后台异步发送邮件才不至于漏发邮件。
    2.注册 登录 找回密码 可用用短信平台验证码实现,也可用用邮件服务区实现。

    2022-11-30 13:08 回答
  • 曾经使用过阿里的免费企业邮箱,发送到国内的126,QQ和Gmail都没问题。
    其他的邮箱偶尔会出现在“垃圾邮件”里。

    使用异步实现一般会考虑使用消息队列,可以考虑django celery + RabbitMQ

    2022-11-30 13:08 回答
  • 你可以尝试这几个东东

    1. SendGrid

    2. MailGun

    3. SendCloud

    2022-11-30 13:08 回答
  • 邮件量大,比较耗时的情况下,可以采用异步的消息队列。将要发送的邮件塞入消息队列,你的当前流程就结束了,然后用消息中间件,订阅者自己订阅自己的发布者的消息,对收到的消息进行邮件发送。
    发送邮件代码如下:

     @Override
        public void sendText(String[] to, String subject, String content) {
            if (ENV_ONLINE.equals(environment)) {
                simpleMailMessage.setTo(to);
                simpleMailMessage.setSubject(subject);
            } else {
                simpleMailMessage.setTo(adminEmail);
                simpleMailMessage.setSubject(subject + Arrays.asList(to));
            }
            simpleMailMessage.setSentDate(new Date());
            final String result = content;
            simpleMailMessage.setText(content);
            mailSender.send(simpleMailMessage);
            logger.error("Mailsentto: " + Arrays.asList(simpleMailMessage.getTo()) + "\nContent: " + result);
        }
    2022-11-30 13:08 回答
  • 邮件发送量很大的话一般有去购买专门的服务。

    至于使用队列嘛,发邮件怎么说都是个耗时的操作,异步实现更好。

    2022-11-30 13:08 回答
  • 邮件这种耗时的服务不管什么时候,都是异步比较好

    2022-11-30 13:08 回答
  • 现在很少需求到邮箱类验证,都是短信居多.邮箱验证我也遇到过这种困惑,后来的做法就是写入队列后随机分给预设的10个邮箱进行发送,这样子做纯粹是为了避免只用一个邮箱频繁发送被拉黑 挺笨的法子 但是也很有效 几乎没遇到过扔到垃圾箱的情况

    2022-11-30 13:08 回答
  • 最近刚上线的网站也需要发送验证邮件,比较方便的方式是使用现成的发送服务。国外的 Mailgun,SendGrid都不错,国内的aliyun的邮件推送服务刚上线,感觉还是不错,这些都有免费的发送额度。测试了下mailgun,aliyun发送国内主流的Email(sina,163,126,qq,yahoo,hotmail等等)都可以正常接收

    2022-11-30 13:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有