這篇文章主要介紹“怎么實現springboot郵箱發送”,在日常操作中,相信很多人在怎么實現springboot郵箱發送問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么實現springboot郵箱發送”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
步驟一:添加依賴,在pom.xml文件中加入spring-boot-starter-mail依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
步驟二:獲取各大郵箱授權
例如:獲取QQ郵箱授權
QQ郵箱->設置->賬戶->POP3/SMTP服務:開啟服務后會獲得QQ的授權碼.
# JavaMailSender 郵件發送的配置
spring.mail.host=smtp.qq.com
spring.mail.username=用戶qq郵箱
#QQ郵箱的授權碼
spring.mail.password=授權碼
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.default-encoding=UTF-8
第三步:實現郵件發送功能
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
/**
* @author XXXXXX
*
*/
@Service
public class MailSendService
{
@Autowired
private JavaMailSender mailSender;
/**日志打印.*/
private Logger logger = Logger.getLogger(MailSendService.class);
/**
* 發送簡單郵件
* @param fromPos 發送地址
* @param toPos 目的地址
* @param subject 郵件主題
* @param text 郵件內容
* @return 發送是否成功
*/
public boolean sendSimpleMail(String fromPos, String toPos, String subject, String text){
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(fromPos);
//可添加多個目的地址
msg.setTo(toPos);
msg.setSubject(subject);
msg.setText(text);
//msg.setBcc(bcc) 密送地址
//msg.setCc(cc) 抄送地址
try
{
mailSender.send(msg);
}
catch (Exception e)
{
logger.error("發送簡單郵件失敗.", e);
return false;
}
return true;
}
/**
* 發送帶有附件的郵件
* @param fromPos 發送地址
* @param toPos 目的地址
* @param subject 郵件主題
* @param file 附件
* @return 發送是否成功
*/
public boolean sendAttachFileMail(String fromPos, String toPos, String subject,
String text, FileSystemResource file){
MimeMessage msg = mailSender.createMimeMessage();
try
{
//MimeMessageHelper構造器,如果要發送附件郵件,必須指定multipart參數為true
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setFrom(fromPos);
helper.setTo(toPos);
helper.setSubject(subject);
helper.setText(text);
helper.addAttachment(file.getFilename(), file);
mailSender.send(msg);
}
catch (MessagingException e)
{
logger.error("發送附件郵件失敗.", e);
return false;
}
return true;
}
/**
* 發送靜態資源的文件,如:圖片
* @param fromPos 發送地址
* @param toPos 目的地址
* @param subject 郵件主題
* @param file 附件
* @return 發送是否成功
*/
public boolean sendInlineMail(String fromPos, String toPos, String subject,
FileSystemResource file){
MimeMessage msg = mailSender.createMimeMessage();
try
{
//MimeMessageHelper構造器,如果要發送附件郵件,必須指定multipart參數為true
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setFrom(fromPos);
helper.setTo(toPos);
helper.setSubject(subject);
helper.setText("<html><body>靜態資源:<img src='cid:pic' /></body></html>", true);
helper.addInline("pic", file);
mailSender.send(msg);
}
catch (MessagingException e)
{
logger.error("發送附件郵件失敗.", e);
return false;
}
return true;
}
}
到此,關于“怎么實現springboot郵箱發送”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。