java mail发送多个附件

转载 2015年11月17日 16:44:17
1、service层接口
package tv.bgsc.paymentplatform.mail.test;

public interface EmailService {

	/**********
	 * 单人邮件
	 * @param mailto    接收人邮件地址
	 * @param text      邮件内容
	 * @param title     邮件标题
	 * @throws Exception
	 */
	public void sendMail(String mailto,String text,String title) throws Exception;
	
	
	/**********
	 * 群发邮件
	 * @param mailto    接收人邮件地址
	 * @param text      邮件内容
	 * @param title     邮件标题
	 */
	public void sendBatcMail(String[] mailto,String text,String title);
	
	
	/**********
	 * 单人发送文件
	 * @param mailto    接收人邮件地址
	 * @param text      邮件内容
	 * @param title     邮件标题
	 * @param filePath  文件路径
	 * @throws Exception
	 */
	public void sendMailWithFile(String mailto,String text,String title,String[] filePath)throws Exception;
	
	
	/************
	 * 群发文件
	 * @param mailto    接收人邮件地址
	 * @param text      邮件内容
	 * @param title     邮件标题
	 * @param filePath  文件路径
	 * @throws Exception
	 */
	public void sendBatchMailWithFile(String[] mailto,String text,String title,String[] filePath)throws Exception;
}
<pre name="code" class="java">2、maven 依赖包
<span style="white-space:pre">		</span><dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.4</version>
		</dependency>
		<dependency>
			<groupId>javax.activation</groupId>
			<artifactId>activation</artifactId>
			<version>1.1</version>
		</dependency>



<pre name="code" class="java">3、实现发送与接收的实例代码
package tv.bgsc.paymentplatform.mail.test;

import java.util.ArrayList;
import java.util.List;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

/********
 * 
 * @description:邮件服务器实现
 * @author:Administrator
 * @date:2015年11月16日 下午7:42:43
 *
 */

@Service("emailService")
public class EmailServiceImpl implements EmailService {

	@Autowired
	private JavaMailSenderImpl javaMailSender;
	
