发表于: 2018-03-19 22:57:09

2 634


今天完成的事情:
今天开始做邮箱验证。
一开始要阿里云的邮箱验证,还要搞什么服务器配置,看了半天官方文档都没整明白。
后来看了一些资料,然后大概自己试了试,大概整理了一下流程:
首先,开通阿里云的邮箱推送服务,免费。
点开阿里云控制台的产品与服务,
然后点开左边菜单栏的发信域名:
点击右上角的新建域名

这里域名建议是这种格式:
随意起名.你的域名.你的后缀名
测试了好多次,感觉只有这样才能在验证中起作用
添加好域名之后,点击配置:

看到上面的那一堆数据之后-----不要做任何修改-----新打开一个页面,点开阿里云控制台左边的域名:
然后在页面中,找到
打开的页面中,点击添加解析:
在弹出的窗口中,依次将你的发信域名的配置,填入到


填入完成以后,在发信域名页面,退出配置的弹出窗口,点击配置后面验证,就可以完成操作。
备案的域名会显示验证通过,未备案的域名会显示可使用-未备案。我的就是没有备案的。
完成上面的配置后,就可以开始配置自己的邮件服务啦。
在上面的发信域名的下面,选择发信地址:点开左上角的新建发信地址。
在没有验证通过发信域名之前,上面的发信域名的下拉菜单是没有东西可以选择的。这里配置一下之后,邮件的相关配置就算结束了。
然后在发件地址后面,选择设置密码,
配置好上面的东西之后,分别记下自己的STMP密码和发件地址,就可以开始正式编写java的代码啦:
先看看效果:
邮件推送工具类代码如下:
public class MailUtil {
final Logger logger = Logger.getLogger(MailUtil.class);
//配置服务器
private static final String ALIDM_SMTP_HOST = "smtpdm.aliyun.com";
private static final String AUTH="true";
private static final String CLASS="javax.net.ssl.SSLSocketFactory";
private static final String SOCKETFACTORY_PORT="465";//为什么不用25端口,因为现在的阿里云已经将25禁用了
private static final String PORT="465";
private static final String FROM="";//这个是你设置发信地址的时候的发信地址
private static final String PASSWORD="";//这个就是你设置的STMP的密码
public int SendMail(String email) {
logger.info("发送邮件!!");
int x =0;
// 配置发送邮件的环境属性
final Properties props = new Properties();
// 表示SMTP发送邮件,需要进行身份验证
props.put("mail.smtp.auth", AUTH);
props.put("mail.smtp.host", ALIDM_SMTP_HOST);
props.put("mail.smtp.socketFactory.class", CLASS);
props.put("mail.smtp.socketFactory.port", SOCKETFACTORY_PORT);
props.put("mail.smtp.port", PORT);
// 发件人的账号
props.put("mail.user", FROM);
// 访问SMTP服务时需要提供的密码
props.put("mail.password", PASSWORD);
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
// mailSession.setDebug(true);
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
try {
// 设置发件人
InternetAddress from = new InternetAddress(FROM);
message.setFrom(from);
Address[] a = new Address[1];
a[0] = new InternetAddress(FROM);
message.setReplyTo(a);
// 设置收件人
InternetAddress to = new InternetAddress(email);
message.setRecipient(MimeMessage.RecipientType.TO, to);
// 设置邮件标题
message.setSubject("验证邮件");
// 设置邮件的内容体
x = new Random().nextInt(1000000);
String activeUrl = "www.baidu.com";
message.setContent("尊敬的用户您好,您的验证码是:"+x+" 请勿告诉别人!!", "text/html;charset=UTF-8");
// 发送邮件
//message.setContent("尊敬的用户,您好!我是XX公司老板,请点击激活链接完成邮箱激活<a href=\"activeUrl\" target=\" blank\">" + activeUrl + "</a>", "text/html;charset=UTF-8");
Transport.send(message);
}
catch (MessagingException e) {
System.out.println(e);
logger.info("发送邮件失败,错误是:"+e);
String err = e.getMessage();
// 在这里处理message内容, 格式是固定的
System.out.println(err);
}
return x;
}
明天计划的事情:试试做那个点击链接完成激活的功能。
遇到的问题:
1.如何配置发信域名。
一开始发信域名的那个验证始终无法通过。后来想了很久,想想是不是配的是com而不是自己买的top,还没有加上自己的主域名,所以无法完成验证?
尝试了一下,果然如此。
收获:
1.写用户文档,一定要细致,保证用户看着就能做,不然产品的用户体验会极差。阿里云的那个客服,解决问题的能力真的是  差评。
进度:短信验证逻辑已经完成,邮箱发送验证码已经完成,邮箱激活链接和图片上传,图片迁移还没开始。
任务开始时间:2018年03月18日
预计demo时间:2018年03月22日



返回列表 返回列表
评论

    分享到