首先配置号邮件服务器(我用的是126邮箱),获取密钥:
进入下图的【邮箱中心】->点击右侧的齿轮按钮
接着,开启 下图位置 的 POP3/SMTP(我当时点击开启时,需要手机扫码认证下)
最后成功后,会给你弹出个授权码窗口,里面显示授权码。这个要保留,就是后面的密码。
同时,本页面底部,又服务器地址,记得备份下,后面会用:
后面就是使用 spring mail 库了。很方便的
maven 引入库:
<!-- spring mail --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
给出自己整理的代码示例:
package com.example.demo;import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;class SpringMailTests {public static void main(String[] args) throws MessagingException {JavaMailSenderImpl sender = new JavaMailSenderImpl();sender.setHost("smtp.126.com");//sender.setPort(994);sender.setUsername("jiang3331064@126.com");sender.setPassword("GQHFSOBQDRKKKTIE");sender.setDefaultEncoding("UTF-8");// SimpleMailMessage message = sendText(sender);// MimeMessage message = sendHtml(sender);// MimeMessage message = sendEmbeddedResource(sender);MimeMessage message = sendAttachment(sender);// 发送sender.send(message);System.out.println("success");}/*** 发送文本** @param sender*/public static SimpleMailMessage sendText(JavaMailSenderImpl sender) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom("jiang3331064@126.com");message.setTo("rain.jiang@xx.com", "645504059@qq.com");message.setSubject("126邮件发送测试222");message.setText("我是个测试文本222");// 抄送message.setCc("xxx@xx.com");return message;}/*** 发送HTML邮件** @param sender* @throws MessagingException*/public static MimeMessage sendHtml(JavaMailSenderImpl sender) throws MessagingException {MimeMessage message = sender.createMimeMessage();// 简化对mimeMessage的封装MimeMessageHelper helper = new MimeMessageHelper(message, false, "UTF-8");helper.setFrom("jiang3331064@126.com");helper.setCc("dff@mfdf.com");helper.setTo(new String[]{"rain.jiang@xx.com", "645504059@qq.com"});helper.setSubject("HTML邮件");helper.setText("<h1 style='color:green;'>hello,world!</h1>", true);
//return message;}/*** 发送内嵌资源的邮件** @param sender* @throws MessagingException*/public static MimeMessage sendEmbeddedResource(JavaMailSenderImpl sender) throws MessagingException {MimeMessage message = sender.createMimeMessage();// 简化对mimeMessage的封装 内嵌资源要将multipart设置为trueMimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");helper.setFrom("jiang3331064@126.com");
// helper.setCc("ccc@dddd.com");helper.setTo(new String[]{"rain.jiang@xx.com", "645504059@qq.com"});helper.setSubject("发送内嵌资源的邮件");// 内嵌文件的id已特定的标志引用 格式为cid:<内嵌文件id>
// helper.setText("<a style='color:red;'>hello</a>",true);helper.setText("<html><body>hello<img src='cid:id1'/><br /><img src='cid:id2'/></body></html>", true);FileSystemResource resource = new FileSystemResource("C:/Users/we749/Documents/workspace/onestophealthcheck/project-server/src/main\\resources\\static\\image\\bg1.png");FileSystemResource resource2 = new FileSystemResource("C:\\Users\\we749\\Pictures\\bg1.png");
//
// // 使用addInline 方法将文件内嵌到邮件中helper.addInline("id1", resource);helper.addInline("id2", resource2);return message;}/*** @param sender* @return* @throws MessagingException*/public static MimeMessage sendAttachment(JavaMailSenderImpl sender) throws MessagingException {MimeMessage message = sender.createMimeMessage();// 简化对mimeMessage的封装 内嵌资源要将multipart设置为trueMimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");helper.setFrom("jiang3331064@126.com");
// helper.setCc("ccc@dddd.com");helper.setTo(new String[]{"rain.jiang@xx.com", "645504059@qq.com"});helper.setSubject("发送带附件的邮件");// 内嵌文件的id已特定的标志引用 格式为cid:<内嵌文件id>helper.setText("<html><body>发送带附件的邮件<body></html>", true);FileSystemResource resource = new FileSystemResource("C:/Users/we749/Documents/workspace/onestophealthcheck/project-server/src/main\\resources\\static\\image\\bg1.png");// 使用addAttachment 方法 添加附件helper.addAttachment("tiger.jpeg", resource);return message;}
}