Spring傳送郵件如何內嵌圖片增加附件
阿新 • • 發佈:2020-10-22
用到的JAR包:
spring.jar
mail.jar
activation.jar
commons-logging.jar
log4j-1.2.15.jar
內嵌圖片,給定一個CID值即可,增加附件,使用MimeMessageHelper的addAttachment即可
現在一般不會做內嵌圖片,因為這樣郵件會很大,容易對伺服器造成壓力,一般做法是使用圖片連結
另外,如果要做內嵌或傳送圖片,你應該使用信用較高的郵箱帳戶,否則會報錯:
554 DT:SPM 傳送的郵件內容包含了未被許可的資訊,或被系統識別為垃圾郵件。請檢查是否有使用者傳送病毒或者垃圾郵件
對於163郵箱伺服器會產生的其他問題,參見:http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html
以下是示例程式碼:
package test; import java.util.Properties; import javax.mail.Session; import javax.mail.internet.MimeMessage; import org.springframework.core.io.ClassPathResource; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; /** * 這裡不做異常處理 */ public class SendMail { public static void main(String[] args) throws Exception{ // 傳送器 JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost("smtp.163.com"); sender.setPort(25); // 預設就是25 sender.setUsername("使用者@163.com"); sender.setPassword("密碼"); sender.setDefaultEncoding("UTF-8"); // 配置檔案物件 Properties props = new Properties(); props.put("mail.smtp.auth","true"); // 是否進行驗證 Session session = Session.getInstance(props); sender.setSession(session); // 為傳送器指定會話 MimeMessage mail = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mail,true); helper.setTo("使用者@163.com"); // 傳送給誰 helper.setSubject("強哥邀請,誰敢不從!"); // 標題 helper.setFrom("使用者@163.com"); // 來自 // 郵件內容,第二個引數指定傳送的是HTML格式 helper.setText("<font color='red'>強哥邀請你訪問我的部落格:http://cuisuqiang.iteye.com/!</font><br><img src='cid:myImg'>",true); // 增加CID內容 ClassPathResource img = new ClassPathResource("abc.jpg"); helper.addInline("myImg",img); // 增加附件 ClassPathResource file = new ClassPathResource("abc.zip"); helper.addAttachment("abc.zip",file); sender.send(mail); // 傳送 System.out.println("郵件傳送成功"); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。