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 发送多个附件

java mail发送多个附件 public void sendBatchMailWithFile(String[] mailto, String fromEmail, String text, ...
  • fairyhawk
  • fairyhawk
  • 2012年09月15日 21:03
  • 6721

javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)

先看源码,再来理解,可以直接使用! JavaMailWithAttachment.java: private MimeMessage message; private Session...
  • qq741437836
  • qq741437836
  • 2016年08月10日 17:24
  • 5790

转:Linux下mail命令附件发送使用技巧

原文链接:http://www.cnblogs.com/zhousir1991/archive/2011/03/23/1992550.htmlLinux下mail命令附件发送使用技巧 Posted ...
  • noizz
  • noizz
  • 2011年05月23日 18:12
  • 7099

利用spring mail 发送带附件的邮件

http://pan.baidu.com/s/1mhC86NI
  • zy_281870667
  • zy_281870667
  • 2016年05月26日 15:48
  • 2681

强大的java编程实现邮件发送功能,支持内容,上传多个图片和多个附件

自己写的邮件发送功能,可以支持发送内容,发送多个图片和多个附件。            分享给大家,下面是我发送邮件的源码,贴过去用吧...
  • u010570991
  • u010570991
  • 2014年03月26日 14:34
  • 1612

JavaMail发送带附件的电子邮件示例

/** * CrazyItTest * 使用JavaMail发送带附件的电子邮件示例 */ package com.labci.javamail.test; import java.i...
  • tujiyue
  • tujiyue
  • 2011年05月26日 21:52
  • 4176

linux中发送邮件和附件

先说下linux里基本的mail命令 在linux中输入mail,就进行了收件箱,并显示最多二十封邮件列表。 此时命令提示符为"&" unread 标记为未读邮件 h|header...
  • jk110333
  • jk110333
  • 2012年10月20日 15:51
  • 5323

Linux 通过 sendEmail 发送带附件邮件

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash perl和web...
  • u010010664
  • u010010664
  • 2016年09月11日 09:16
  • 2677

Java Mail 发送邮件(带附件)简单示例

背景 最近项目中涉及到发送邮件功能,也参照了很多学习资料,现将Demo例子分享一下,当作记录,也使更多人能更快使用. 本篇不涉及原理内容,如果有需要,后续补充讨论. 所需jar包 mail-1.4....
  • YY_WG
  • YY_WG
  • 2016年10月19日 16:28
  • 2203

javamail邮件发送,带附件发送

package com.frame.util; import java.util.Date; import java.util.Enumeration; import java.util.Prope...
  • xunwei0303
  • xunwei0303
  • 2017年04月05日 20:44
  • 613
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java mail发送多个附件
举报原因:
原因补充:

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