JavaMail实现发送邮件(QQ邮箱)

Tanisha ·
更新时间:2024-11-13
· 1619 次阅读

本文实例为大家分享了JavaMail实现发送邮件的具体代码,供大家参考,具体内容如下

用的qq邮箱,需要去邮箱设置那边开一下stmp服务啥的获得下面要用到的密码,具体开服务自己百度,这边不截图了。

代码如下:导包和工具类,可用!

一、导这个包 <dependency>     <groupId>javax.mail</groupId>      <artifactId>mail</artifactId>     <version>1.5.0-b01</version> </dependency> 二、工具类封装成对象 import lombok.Data; 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; public class MailHelper {     /**      * 邮件服务器主机名。      */     private static String HOST_NAME;     private String sendMailUrl ;     private String receiveMailUrl;     /**      * IMAP/SMTP服务的密码 去qq邮箱开的。 几个月前的失效了还是蛮奇怪的 2021年8月5日21:33:36      */     private String servicePassword;     static {         //默认直接qq的吧         HOST_NAME = "smtp.qq.com";     }     public MailHelper(String sendMailUrl,String receiveMailUrl,String servicePassword){         this.sendMailUrl=sendMailUrl;         this.receiveMailUrl=receiveMailUrl;         this.servicePassword=servicePassword;     }     public  void sendSimpleMail(Mail mail) throws Exception {         Properties prop = new Properties();          设置邮件服务器主机名         prop.setProperty("mail.host", "smtp.qq.com");         // 发送邮件协议名称         prop.setProperty("mail.transport.protocol", "smtp");         prop.setProperty("mail.smtp.auth", "true");         // 使用JavaMail发送邮件的5个步骤         // 1、创建session 根据配置创建会话对象, 用于和邮件服务器交互         Session session = Session.getInstance(prop);         // 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态         session.setDebug(true);         // 2、通过session得到transport对象         Transport ts = session.getTransport();         // 3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。         // 注:这边host必须填写smtp.qq.com         // 而不是你qq邮箱账号如1741049@qq.com,否则报错host名unkonwn。         // Host:邮件服务器主机名         ts.connect(HOST_NAME, receiveMailUrl, servicePassword);         // 4、创建邮件         Message message = createSimpleMail(session, mail.getTitle(), mail.getContent());         // 5、发送邮件         ts.sendMessage(message, message.getAllRecipients());         ts.close();     }     private MimeMessage createSimpleMail(Session session, String title, String content) throws Exception {         // 创建邮件对象         MimeMessage message = new MimeMessage(session);         // 指明邮件的发件人         message.setFrom(new InternetAddress(receiveMailUrl));         // 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发         message.setRecipient(Message.RecipientType.TO, new InternetAddress(receiveMailUrl));         // 邮件的标题         message.setSubject(title);         // 邮件的文本内容         message.setContent(content, "text/html;charset=UTF-8");         // 返回创建好的邮件对象         return message;     }     @Data     public static class Mail{         private String title;         /**          * 正文          */         private String content;         public Mail(){         }         public Mail(String title,String content){             this.title=title;             this.content=content;         }     } }

测试类:

package com.forever.junittest; import com.forever.gitfund.util.MailHelper; import com.forever.gitfund.util.MailHelper.Mail; import org.junit.Test; public class TestMailHelper {     @Test     public void test() throws Exception {         String qq = "xx@qq.com";         String send = qq;         MailHelper mailHelper = new MailHelper(qq,send,"xxxxx");         Mail mail = new Mail();         String title = "我的第一封邮件";         String content = "这是我的第一封邮件 from idea";         mail.setTitle(title);         mail.setContent(content);         mailHelper.sendSimpleMail(mail);     } }



qq 发送邮件 qq邮箱 邮件

需要 登录 后方可回复, 如果你还没有账号请 注册新账号