1. 程式人生 > >Spring 4傳送HTML/純文字郵件並攜帶附件

Spring 4傳送HTML/純文字郵件並攜帶附件

applicationContext檔案配置內容如下:

<bean id="emailTemplate" class="org.springframework.mail.javamail.JavaMailSenderImpl">
	<property name="defaultEncoding" value="utf-8" />
	<property name="host" value="smtp.163.com" />
	<property name="username" value="[email protected]" />
	<property name="password" value="zhongguo123123" />
	<property name="javaMailProperties">
		<props>
			<prop key="mail.smtp.auth" >true</prop>
		</props>
	</property>
</bean>
郵件資訊封裝類:
import java.io.File;

/**
 * 郵件物件
 * @author liuhuan
 * Created by Administrator on 2014/10/24.
 */
public class EmailVo
{
    /**
     * 郵件傳送者
     */
    private String sender;

    /**
     * 郵件接收者
     */
    private String [] receivers;

    /**
     * 郵件抄送人
     */
    private String [] cc;

    /**
     * 郵件抄送人
     */
    private String [] bcc;

    /**
     * Email傳送的內容
     */
    private String emailContent;

    /**
     * 郵件主題
     */
    private String subject;

    /**
     * 郵件附件
     */
    private File [] attachFile;

    public String getSender()
    {
        return sender;
    }

    public void setSender(String sender)
    {
        this.sender = sender;
    }

    public String getEmailContent()
    {
        return emailContent;
    }

    public void setEmailContent(String emailContent)
    {
        this.emailContent = emailContent;
    }

    public String getSubject()
    {
        return subject;
    }

    public void setSubject(String subject)
    {
        this.subject = subject;
    }

    public File[] getAttachFile()
    {
        return attachFile;
    }

    public void setAttachFile(File[] attachFile)
    {
        this.attachFile = attachFile;
    }

    public String[] getReceivers()
    {
        return receivers;
    }

    public void setReceivers(String[] receivers)
    {
        this.receivers = receivers;
    }

    public String[] getCc()
    {
        return cc;
    }

    public void setCc(String[] cc)
    {
        this.cc = cc;
    }

    public String[] getBcc()
    {
        return bcc;
    }

    public void setBcc(String[] bcc)
    {
        this.bcc = bcc;
    }
}
郵件傳送介面:
import com.sdyc.app.newmedia.vo.EmailVo;

import javax.mail.MessagingException;
import java.util.Date;

/**
 * Email通知訊息傳送
 * @author liuhuan
 * Created by Administrator on 2014/10/23.
 */
public interface EmailNotifyService
{
    /**
     * 傳送簡單文字Email訊息
     * @param emailVo
     */
    public void sendEmailMessageOfSimpleText(EmailVo emailVo, Date date);

    /**
     * 傳送HTML格式的訊息
     * @param emailVo
     * @param date
     */
    public void sendEmailMessageOfHtmlText(EmailVo emailVo , Date date) throws MessagingException;

    /**
     * 帶附件並且html格式郵件傳送,帶附件並簡單文字格式郵件傳送
     * @param emailVo
     */
    public void sendEmailMessageOfAttachedFileAndSimpleText(EmailVo emailVo, Date date, boolean isHtmlText) throws MessagingException;

}
郵件傳送實現:
import com.sdyc.app.newmedia.service.EmailNotifyService;
import com.sdyc.app.newmedia.vo.EmailVo;
import org.apache.commons.lang.StringUtils;
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;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.Date;

/**
 * Email傳送
 * @author Rayn
 * Created by Administrator on 2014/10/23.
 */
@Service
public class EmailNotifyServiceImpl implements EmailNotifyService
{
    @Autowired
    private JavaMailSender emailTemplate;

    public void setEmailTemplate(JavaMailSender emailTemplate)
    {
        this.emailTemplate = emailTemplate;
    }

    /**
     * 傳送簡單文字Email訊息
     * @param emailVo
     */
    @Override
    public void sendEmailMessageOfSimpleText(EmailVo emailVo, Date date)
    {
        SimpleMailMessage simpleTextMessage = new SimpleMailMessage();
        simpleTextMessage.setFrom(emailVo.getSender());
        simpleTextMessage.setTo(emailVo.getReceivers());
        if(emailVo.getBcc().length > 0)
        {
            simpleTextMessage.setBcc(emailVo.getBcc());
        }
        if(emailVo.getCc().length > 0)
        {
            simpleTextMessage.setCc(emailVo.getCc());
        }
        simpleTextMessage.setText(emailVo.getEmailContent());

        if(null == date)
        {
            date = new Date();
        }
        simpleTextMessage.setSentDate(date);

        emailTemplate.send(simpleTextMessage);
    }

