84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
用户Passport系统,注册,找回密码都是通过邮件发送验证码,有什么好的方案实现。我之前用的是私人的QQ邮箱,发现偶尔系统会来一封邮件要我输入验证码,而且就怕用多了会被腾讯拉黑或者自动移到垃圾箱处理。还有就是什么情况下发送邮件需要用队列?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
邮件量大,比较耗时的情况下,可以采用异步的消息队列。将要发送的邮件塞入消息队列,你的当前流程就结束了,然后用消息中间件,订阅者自己订阅自己的发布者的消息,对收到的消息进行邮件发送。发送邮件代码如下:
@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); }
曾经使用过阿里的免费企业邮箱,发送到国内的126,QQ和Gmail都没问题。其他的邮箱偶尔会出现在“垃圾邮件”里。
使用异步实现一般会考虑使用消息队列,可以考虑django celery + RabbitMQ
以下情况需要用到邮件队列:1.给多个用户批量发送邮件的时候,必须异步调用队列发送,因为点击发送后,操作者有可能关闭了页面,此时只有后台异步发送邮件才不至于漏发邮件。2.注册 登录 找回密码 可用用短信平台验证码实现,也可用用邮件服务区实现。
邮件量大,比较耗时的情况下,可以采用异步的消息队列。将要发送的邮件塞入消息队列,你的当前流程就结束了,然后用消息中间件,订阅者自己订阅自己的发布者的消息,对收到的消息进行邮件发送。发送邮件代码如下:
曾经使用过阿里的免费企业邮箱,发送到国内的126,QQ和Gmail都没问题。其他的邮箱偶尔会出现在“垃圾邮件”里。
使用异步实现一般会考虑使用消息队列,可以考虑django celery + RabbitMQ
以下情况需要用到邮件队列:
1.给多个用户批量发送邮件的时候,必须异步调用队列发送,因为点击发送后,操作者有可能关闭了页面,此时只有后台异步发送邮件才不至于漏发邮件。
2.注册 登录 找回密码 可用用短信平台验证码实现,也可用用邮件服务区实现。