一、pom.xml中添加依赖
<!-- 邮箱配置-->
<!--邮箱依赖-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!--spring支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.0.0.RELEASE</version>
</dependency>
二、设置发送邮箱开启POPS/SMTP服务,复制密钥。(如图所示)
三、在applicationContext.xml中配置连接
<!-- 邮箱配置,修改email和密钥其他保持不变-->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.qq.com"/>
<property name="port" value="465"/>
<property name="username" value="xxx@qq.com"/>//email
<property name="password" value="xxxx"/>//POPS/SMTP密钥
<property name="defaultEncoding" value="UTF-8"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
</props>
</property>
</bean>
四、定义发送接口
package com.bsuc.service;
import org.springframework.transaction.annotation.Transactional;
import javax.mail.MessagingException;
/**
* @author rceng
* @version 1.0.0
* @ClassName MailSenderSrvServices.java
* @createTime 2021年04月27日 09:38:00
* 邮箱接口
*/
public interface MailSenderSrvService {
/*
* 普通格式发送
* @recipient 收件人地址
* @subject 主题
* @content 正文
*/
@Transactional
void sendEmail(String recipient,String subject,String content);
/*带抄送
* */
void sendHtmlEmail(String recipient,String subject,String content) throws MessagingException, Exception;
}
五、编写发送实现类
package com.bsuc.service.impl;
import com.bsuc.service.MailSenderSrvService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.mail.Message;
import javax.mail.MessagingException;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.internet.MimeMessage;
/**
* @author rceng
* @version 1.0.0
* @ClassName MailSenderSrvServiceImpl.java
* @createTime 2021年04月27日 09:40:00
*/
@Service("MailSenderSrvService")
public class MailSenderSrvServiceImpl implements MailSenderSrvService {
@Autowired
private JavaMailSenderImpl javaMailSender;
public void setMailSender(JavaMailSenderImpl javaMailSender) {
this.javaMailSender = javaMailSender;
}
@Override
public void sendEmail(String recipient, String subject, String content) {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper((MimeMessage) mimeMessage,true,"UTF-8");
messageHelper.setFrom("xxxx@qq.com");//发件人
messageHelper.setTo(recipient);
messageHelper.setSubject(subject);
messageHelper.setText(content,true);//true代表支持html格式
javaMailSender.send((MimeMessage) mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
@Override
public void sendHtmlEmail(String recipient, String subject, String content) throws MessagingException, Exception {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
messageHelper.setFrom("xxx@qq.com");//发件人
messageHelper.setTo(recipient);
messageHelper.setSubject(subject);
messageHelper.setText(content,true);
mimeMessage.setRecipients(Message.RecipientType.CC,"xxxx@qq.com");//抄送人
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
六、编写测试类
package com.bsuc.tests;
import com.bsuc.service.MailSenderSrvService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author rceng
* @version 1.0.0
* @ClassName TestMail.java
* @createTime 2021年04月27日 09:51:00
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:applicationContext.xml" })
public class TestMail {
//private static MailSenderSrvService mailsend;
@Autowired
private MailSenderSrvService mailsend;
@Test
public void testmaila(){
String to = "xxxx@qq.com"; //收件人地址
String subject = "this is new email"; //邮件标题
String content = "好好学习,天天向上"; //邮件内容
mailsend.sendEmail(to,subject,content); //发送邮件
}
public MailSenderSrvService getMailsend(){
return mailsend;
}
public void setMailsend(MailSenderSrvService mailsend){
this.mailsend = mailsend;
}
}
```
一个简易版的邮箱测试完成,注意提前配置日志文件。