    /**
     * 帶附件並簡單文字格式郵件傳送
     *
     * @param emailVo
     */
    @Override
    public void sendEmailMessageOfHtmlText(EmailVo emailVo , Date date) throws MessagingException
    {
        MimeMessage message = emailTemplate.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);

        helper.setFrom(emailVo.getSender());
        helper.setValidateAddresses(true);
        if(StringUtils.isNotBlank(emailVo.getEmailContent()))
        {
            helper.setText(emailVo.getEmailContent(), true);
        }
        helper.setSubject(emailVo.getSubject());
        helper.setCc(emailVo.getCc());
        helper.setTo(emailVo.getReceivers());
        helper.setBcc(emailVo.getBcc());
        if(null == date)
        {
            date = new Date();
        }
        helper.setSentDate(date);

        emailTemplate.send(message);
    }

    /**
     * 帶附件並且html格式郵件傳送,HTML格式的訊息
     * @param emailVo
     * @param date
     */
    @Override
    public void sendEmailMessageOfAttachedFileAndSimpleText(EmailVo emailVo, Date date, boolean isHtmlText) throws MessagingException
    {
        MimeMessage message = emailTemplate.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);

        helper.setFrom(emailVo.getSender());
        //helper.setValidateAddresses(true);
        helper.setText(emailVo.getEmailContent(), isHtmlText);
        helper.setSubject(emailVo.getSubject());
        helper.setCc(emailVo.getCc());
        helper.setTo(emailVo.getReceivers());
        helper.setBcc(emailVo.getBcc());
        if(null == date)
        {
            date = new Date();
        }
        helper.setSentDate(date);

        for(File file : emailVo.getAttachFile())
        {
            FileSystemResource fileSystemResource = new FileSystemResource(file);
            helper.addAttachment(file.getName(), fileSystemResource);
        }
        emailTemplate.send(message);
    }
}
郵件傳送測試:
@Test
public void ss( ) throws Exception {
	EmailVo emailVo = new EmailVo();
	emailVo.setReceivers(new String[]{"[email protected]"});
	emailVo.setCc(new String[]{});
	emailVo.setBcc(new String[]{});
	emailVo.setSubject("測試");
	emailVo.setSender("[email protected]");
	emailVo.setEmailContent("<html><body><h1>中國人民</h1><h5>測試<font color=red>測試測試測試測試測試測</font>試測試測試測試測試測試測試測試測試測試</h5></body></html>");

	File [] f = new File[]{new File("E:/test11111.txt"), new File("E:/test2.txt")};
	emailVo.setAttachFile(f);

	emailNotifyService.sendEmailMessageOfHtmlText(emailVo, new Date());

	emailNotifyService.sendEmailMessageOfAttachedFileAndSimpleText(emailVo, null, true);

}






相關推薦

Spring 4傳送HTML/文字郵件攜帶附件

applicationContext檔案配置內容如下: <bean id="emailTemplate" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property

用JAVA Spring Mail 傳送HTML格式的郵件,樣式丟失的問題

 QQ郵箱網頁版開啟HTML郵件是正常的,用PC版foxmail 或者 手機QQ郵箱APP開啟是不正常的,排版很亂。 主要原因: 使用郵件客戶端檢視郵件,哪怕只是在網頁上看郵件,你的郵件也不要用DIV去做,要用TABLE; 而且也不能用外部呼叫樣式,不能用內部頁面樣式,

Python3.5同時給多人傳送文字郵件

關鍵點1:收件人郵箱msg_to=['[email protected]','[email protected]','[email protected]'],以列表的方式給出。 關鍵點2:msg['To'] =','.join(msg_to)。 關鍵點3:s.s

Python SMTP 傳送文字郵件

利用Python的smtp和email模組傳送郵件 最近,開始學習python,因為從未接觸過python,所以這幾天抽時間看了一下基礎知識,然後就看到了python郵件這一塊。 因為使用qq郵箱傳送,所以也碰到了一些問題。所以,在此對使用python,利用qq郵箱傳送郵件

Python模組探祕之smtplib,實現文字郵件傳送

