第一步:
进入QQ邮箱->账号设置:开启POP3和IMAP服务,开启之后会给你一个授权码,这个要记下来。
第二步:
导包,导入mail.jar包。
下载连接:https://javaee.github.io/javamail/#Download_JavaMail_Release
下载这个javax.mail.jar。下载完成之后导入项目。
第三步:
敲代码
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JOptionPane;
import com.sun.mail.util.MailSSLSocketFactory;
public class SendEmail {
//邮箱服务器主机名
//QQ邮箱的SMTP服务器地址为:smtp.qq.com
private static String myEmailSMTPHost="smtp.qq.com";
//发件人邮箱
private static String myEmailAccount="@qq.com";
/**发件人邮箱密码,这里是开通SMTP时获取的授权码
* (因为要开启POP3和IMAP两个客户端,所以会有两个授权码,随便哪一个都行),不是邮箱登陆密码。
*/
private static String myPassword="授权码";
//发送邮件
public static void main(String[] args) throws Exception {
// TODO Auto-generated constructor stub
//验证码
String verifyCode="";
//收件人邮箱,并不局限于QQ邮箱
String toEmailAddress="收件人邮箱";
//邮件主题
String emailTitle="邮箱标题";
//邮件内容
String emailContent="邮箱内容";
//发送邮件
sendEmail(toEmailAddress,emailTitle,emailContent);
}
public static void sendEmail(String toEmailAddress,String emailTitle,
String emailContent) throws Exception{
Properties props= new Properties();
//开启debug调试
props.setProperty("mail.debug", "true");
//发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
//端口号465/587
props.put("mail.smtp.port", 465);
//设置邮件服务器主机名
props.setProperty("mail.smtp.host", myEmailSMTPHost);
//发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
//SSL认证,QQ邮箱是通过SSL加密的,所以需要开启才能使用
MailSSLSocketFactory sf=new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
//设置是否适用SSL安全连接
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
//创建会话
Session session=Session.getInstance(props);
//获取邮箱对象
//发送的消息根据自己需求设计
Message msg=new MimeMessage(session);
//设置邮件标题
msg.setSubject(emailTitle);
//设置邮件内容
//使用StringBuilder,因为StringBuilder比String加载速度快,而且线程安全性也不错
StringBuilder builder=new StringBuilder();
//写入邮件内容
builder.append("\n"+emailContent);
// 写入我的官网
builder.append("\n官网:" + "https://www.baidu.com");
//定义要输出的日期字符串的格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd hh-mm-ss");
//在内容后加入发送邮件的日期时间
builder.append("\n"+sdf.format(new Date()));
//设置显示邮件发送的时间
msg.setSentDate(new Date());
//设置邮件内容
msg.setText(builder.toString());
//设置发件人邮箱
//InternetAddress 的三个参数分别是:发件人邮箱,显示昵称,昵称的字符编码
msg.setFrom(new InternetAddress(myEmailAccount, "昵称", "utf-8"));
//得到邮差对象
Transport transport=session.getTransport();
//连接自己的邮箱账户
//connect 三个参数分别为:服务器地址,邮箱,开启SMTP时的授权码
transport.connect(myEmailSMTPHost, myEmailAccount, myPassword);
//发送邮件
transport.sendMessage(msg, new Address[] {new InternetAddress(toEmailAddress)});
transport.close();
}
}
代码完善之后就可以运行了,如果有什么问题,欢迎在下方评论留言。