1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java 开源 邮件系统_Java架构师方案—简单的邮件系统(附完整项目代码)

java 开源 邮件系统_Java架构师方案—简单的邮件系统(附完整项目代码)

时间:2021-12-19 15:57:41

相关推荐

java 开源 邮件系统_Java架构师方案—简单的邮件系统(附完整项目代码)

1. 效果发送效果图

连续发送了四封邮件:普通文本邮件,带附件的邮件,内容包含图片的邮件,发送html邮件。

普通文本邮件截图

带附件的邮件截图

内容包含图片的邮件截图(图片太大,就截取一部分)

发送html邮件截图

2. 邮件开发准备工作

引入pom文件依赖

org.springframework.boot

spring-boot-starter-mail

在application.properties 中添加邮箱配置

spring.mail.host=

spring.mail.port=587

spring.mail.username=jackdking@

spring.mail.password=邮箱授权码,非邮箱登入密码

from,即为邮件发送者,一般设置在配置文件中

to,邮件接收者,此参数可以为数组,同时发送多人

subject,邮件主题

content,邮件的主体

邮件发送者 from 一般采用固定的形式写到配置文件中。

在qq邮箱中开启收发邮件步骤

进入邮件开启页面

点击开启,并发送短信

确认发送,邮件收发开启

3. springboot引入mail服务

MailServiceImpl类注入邮件API类

/**

* @author jackdking

* @date /5/3 22:07

*/

@Component

public class MailServiceImpl implements IMailService {

@Autowired

private JavaMailSender mailSender;

@Value("${spring.mail.username}")

private String mailFrom;

......

4种邮件类型方法

/**

* 发送简单邮件

*

* @param to

* @param subject

* @param content

*/

@Override

public void sendSimpleEmail(String to,String subject,String content) {

SimpleMailMessage message = new SimpleMailMessage();

subject="简单文本邮件";

content="你好,我是空白";

to = "jackdking@";//我自己的邮箱

message.setFrom(mailFrom);

message.setTo(to);

message.setSubject(subject);

message.setText(content);

mailSender.send(message);

}

/**

* 发送html邮件

*

* @param to

* @param subject

* @param content

*/

@Override

public void sendHtmlMail(String to, String subject, String content) {

MimeMessage mimeMessage = mailSender.createMimeMessage();

try {

//true表示需要创建一个multipart message

subject="发送html邮件";

content="\n" +

"

\n" +

"

hello world !你好,我是空白 ,发送html邮件!

\n" +

"\n" +

"";

to = "jackdking@";//我自己的邮箱

MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);

helper.setFrom(mailFrom);

helper.setTo(to);

helper.setSubject(subject);

helper.setText(content,true);

mailSender.send(mimeMessage);

} catch (MessagingException e) {

e.printStackTrace();

}

}

/**

* 发送带附件的邮件

*

* @param to

* @param subject

* @param content

* @param filepath

*/

@Override

public void sendFileMail(String to, String subject, String content, String filepath) {

MimeMessage mimeMessage = mailSender.createMimeMessage();

subject="发送带附件的邮件";

content="你好,我是空白";

to = "jackdking@";//我自己的邮箱

filepath="D:\\微信图片_2024230149.jpg";

try {

MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);

helper.setFrom(mailFrom);

helper.setTo(to);

helper.setSubject(subject);

helper.setText(content,true);

FileSystemResource file = new FileSystemResource(new File(filepath));

String fileName = filepath.substring(filepath.lastIndexOf(File.separator));

helper.addAttachment(fileName,file);

mailSender.send(mimeMessage);

}catch (Exception e){

e.printStackTrace();

}

}

@Override

public void sendPictureMail(String to, String subject, String content, String picturepath) {

// TODO Auto-generated method stub

String Id = "jackdking1314";

content="

图片邮件:";

String imgPath = "D:\\微信图片_2024230149.jpg";

to = "jackdking@";//我自己的邮箱

MimeMessage message = mailSender.createMimeMessage();

try {

MimeMessageHelper helper = new MimeMessageHelper(message, true);

helper.setFrom(mailFrom);

helper.setTo(to);

helper.setSubject("这是有图片的邮件");

helper.setText(content, true);

FileSystemResource res = new FileSystemResource(new File(imgPath));

helper.addInline(Id, res);

mailSender.send(message);

} catch (MessagingException e) {

e.printStackTrace();

}

}

4. 启动应用,开始4种邮件发送测试

SpringbootMailApplication应用启动类实现了ApplicationRunner接口,应用启动成功就执行run方法,发送4种邮件。

@SpringBootApplication

public class SpringbootMailApplication implements ApplicationRunner

{

@Autowired

IMailService mailService;

public static void main( String[] args )

{

SpringApplication.run(SpringbootMailApplication.class, args);

}

//启动应用后直接发送邮件

@Override

public void run(ApplicationArguments args) throws Exception {

// TODO Auto-generated method stub

mailService.sendSimpleEmail(null, null, null);

mailService.sendHtmlMail(null, null, null);

mailService.sendFileMail(null, null, null,null);

mailService.sendPictureMail(null, null, null,null);

}

}

应用启动成功,并成功发送了4封邮件

查看更多 “Java架构师方案” 系列文章 以及 SpringBoot2.0学习示例

介绍

SpringBoot2.0-Jackdking 使用的各种示例,整合流行的中间件,此开源项目中的每个示例都是站在初学者角度,细心剖析技术实现细节,帮助初学者快速掌握 Spring Boot2.0 各组件的使用。

文章

如果大家觉得这篇文章对你学习架构有帮助的话,还请点赞,在看支持一下。github项目也记得点个星哦!

完整的demo项目,请关注公众号“前沿科技bot“并发送"邮件系统"获取。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。