Java---实现邮件发送
实现发送邮件的发送必须有前提条件:
在qq邮件中开启POP3/SMTP服务,如下图所示(为本人邮件设置):
开启后会得到一个授权码.代码中会用到
需要的包:
百度网盘(包+源码):链接: https://pan.baidu.com/s/1dFEnIxV 密码: qsj4
不多讲话 ,直接上代码:
import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import com.sun.mail.util.MailSSLSocketFactory; public class SendMail { public static void main(String[] args) throws Exception { Properties prop = new Properties(); // 开启debug调试,以便在控制台查看 prop.setProperty("mail.debug", "true"); // 设置邮件服务器主机名 prop.setProperty("mail.host", "smtp.qq.com"); // 发送服务器需要身份验证 prop.setProperty("mail.smtp.auth", "true"); // 发送邮件协议名称 prop.setProperty("mail.transport.protocol", "smtp"); // 开启SSL加密,否则会失败 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); prop.put("mail.smtp.ssl.enable", "true"); prop.put("mail.smtp.ssl.socketFactory", sf); // 创建session Session session = Session.getInstance(prop); // 通过session得到transport对象 Transport ts = session.getTransport(); // 连接邮件服务器:邮箱类型,帐号,授权码代替密码(更安全) ts.connect("smtp.qq.com", "123456789@qq.com", "xcwalavrgfamafhe"); // 创建邮件 Message message = createSimpleMail(session); // 发送邮件 ts.sendMessage(message, message.getAllRecipients()); ts.close(); } /** * 开始测试~ */ public static MimeMessage createSimpleMail(Session session) throws Exception { // 创建邮件对象 MimeMessage message = new MimeMessage(session); // 指明邮件的发件人 message.setFrom(new InternetAddress("123456789@qq.com")); // 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发 message.setRecipient(Message.RecipientType.TO, new InternetAddress("123456789@qq.com")); // 邮件的标题 message.setSubject("this is JavaMail demo"); // 邮件的文本内容 message.setContent("Send a success!", "text/html;charset=UTF-8"); return message; } }
注意:代码中有关账户密码的信息是我瞎写的,请不要直接测试~