	/*****
	 * 单人邮件发送
	 */
	@Override
	public void sendMail(String mailto, String text, String title)
			throws Exception {

		MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");  
        messageHelper.setFrom(new InternetAddress(javaMailSender.getUsername()));  
        messageHelper.setSubject(title);  
        messageHelper.setText(text, true);  
        messageHelper.setTo(new InternetAddress(mailto));  
        mimeMessage = messageHelper.getMimeMessage();  
        javaMailSender.send(mimeMessage);  
        /*EmailThread et = new EmailThread(mimeMessage);  
        et.start();*/
	}

	
	/*******
	 * 群发邮件
	 */
	@Override
	public void sendBatcMail(String[] mailto, String text, String title) {

		for (int i = 0; i < mailto.length; i++) {  
            try {  
                sendMail(mailto[i], text, title);  
            } catch (Exception e) {  
                //logger.error("+++ sendBatchMail error email:"+mailto[i]);  
            }  
        }  
	}

	
	/**********
	 * 单人文件
	 */
	@Override
	public void sendMailWithFile(String mailto, String text, String title,
			String[] filePath) throws Exception {

		MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");  
        messageHelper.setFrom(new InternetAddress(javaMailSender.getUsername()));  
        messageHelper.setSubject(title);  
        messageHelper.setText(text, true);  
        messageHelper.setTo(new InternetAddress(mailto));  
        mimeMessage = messageHelper.getMimeMessage();  
  
        if (filePath != null) {  
            BodyPart mdp = new MimeBodyPart();// 新建一个存放信件内容的BodyPart对象  
            mdp.setContent(text, "text/html;charset=UTF-8");// 给BodyPart对象设置内容和格式/编码方式  
            Multipart mm = new MimeMultipart();// 新建一个MimeMultipart对象用来存放BodyPart对象  
            mm.addBodyPart(mdp);// 将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)  
            // 把mm作为消息对象的内容  
            MimeBodyPart filePart;  
            FileDataSource filedatasource;  
            // 逐个加入附件  
            for (int j = 0; j < filePath.length; j++) {  
                filePart = new MimeBodyPart();  
                filedatasource = new FileDataSource(filePath[j]);  
                filePart.setDataHandler(new DataHandler(filedatasource));  
                try {  
                    filePart.setFileName(MimeUtility.encodeText(filedatasource.getName()));  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
                mm.addBodyPart(filePart);  
            }  
            mimeMessage.setContent(mm);  
        }  
        EmailThread et = new EmailThread(mimeMessage);  
        et.start();
	}

	
	/********
	 * 群发文件
	 */
	@Override
	public void sendBatchMailWithFile(String[] mailto, String text,
			String title, String[] filePath) throws Exception {

		MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");  
        messageHelper.setFrom(new InternetAddress(MimeUtility.encodeText(javaMailSender.getUsername())));  
        messageHelper.setSubject(title);  
        if (filePath != null) {  
            BodyPart mdp = new MimeBodyPart();// 新建一个存放信件内容的BodyPart对象  
            mdp.setContent(text, "text/html;charset=UTF-8");// 给BodyPart对象设置内容和格式/编码方式  
            Multipart mm = new MimeMultipart();// 新建一个MimeMultipart对象用来存放BodyPart对象  
            mm.addBodyPart(mdp);// 将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)  
            // 把mm作为消息对象的内容  
            MimeBodyPart filePart;  
            FileDataSource filedatasource;  
            // 逐个加入附件  
            for (int j = 0; j < filePath.length; j++) {  
                filePart = new MimeBodyPart();  
                filedatasource = new FileDataSource(filePath[j]);  
                filePart.setDataHandler(new DataHandler(filedatasource));  
                try {  
                    filePart.setFileName(MimeUtility.encodeText(filedatasource.getName()));  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
                mm.addBodyPart(filePart);  
            }  
            mimeMessage.setContent(mm);  
        } else {  
            messageHelper.setText(text, true);  
        }  
  
        List<InternetAddress> list = new ArrayList<InternetAddress>();// 不能使用string类型的类型,这样只能发送一个收件人  
        for (int i = 0; i < mailto.length; i++) {  
            list.add(new InternetAddress(mailto[i]));  
        }  
        InternetAddress[] address = list.toArray(new InternetAddress[list.size()]);  
  
        mimeMessage.setRecipients(Message.RecipientType.TO, address);  
        mimeMessage = messageHelper.getMimeMessage();  
  
        EmailThread et = new EmailThread(mimeMessage);  
        et.start();
	}
	
	class EmailThread extends Thread{
		private final MimeMessage mimeMessage;  
		  
        public EmailThread(MimeMessage mimeMessage) {  
            this.mimeMessage = mimeMessage;  
        }  
  
        @Override  
        public void run() {  
            javaMailSender.send(mimeMessage);  
        }
	}
}




            

相关文章推荐

解决java mail发送TXT附件被直接显示在正文中的问题

这两天遇到一个问题,关于使用java mail发送邮件的问题. 具体是这样子的:我使用java mail发送异常报告邮件,邮件中有一个包括异常日志的附件,和关于设备信息的邮件正文.如果日志为log后...

linux发送邮件和附件---mail,mailx

安装的包 [root@DevelopServer ~]# rpm -qa|grep mail procmail-3.22-25.1.el6_5.1.x86_64 mailcap-2.1.31-2.el...

java mail 发送多个附件

java mail发送多个附件 public void sendBatchMailWithFile(String[] mailto, String fromEmail, String text, ...

VB.NET如何实现发送mail 给多个收件者 并带附件

熟悉了下用VB.NET如何发送邮件并带附件,  经个人测试OK 界面如下:      后台代码: Imports System.Net Imports System.Net.Mail ...
  • cheug
  • cheug
  • 2012-05-09 18:53
  • 1417

Java Mail 发送附件的邮件

//send message with attachment public void sendAttachment(){ //首先创建Properties对象 Properties p...

使用java mail发送带附件的邮件

参考了部分网上资料。   /** * * 方法名称: sendMail|描述: 发送带附件的邮件 * @param smtpServer * @param username * @p...

Java Mail多人群发与多附件发送

相当于Maven的groupId,artifactId,version 构建后应该引用了两个JAR:。如果第二个JAR没有的话,大家可以去Maven库找一下,就不多讲述了。 实现的...

java mail发送邮件群发 带附件的发送(源代码+详细目录结构)java Email 发送实例

项目用到Java程序发送Email邮件从网上查了一些资料自己整理一个Demo 供大家参考 此邮件实现功能: 单发、群发邮件,可以带多个附件。欢迎拍砖

Python获取Mysql数据并Mail(多个附件的添加)

本文是【Python获取Mysql数据并Mail-->http://blog.csdn.net/babyfish13/article/details/72878198】的继续。 1、带多个附件邮件发送...

Zend\Mail进阶:在ZF2的邮件中使用模板、多个附件以及用DI整合

在解决了基础的ZF2使用DI操作Zend\Mail发送邮件之后,可能我们关注的问题会转移到更加实际的方面,包括: 如何为ZF2中的Zend\Mail设置模板并可以在模板中使用ViewHelper...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)