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(三):JavaMail发送文本邮件换行

问题描述:   发送文本邮件用\n,\r,\r\n都实现不了换行。 解决方案: 在创建Message对象的时候。 用setContent(Object o,String s);方法设置了内容格...
  • A__yes
  • A__yes
  • 2016年01月12日 17:14
  • 5885

String.format()方法使用说明

JDK1.5开始String类中提供了一个非常有用的方法String.format(String format, Object ... args) 查看源码得知其实是调用了java.util.For...
  • thc1987
  • thc1987
  • 2013年12月24日 15:48
  • 64397

java mail 发送多个附件

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

Java Mail发送邮件(带多个附件)

Java Mail是利用已存在的邮箱账号,不必登录如网易邮箱,qq邮箱等官方邮箱网站而使用程序发送邮件。这在web中很常见,比如直接在招聘网站给hr发邮件就是一个典型运用。 利用Java Mail发...

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

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

Java Mail 发送附件的邮件

//send message with attachment public void sendAttachment(){ //首先创建Properties对象 Properties p...
  • jing_le
  • jing_le
  • 2013年05月12日 21:17
  • 1778

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

参考了部分网上资料。   /** * * 方法名称: sendMail|描述: 发送带附件的邮件 * @param smtpServer * @param username * @p...
  • gbtang
  • gbtang
  • 2011年08月31日 17:11
  • 65

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

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

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

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

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

项目用到Java程序发送Email邮件从网上查了一些资料自己整理一个Demo 供大家参考 此邮件实现功能: 单发、群发邮件,可以带多个附件。欢迎拍砖...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java mail发送多个附件
举报原因:
原因补充:

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