java实现邮件功能,其实很简单的,只需要引入mail.jar即可实现
菜鸟教程:https://www.runoob.com/java/java-sending-email.html
这里已qq邮箱为例,作为发送方。。。,核心步骤如下:
qq邮箱的设置在QQ邮箱-->设置-->账号-->进行设置
1、开启 POP3/SMTP服务,获取授权码
2、核心代码
package com.ssm.core.Test;
import java.security.GeneralSecurityException;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import com.sun.mail.util.MailSSLSocketFactory;
public class SendMailUtil {
//邮件服务器主机地址
// private static String HOST="localhost";
private static String HOST="smtp.qq.com";
//帐号
private static String ACCOUNT = "xxxxx@qq.com";
//授权码
private static String PASSWORD = "mmmmm";
/**
* @param toUser 收件方
* @param title 邮件标题
* @param emailMsg 邮件内容
* @throws GeneralSecurityException
*/
public static void sendMail(String toUser,String title, String emailMsg)throws AddressException, MessagingException, GeneralSecurityException {
// 1.创建一个程序与邮件服务器会话对象 Session
Properties props = new Properties();
//设置发送的协议
props.setProperty("mail.transport.protocol", "SMTP");
//设置发送邮件的服务器
props.setProperty("mail.host", HOST);
props.setProperty("mail.smtp.auth", "true");// 指定验证为true
//QQ邮箱,还要设置SSL加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
// 创建验证器
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//设置发送人的帐号和密码 帐号 授权码
return new PasswordAuthentication(ACCOUNT, PASSWORD);
}
};
//会话
Session session = Session.getInstance(props, auth);
// 2.创建一个Message,它相当于是邮件内容
Message message = new MimeMessage(session);
//设置发送者
message.setFrom(new InternetAddress(ACCOUNT));
//设置发送方式与接收者
message.setRecipient(RecipientType.TO, new InternetAddress(toUser));
//设置邮件主题
message.setSubject(title);
message.setText("这是一封激活邮件(测试),请<a href='#'>点击</a>");
//设置邮件内容
message.setContent(emailMsg, "text/html;charset=utf-8");
// 3.创建 Transport用于将邮件发送
Transport.send(message);
}
//运行main方法,发送邮件
public static void main(String[] args) throws AddressException, MessagingException, GeneralSecurityException {
SendMailUtil.sendMail("xxx@zulvan.com", "邮件测试", "哈哈哈这是正文,邮件测试");
}
}
收件截图:
做pc网站开发,经常注册需要实现邮件激活的功能,以上的核心代码,可以实现,
这里有篇文章不错:https://www.cnblogs.com/liuzhihu/p/8184883.html