JAVA实现邮件发送功能(账号注册验证码、账号激活等)
第一步,导入JAR包,JAR包下载地址[http://pan.baidu.com/s/1kVRvGyF]
如果是Maven,请直接在Pom文件中加入
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.0</version>
</dependency>如果是SpringBoot,请直接在Pom文件中加入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
正式代码:
首先书写一个工具类:
MailUtil
1 import javax.mail.*; 2 import javax.mail.internet.InternetAddress; 3 import javax.mail.internet.MimeMessage; 4 import java.util.Properties; 5 6 /** 7 * 邮件工具类 8 */ 9 public class MailUtil { 10 /** 11 * 发送邮件 12 * @param to 给谁发 13 * @param text 发送内容 14 */ 15 public static void send_mail(String to,String text) throws MessagingException { 16 //创建连接对象 连接到邮件服务器 17 Properties properties = new Properties(); 18 //设置发送邮件的基本参数 19 //发送邮件服务器(注意,此处根据你的服务器来决定,如果使用的是QQ服务器,请填写smtp.qq.com) 20 properties.put("mail.smtp.host", "smtp.huic188.com"); 21 //发送端口(根据实际情况填写,一般均为25) 22 properties.put("mail.smtp.port", "25"); 23 properties.put("mail.smtp.auth", "true"); 24 //设置发送邮件的账号和密码 25 Session session = Session.getInstance(properties, new Authenticator() { 26 @Override 27 protected PasswordAuthentication getPasswordAuthentication() { 28 //两个参数分别是发送邮件的账户和密码(注意,如果配置后不生效,请检测是否开启了 POP3/SMTP 服务,QQ邮箱对应设置位置在: [设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务]) 29 return new PasswordAuthentication("admin@huic188.com","这里写你的账号的密码"); 30 } 31 }); 32 33 //创建邮件对象 34 Message message = new MimeMessage(session); 35 //设置发件人 36 message.setFrom(new InternetAddress("admin@huic188.com")); 37 //设置收件人 38 message.setRecipient(Message.RecipientType.TO,new InternetAddress(to)); 39 //设置主题 40 message.setSubject("这是一份测试邮件"); 41 //设置邮件正文 第二个参数是邮件发送的类型 42 message.setContent(text,"text/html;charset=UTF-8"); 43 //发送一封邮件 44 Transport.send(message); 45 } 46 }
测试类:
TEST:
import javax.mail.MessagingException; /** * 测试类 */ public class Test { public static void main(String[] args) { try {
// 请将此处的 690717394@qq.com 替换为您的收件邮箱号码 MailUtil.send_mail("690717394@qq.com", String.valueOf(Math.random() * 999)); System.out.println("邮件发送成功!"); } catch (MessagingException e) { e.printStackTrace(); } } }
测试结果: 正常发送!
I love you