邮件协议基本知识

文末源码
  • 1.SMTP:简单邮件传输协议,用于发送邮件,默认端口25
  • 2.POP2: 邮局协议2,用于接收邮件,默认端口109,基本已废弃
  • 3.pop3: 邮局协议3,用于接收邮件,默认端口 110
  • 4.IMAP:网络信息访问协议,用于接收邮件,默认端口 143,只下载邮件标题 收件人信息

以QQ设置中为例:

代码演示

第一步,新建项目SpringBoot工程。
第二步,引入maven依赖
发送邮件所需依赖,在pom.xml加入。

org.springframework.bootspring-boot-starter-mail

第三步,配置application.properties配置文件

spring.application.name=mailspring.mail.host=smtp.qq.comspring.mail.username=xxx@qq.comspring.mail.password=your_password# 注意:这里是你的邮箱的第三方客户端密码,而不是邮箱的登录密码!spring.mail.default-encoding=UTF-8

此处生成密码方法如下,点击邮箱设置,生成密码

发送带有照片的邮件

service

// 将配置文件的username注入@Value("${spring.mail.username}")private String from;@Autowiredprivate JavaMailSender javaMailSender;/** * 发送带图片的邮件 * @param Id * @param to * @param subject * @param content * @param id * @throws MessagingException */public void sendImgResourceMail(String to,String subject,String content,String Id, String id) {logger.info("发送带图片的邮件");MimeMessage mailMessage = javaMailSender.createMimeMessage();MimeMessageHelper helper = null;try {helper = new MimeMessageHelper(mailMessage , true);helper.setTo(to);helper.setSubject(subject);helper.setText(content , true);// 发送 者helper.setFrom(from);// 添加图片FileSystemResource srcPath = new FileSystemResource(new File(Id));helper.addInline(Id , srcPath);javaMailSender.send(mailMessage);// 发送邮件} catch (MessagingException e) {logger.info("发送带图片的邮件失败");}}

测试

@Testpublic void sendImgResourceMail() throws MessagingException {String srcPath = "F:\\img\\1.png";String Id = "666";String content = "

仓库地址

Github仓库地址: https://github.com/xmpjava/mail-java
Gitee仓库地址: https://gitee.com/love-code-bear/mail