java 开源 邮件系统_Java架构师方案—简单的邮件系统(附完整项目代码)
1. 效果發(fā)送效果圖
連續(xù)發(fā)送了四封郵件:普通文本郵件,帶附件的郵件,內(nèi)容包含圖片的郵件,發(fā)送html郵件。
普通文本郵件截圖
帶附件的郵件截圖
內(nèi)容包含圖片的郵件截圖(圖片太大,就截取一部分)
發(fā)送html郵件截圖
2. 郵件開發(fā)準(zhǔn)備工作
引入pom文件依賴
org.springframework.boot
spring-boot-starter-mail
在application.properties 中添加郵箱配置
spring.mail.host=smtp.qq.com
spring.mail.port=587
spring.mail.username=jackdking@foxmail.com
spring.mail.password=郵箱授權(quán)碼,非郵箱登入密碼
from,即為郵件發(fā)送者,一般設(shè)置在配置文件中
to,郵件接收者,此參數(shù)可以為數(shù)組,同時(shí)發(fā)送多人
subject,郵件主題
content,郵件的主體
郵件發(fā)送者 from 一般采用固定的形式寫到配置文件中。
在qq郵箱中開啟收發(fā)郵件步驟
進(jìn)入郵件開啟頁面
點(diǎn)擊開啟,并發(fā)送短信
確認(rèn)發(fā)送,郵件收發(fā)開啟
3. springboot引入mail服務(wù)
MailServiceImpl類注入郵件API類
/**
* @author jackdking
* @date 2018/5/3 22:07
*/
@Component
public class MailServiceImpl implements IMailService {
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String mailFrom;
......
4種郵件類型方法
/**
* 發(fā)送簡(jiǎn)單郵件
*
* @param to
* @param subject
* @param content
*/
@Override
public void sendSimpleEmail(String to,String subject,String content) {
SimpleMailMessage message = new SimpleMailMessage();
subject="簡(jiǎn)單文本郵件";
content="你好,我是空白";
to = "jackdking@foxmail.com";//我自己的郵箱
message.setFrom(mailFrom);
message.setTo(to);
message.setSubject(subject);
message.setText(content);
mailSender.send(message);
}
/**
* 發(fā)送html郵件
*
* @param to
* @param subject
* @param content
*/
@Override
public void sendHtmlMail(String to, String subject, String content) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
//true表示需要?jiǎng)?chuàng)建一個(gè)multipart message
subject="發(fā)送html郵件";
content="\n" +
"
\n" +"
hello world !你好,我是空白 ,發(fā)送html郵件!
\n" +"\n" +
"";
to = "jackdking@foxmail.com";//我自己的郵箱
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();
}
}
/**
* 發(fā)送帶附件的郵件
*
* @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="發(fā)送帶附件的郵件";
content="你好,我是空白";
to = "jackdking@foxmail.com";//我自己的郵箱
filepath="D:\\微信圖片_20200524230149.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:\\微信圖片_20200524230149.jpg";
to = "jackdking@foxmail.com";//我自己的郵箱
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. 啟動(dòng)應(yīng)用,開始4種郵件發(fā)送測(cè)試
SpringbootMailApplication應(yīng)用啟動(dòng)類實(shí)現(xiàn)了ApplicationRunner接口,應(yīng)用啟動(dòng)成功就執(zhí)行run方法,發(fā)送4種郵件。
@SpringBootApplication
public class SpringbootMailApplication implements ApplicationRunner
{
@Autowired
IMailService mailService;
public static void main( String[] args )
{
SpringApplication.run(SpringbootMailApplication.class, args);
}
//啟動(dòng)應(yīng)用后直接發(fā)送郵件
@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);
}
}
應(yīng)用啟動(dòng)成功,并成功發(fā)送了4封郵件
查看更多 “Java架構(gòu)師方案” 系列文章 以及 SpringBoot2.0學(xué)習(xí)示例
介紹
SpringBoot2.0-Jackdking 使用的各種示例,整合流行的中間件,此開源項(xiàng)目中的每個(gè)示例都是站在初學(xué)者角度,細(xì)心剖析技術(shù)實(shí)現(xiàn)細(xì)節(jié),幫助初學(xué)者快速掌握 Spring Boot2.0 各組件的使用。
文章
如果大家覺得這篇文章對(duì)你學(xué)習(xí)架構(gòu)有幫助的話,還請(qǐng)點(diǎn)贊,在看支持一下。github項(xiàng)目也記得點(diǎn)個(gè)星哦!
完整的demo項(xiàng)目,請(qǐng)關(guān)注公眾號(hào)“前沿科技bot“并發(fā)送"郵件系統(tǒng)"獲取。
總結(jié)
以上是生活随笔為你收集整理的java 开源 邮件系统_Java架构师方案—简单的邮件系统(附完整项目代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cmd 【已解决】windows连接手
- 下一篇: android reboot 定时重启可