首先需要进入你的qq邮箱中开启POP3/SMTP服务。
1.点击左上方设置--》账户
2.开启POP3/STMP服务,开启服务会有一个授权码,需要保存下来,配置到代码中。
3.引入pom依赖。
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
4.配置applicationContext.xml文件
<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="你的qq邮箱"/>
<property name="password" value="pop3授权码"/>
<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>
5.编写工具类
import org.springframework.transaction.annotation.Transactional;
import javax.mail.MessagingException;
public interface MailSenderSrvServices {
/*普通格式发送
* @recipient 收件人地址
* @subject 主题
* @content 正文
* */
@Transactional
void sendEmail(String recipient,String subject,String content);
/*带抄送
* */
void sendHtmlEmail(String recipient,String subject,String content) throws MessagingException, Exception;
}
import com.xcq.service.MailSenderSrvServices;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@Service("MailSenderSrvService")
public class MailSenderSrvServiceImpl implements MailSenderSrvServices {
@Autowired
private JavaMailSenderImpl mailSender;
/**
* JavaMailSenderImpl支持MimeMessages和SimpleMailMessages。
* MimeMessages为复杂邮件模板,支持文本、附件、html、图片等。
* SimpleMailMessages实现了MimeMessageHelper,为普通邮件模板,支持文本
*/
/**
* 描述:Spring 依赖注入
* @author wanghaoyu
* @date
* @version 1.0
* @param mailSender
* @since 1.8
*
*/
public void setMailSender(JavaMailSenderImpl mailSender) {
this.mailSender = mailSender;
}
/**
* 单发
*
* @param recipient 收件人
* @param subject 主题
* @param content 内容
*/
@Override
public void sendEmail(String recipient,String subject,String content) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
messageHelper.setFrom("xx@qq.com");//发件人
messageHelper.setTo(recipient);
messageHelper.setSubject(subject);
messageHelper.setText(content,true);//true代表支持html格式
mailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
@Override
public void sendHtmlEmail(String recipient,String subject,String content) throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
messageHelper.setFrom("xx@qq.com");//发件人
messageHelper.setTo(recipient);
messageHelper.setSubject(subject);
messageHelper.setText(content,true);
mimeMessage.setRecipients(Message.RecipientType.CC,"xx@qq.com");//抄送人
mailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
6.编写测试类
测试结果