用户注册一般需要邮箱或短信验证, 这里先以qq邮箱作为发送端测试
首先在网页中打开qq邮箱-邮箱设置-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务选项中开启POP3/SMTP服务,
然后手机发送短信收到POP3/SMTP服务授权码 如:awdfsdgnxffzdbaa
这里需要用到Apache-SimpleEmail 这个包,比javamail更简面些
测试类
public class MailUtil {
private final static String USERNAME = "34********@qq.com";//自己注册的发件人邮箱
private final static String PASSWORD = "awdfsdgnxffzdbaa"; // POP3/SMTP服务授权码
private final static String ADDRESS = "smtp.qq.com"; //qq邮箱固定名称
private final static int PORT = 587; //邮箱端口为465/587,本人的465接口连接不上
/**
* 发送邮件给指定人,需要主题和内容
* @param user
* @param title
* @param content
*/
public static void sendMail(String user, String title, String content) {
SimpleEmail email = new SimpleEmail();
email.setCharset("UTF8");
email.setHostName(ADDRESS);
email.setSmtpPort(PORT);
email.setAuthentication(USERNAME, PASSWORD);
try {
email.setFrom(USERNAME);
email.addTo(user);
email.setSubject(title);
email.setMsg(content);
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
/**
* 发送验证邮件给用户
* @param user
* @param code
*/
public static void sendValidateMail(String user, String code) {
String title = "注册验证码";
String content = "感谢您注册,您的验证码为 \n" + code + "\n,请注意保存,此验证码有效期为 10分钟 。";
sendMail(user, title, content);
}
public static void main(String[] args) {
MailUtil.sendValidateMail("4324993234@qq.com", "4461");//收件人和消息
}
}
- 后来发现qq邮箱并不怎么好用,发送出去的邮件经常被当做垃圾邮件,只能买个企业邮箱试试
这里以阿里云企业邮箱为例,把你买的域名和阿里云邮箱花1元绑定就可以用了
阿里云邮箱的配置 这是邮箱的配置介绍
按照上面配置新建员工账号和并设置密码,默认是开启smtp的,如新建一个员工账号validate@forfun.top 密码:forfun_validateUSERNAME 你新建的员工账号比如:validate@forfun.top
PASSWORD 这里不需要授权码,邮箱本身就是你自己买的,使用配置的员工密码如:forfun_validate
ADDRESS 固定为smtp.mxhichina.com
PORT 端口号固定为25