java使用smtp发送html格式邮件
Posted 派大星敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java使用smtp发送html格式邮件相关的知识,希望对你有一定的参考价值。
java 使用 smtf 发送html格式 邮件
Smtp邮件篇
java发送邮件
第一步
1.以网易邮箱为例,首先需要授权邮箱账号可以支持smtp;
- 开启之后我们需要生成邮箱第三方登陆的授权码,完成之后把生成后的授权码保存下来,下一步要用;
第二步
在我们的配置文件中配置发送邮件
spring:
mail:
host: smtp.163.com
password: 'xxxx'
username: k18360195948@163.com
#port: 端口号
default-encoding: UTF-8
properties:
mail.smtp.socketFactory.fallback: true
mail.smtp.starttls.enable: true
需要注意的是host对应的是自己邮箱的smtp服务器
网易邮箱是:smtp.163.com
Office邮箱是:smtp.office365.com
切记password:对应的不是邮箱密码,而是上一步当中的授权码
接着导入需要的依赖在pom文件中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
第三步
创建发送邮件类,以下是我测试用的demo;
@Component
public class SmtpMessageUtils {
@Autowired
private JavaMailSender mailSender; //自动注入的Bean
@Value("${spring.mail.username}")
private String userName; //读取配置文件中的参数
/**
* 普通邮件发送
* @throws MessagingException
*/
public void sendSimpleMail1() throws MessagingException {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(userName);//发件邮箱
message.setTo("k18360195948@163.com"); //收件邮箱
message.setSubject("阿乐的测试邮箱");//标题
message.setText("hello");//内容
mailSender.send(message);
}
public void sendSimpleMail(String context,String email) throws MessagingException {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(userName);
message.setTo(email); //发送邮
message.setSubject("[阿乐的测试]");
message.setText(context);
mailSender.send(message);
}
/**
* 发送html
*/
public void send(){
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper;
try {
helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(userName);
helper.setTo("2746680956@qq.com");
helper.setSubject("title");//主题
mimeMessage.setContent("<!DOCTYPE html>\\n" +
"<html lang=\\"en\\">\\n" +
"<head>\\n" +
" <meta charset=\\"UTF-8\\">\\n" +
" <meta http-equiv=\\"X-UA-Compatible\\" content=\\"IE=edge\\">\\n" +
" <meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1.0\\">\\n" +
" <title>Document</title>\\n" +
"</head>\\n" +
"<body>\\n" +
" <img src=\\"https://dpay-images.dhamecha.com/dhamecha_log.png\\">\\n" +
" <p>hello,这是阿乐的测试信息,可以调整html内容为自己想要的邮箱格式模板..</p>\\n" +
" \\n" +
"</body>\\n" +
"</html>"
, "text/html ;charset=gbk");
mailSender.send(mimeMessage);
} catch (MessagingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
亲测可用,让我们一起看下测试结果吧
这是普通邮件的测试结果:
这是发送html的测试结果:
如果发送邮件出现了错误可以访问以下链接:网易邮箱常见错误与原因
感谢阅读!
以上是关于java使用smtp发送html格式邮件的主要内容,如果未能解决你的问题,请参考以下文章