百度百科这样说的html
用户注册时,输入邮箱 经过JavaMail技术,向用户邮箱发送一封激活邮件, 含有激活码 用户在24小时内, 能够点击激活邮件连接, 板顶邮箱 邮箱激活码保存时间能够使用Redis(内存数据库)实现
开启客户端受权码(开启POP3/SMTP服务和IMAP/SMTP服务)
java
<dependencies> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> </dependencies>
1 设置邮件发送的属性 2 设置主机地址 3 设置是否打开验证 4 建立连接 5 建立邮件 6 设置发送者 7 设置接收者 8 设置标题 9 设置正文 10 发送
package com.manlu; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * @author 漫路 */ public class Demo { public static void main(String[] args) throws Exception { // 1 准备发送邮件须要的参数 Properties props = new Properties(); // 设置主机地址 smtp.qq.com smtp.126.com smtp.163.com props.put("mail.smtp.host", "smtp.163.com"); // 是否打开验证:只能设置true,必须打开 props.put("mail.smtp.auth", true); // 2 链接邮件服务器 Session session = Session.getDefaultInstance(props); // 3 建立邮件信息 MimeMessage message = new MimeMessage(session); // 4 设置发送者。 来源邮箱,使用你的帐号 InternetAddress fromAddress = new InternetAddress("123456@163.com"); message.setFrom(fromAddress); // 5 设置接收者。接收者的邮箱 InternetAddress toAddress = new InternetAddress("654321@qq.com"); // to:直接接收者 cc:抄送 bcc:暗送 message.setRecipient(MimeMessage.RecipientType.TO, toAddress); // 6 设置主题 message.setSubject("测试标题"); // 7 设置正文 message.setText("小老弟,干吗呢??"); // 设置HTML方式发送 //message.setContent(text, "text/html;charset=utf-8"); // 8 发送:小老弟,干吗呢??? Transport transport = session.getTransport("smtp");// 参数不能少,表示的是发送协议 // 登陆邮箱,此处的密码是受权码 // 受权码(登陆邮箱-->设置-->邮箱安全设置-->客户端受权密码),这里不是邮箱的密码,切记! transport.connect("123456@163.com", "1234"); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("ok"); } }
注意:上面代码里的参数我胡乱填的,改为你真实的便可数据库
成功安全
package com.manlu.utils; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage.RecipientType; import java.util.Properties; /** * @author manlu */ public class MailUtil { public static String smtp_host = "smtp.163.com"; // 基于那个平台? 咱们使用网易 public static String username = "sqczdx@163.com"; // 邮箱 改成你的 public static String password = "q7w8e9a4s5d6"; // 受权码(登陆邮箱-->设置-->邮箱安全设置-->客户端受权密码),这里不是邮箱的密码,切记! public static String from = "sqczdx@163.com"; // 来源邮箱,改为你的帐号 /** * 发送邮箱方法 * @param to 接收者邮箱 * @param subject 邮箱内容 * @param text 邮箱标题 * @throws Exception */ public static void sendMail(String to, String subject, String text) throws Exception { // 1 准备发送邮件须要的参数 Properties props = new Properties(); // 设置主机地址 smtp.qq.com smtp.126.com smtp.163.com props.put("mail.smtp.host", smtp_host); // 是否打开验证:只能设置true,必须打开 props.put("mail.smtp.auth", true); // 2 链接邮件服务器 Session session = Session.getDefaultInstance(props); // 3 建立邮件信息 MimeMessage message = new MimeMessage(session); // 4 设置发送者 InternetAddress fromAddress = new InternetAddress(from); message.setFrom(fromAddress); // 5 设置接收者 InternetAddress toAddress = new InternetAddress(to); // to:直接接收者 cc:抄送 bcc暗送 message.setRecipient(RecipientType.TO, toAddress); // 6 设置主题 message.setSubject(subject); // 7 设置正文 message.setText(text); // 设置HTML方式发送 //message.setContent(text, "text/html;charset=utf-8"); // 8 发送:么么哒 Transport transport = session.getTransport("smtp");// 参数不能少,表示的是发送协议 // 登陆邮箱,此处的密码是受权码 transport.connect(username, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("ok"); } /** * 测试main方法 * 这样在别的类中也能够调用了,一行代码便可 * @param args */ public static void main(String[] args) { try { MailUtil.sendMail("550945825@qq.com", "么么哒", "测试标题"); } catch (Exception e) { e.printStackTrace(); } } }