今天學到了如何使用Python的smtplib庫傳送郵件,中間也是遇到了各種各樣的錯誤和困難,還好都一一的解決了。下面來談一談我的這段經歷。 配置你的郵箱 為什麼要配置郵箱呢?具體要配置什麼呢? 因為我們申請的一些免費郵箱都是預設不開啟smtp/pop

python傳送html格式的郵件

python發郵件 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 import smtplib 4 from email.mime.text import MIMEText 5 import string 6 mailto_list=["[

Springboot2.0 傳送HTML 格式的郵件。【親測有效】

目的:使用 Springboot2.0 傳送 HTML 格式的郵件   這是建立在 你會使用 springboot2.0 傳送郵件的基礎上,參考這篇部落格: https://blog.csdn.net/Tomwildboar/article/details/83028375

使用linux的mail命令傳送html格式的郵件

今天在shell中使用mail命令傳送郵件,希望傳送表格,就用了html的格式來發送。但是開始的時候發現Outlook收到的顯示為html的原始碼, 就查閱了下相關資料,問題解決了,記錄下,以備以後再用: linux使用mail函式傳送需要新增 header引數,

【二】Python3使用SMTP傳送HTML格式的郵件

一、設定開啟SMTP服務並獲取授權碼二、使用Python3 傳送HTML格式的郵件0.使用的環境為:Python 3.6.3 (64bit)PyCharm 2017.3 (64bit)1.實現程式碼:i

python批量解析郵件下載附件

python中的email模組可以方便的解析郵件,先上程式碼 #-*- encoding: gb2312 -*- import os import email def mail_to_text(ma

python 利用pop3接收郵件儲存附件

def SaveAttach():# login the pop3 server ,retrive the new mails ,and download the attachments dstdir =dirname+str(time.ctime(time.time()))+'.zip'

javamail郵件Multipart支援同時發text和html混合訊息,alternative文字與超文字共存

         javamail郵件Multipart支援同時發text和html混合訊息,alternative純文字與超文字共存   轉載:http://www.cnblogs.com/zdz8207/p/java-javam

spring boot傳送郵件,使用的velocity模板(html)

新增依賴: <!--郵件依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&

分享一個郵件傳送的java例項(文字,帶附件,多人抄送,多人密送)

貼程式碼: 1 import javax.activation.DataHandler; 2 import javax.activation.FileDataSource; 3 import javax.mail.*; 4 import javax.mail.internet.*;

Python傳送多個附件和支援HTML文字內容的 Email 實現

由於工作中經常需要收發電子郵件,例如每日(周)的工作報告,測試報告,監控告警,定時提醒等等,大都已電子郵件的形式傳送。本文將實現一個 Python 的電子郵件傳送類,支援傳送多個附件(目錄),HTML或純文字內容,抄送收件人,多個接收者等功能。 程式碼實現 #!/usr/

python應用系列教程——python使用smtp協議傳送郵件html文字郵件、圖片郵件、檔案附件郵件

全棧工程師開發手冊 (作者:欒鵬) python使用smtp協議傳送電子郵件。包含傳送html文字郵件、包含圖片附件的郵件,包含其他檔案附件的郵件。可設定郵件的收發人,主題,內容。並以163郵件為例,分別在python2.7和python3.6下進行試驗。

封裝PHP mail函式傳送HTML郵件使用中文發件人且自定義發件人郵箱地址

 在寫PHP程式碼時,傳送郵件著實是一件比較讓人鬱悶的事情,PHP預設提供的mail函式太弱了,很難琢磨清楚到底該怎麼用。雖然也有很一些做得比較好得第三方庫,可以提供相當強大的郵件功能,尤其是可以很簡單的配置其使用gm

Spring JavaMail傳送郵件

JavaMail的介紹      JavaMail,顧名思義,提供給開發者處理電子郵件相關的程式設計介面。它是Sun釋出的用來處理email的API。它可以方便地執行一些常用的郵件傳輸。    雖然JavaMail是Sun的A

獲取html下的所有文字的方法

  第一種是看別人部落格的,第二種是自己發現的。 第一種: #-*- coding: utf8 -*- import re html = """ <div class="box-s1-l"> <div class="col"&g

合併轉化一代測序seq文字為fasta格式檔案

use strict; use warnings; my @dir; my @filelist; open OUT, ">result.fst"; opendir (DIR, "./") or die "can't open the directory!"; @dir = read