`
jyangzi5
  • 浏览: 213606 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

javaMail 测试

 
阅读更多
 
 
1、服务接口
Java代码 复制代码 收藏代码
  1. package com.*.email.service;  
  2.   
  3. /** 
  4.  * Description : 邮件相关服务接口.  
  5.  
  6.  * Create Time : 2013年12月2日 上午10:08:42  
  7.  
  8.  * Copyright : Copyright (c) 2010 - 2013 All rights reserved.  
  9.  
  10.  *  
  11.  * @author Mr Yan 
  12.  * @version 1.0 
  13.  */  
  14. public interface EmailService {  
  15.   
  16.       
  17.     /** 
  18.      * 发送邮件 
  19.      * @param mailto        收件邮箱 
  20.      * @param fromEmail     发送邮箱 
  21.      * @param text          内容 
  22.      * @param title         标题 
  23.      * @throws Exception 
  24.      */  
  25.     public void sendMail(String mailto, String fromEmail, String text, String title) throws Exception;  
  26.   
  27.   
  28.     /** 
  29.      * 批量下发邮件 
  30.      * @param mailto        收件邮箱 
  31.      * @param fromEmail     发送邮箱 
  32.      * @param text          内容 
  33.      * @param title         标题 
  34.      * @throws Exception 
  35.      */  
  36.     public void sendBatchMail(String[] mailto, String fromEmail, String text, String title) throws Exception;  
  37.   
  38.       
  39.     /** 
  40.      * 批量下发邮件待附件 
  41.      * @param mailto        收件邮箱 
  42.      * @param fromEmail     发送邮箱 
  43.      * @param text          内容 
  44.      * @param title         标题 
  45.      * @param filePath      附件 
  46.      * @throws Exception 
  47.      */  
  48.     public void sendBatchMailWithFile(String[] mailto, String fromEmail, String text, String title, String[] filePath) throws Exception;  
  49.   
  50. }  
package com.*.email.service;

/**
 * Description : 邮件相关服务接口. 

 * Create Time : 2013年12月2日 上午10:08:42 

 * Copyright : Copyright (c) 2010 - 2013 All rights reserved. 

 * 
 * @author Mr Yan
 * @version 1.0
 */
public interface EmailService {

	
	/**
	 * 发送邮件
	 * @param mailto		收件邮箱
	 * @param fromEmail		发送邮箱
	 * @param text			内容
	 * @param title			标题
	 * @throws Exception
	 */
	public void sendMail(String mailto, String fromEmail, String text, String title) throws Exception;


	/**
	 * 批量下发邮件
	 * @param mailto		收件邮箱
	 * @param fromEmail		发送邮箱
	 * @param text			内容
	 * @param title			标题
	 * @throws Exception
	 */
	public void sendBatchMail(String[] mailto, String fromEmail, String text, String title) throws Exception;

	
	/**
	 * 批量下发邮件待附件
	 * @param mailto		收件邮箱
	 * @param fromEmail		发送邮箱
	 * @param text			内容
	 * @param title			标题
	 * @param filePath		附件
	 * @throws Exception
	 */
	public void sendBatchMailWithFile(String[] mailto, String fromEmail, String text, String title, String[] filePath) throws Exception;

}



2、服务接口实现
Java代码 复制代码 收藏代码
  1. package com.*.email.service.impl;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import javax.activation.DataHandler;  
  7. import javax.activation.FileDataSource;  
  8. import javax.annotation.Resource;  
  9. import javax.mail.BodyPart;  
  10. import javax.mail.Message;  
  11. import javax.mail.Multipart;  
  12. import javax.mail.internet.InternetAddress;  
  13. import javax.mail.internet.MimeBodyPart;  
  14. import javax.mail.internet.MimeMessage;  
  15. import javax.mail.internet.MimeMultipart;  
  16. import javax.mail.internet.MimeUtility;  
  17.   
  18. import org.springframework.mail.javamail.JavaMailSenderImpl;  
  19. import org.springframework.mail.javamail.MimeMessageHelper;  
  20. import org.springframework.stereotype.Service;  
  21.   
  22. import com.*.email.service.EmailService;  
  23.   
  24. /** 
  25.  * Description : 邮件相关服务接口实现.  
  26.  
  27.  * Create Time : 2013年12月2日 上午10:10:25  
  28.  
  29.  * Copyright : Copyright (c) 2010 - 2013 All rights reserved.  
  30.  
  31.  *  
  32.  * @author Mr Yan 
  33.  * @version 1.0 
  34.  */  
  35. @Service  
  36. public class EmailServiceImpl implements EmailService{  
  37.       
  38.     @Resource(name = "javaMailSender")  
  39.     private JavaMailSenderImpl javaMailSender;  
  40.   
  41.     class EmailThread extends Thread {  
  42.         private final MimeMessage mimeMessage;  
  43.         public EmailThread(MimeMessage mimeMessage) {  
  44.             this.mimeMessage = mimeMessage;  
  45.         }  
  46.         @Override  
  47.         public void run() {  
  48.             javaMailSender.send(mimeMessage);  
  49.         }  
  50.   
  51.     }  
  52.   
  53.     @Override  
  54.     public void sendMail(String mailto, String fromEmail, String text, String title) throws Exception {  
  55.         fromEmail = javaMailSender.getUsername();  
  56.           
  57.         MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
  58.         MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true"UTF-8");  
  59.         messageHelper.setFrom(new InternetAddress(fromEmail));  
  60.         messageHelper.setSubject(title);  
  61.         messageHelper.setText(text, true);  
  62.         messageHelper.setTo(new InternetAddress(mailto));  
  63.         mimeMessage = messageHelper.getMimeMessage();  
  64.   
  65.         EmailThread et = new EmailThread(mimeMessage);  
  66.         et.start();  
  67.   
  68.     }  
  69.   
  70.     @Override  
  71.     public void sendBatchMail(String[] mailto, String fromEmail, String text, String title) throws Exception {  
  72.           
  73.         MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
  74.         MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true"UTF-8");  
  75.         messageHelper.setFrom(new InternetAddress(fromEmail));  
  76.         messageHelper.setSubject(title);  
  77.         messageHelper.setText(text, true);  
  78.   
  79.         List<InternetAddress> list = new ArrayList<InternetAddress>();  
  80.         for (int i = 0; i < mailto.length; i++) {  
  81.             list.add(new InternetAddress(mailto[i]));  
  82.         }  
  83.         InternetAddress[] address = list.toArray(new InternetAddress[list.size()]);  
  84.         mimeMessage.setRecipients(Message.RecipientType.TO, address);  
  85.         mimeMessage = messageHelper.getMimeMessage();  
  86.   
  87.         EmailThread et = new EmailThread(mimeMessage);  
  88.         et.start();  
  89.     }  
  90.   
  91.     @Override  
  92.     public void sendBatchMailWithFile(String[] mailto, String fromEmail, String text, String title, String[] filePath) throws Exception {  
  93.           
  94.         MimeMessage mimeMessage = javaMailSender.createMimeMessage();  
  95.         MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true"UTF-8");  
  96.         messageHelper.setFrom(new InternetAddress(MimeUtility.encodeText(fromEmail)));  
  97.         messageHelper.setSubject(title);  
  98.         if (filePath != null) {  
  99.             BodyPart mdp = new MimeBodyPart();// 新建一个存放信件内容的BodyPart对象  
  100.             mdp.setContent(text, "text/html;charset=UTF-8");// 给BodyPart对象设置内容和格式/编码方式  
  101.             Multipart mm = new MimeMultipart();// 新建一个MimeMultipart对象用来存放BodyPart对象  
  102.             mm.addBodyPart(mdp);// 将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)  
  103.             // 把mm作为消息对象的内容  
  104.             MimeBodyPart filePart;  
  105.             FileDataSource filedatasource;  
  106.             // 逐个加入附件  
  107.             for (int j = 0; j < filePath.length; j++) {  
  108.                 filePart = new MimeBodyPart();  
  109.                 filedatasource = new FileDataSource(filePath[j]);  
  110.                 filePart.setDataHandler(new DataHandler(filedatasource));  
  111.                 try {  
  112.                     filePart.setFileName(MimeUtility.encodeText(filedatasource.getName()));  
  113.                 } catch (Exception e) {  
  114.                     e.printStackTrace();  
  115.                 }  
  116.                 mm.addBodyPart(filePart);  
  117.             }  
  118.             mimeMessage.setContent(mm);  
  119.         } else {  
  120.             messageHelper.setText(text, true);  
  121.         }  
  122.   
  123.         List<InternetAddress> list = new ArrayList<InternetAddress>();  
  124.         for (int i = 0; i < mailto.length; i++) {  
  125.             list.add(new InternetAddress(mailto[i]));  
  126.         }  
  127.         InternetAddress[] address = list.toArray(new InternetAddress[list.size()]);  
  128.   
  129.         mimeMessage.setRecipients(Message.RecipientType.TO, address);  
  130.         mimeMessage = messageHelper.getMimeMessage();  
  131.   
  132.         EmailThread et = new EmailThread(mimeMessage);  
  133.         et.start();  
  134.     }  
  135. }  
package com.*.email.service.impl;

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

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.annotation.Resource;
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.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import com.*.email.service.EmailService;

/**
 * Description : 邮件相关服务接口实现. 

 * Create Time : 2013年12月2日 上午10:10:25 

 * Copyright : Copyright (c) 2010 - 2013 All rights reserved. 

 * 
 * @author Mr Yan
 * @version 1.0
 */
@Service
public class EmailServiceImpl implements EmailService{
	
	@Resource(name = "javaMailSender")
	private JavaMailSenderImpl javaMailSender;

	class EmailThread extends Thread {
		private final MimeMessage mimeMessage;
		public EmailThread(MimeMessage mimeMessage) {
			this.mimeMessage = mimeMessage;
		}
		@Override
		public void run() {
			javaMailSender.send(mimeMessage);
		}

	}

	@Override
	public void sendMail(String mailto, String fromEmail, String text, String title) throws Exception {
		fromEmail = javaMailSender.getUsername();
		
		MimeMessage mimeMessage = javaMailSender.createMimeMessage();
		MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
		messageHelper.setFrom(new InternetAddress(fromEmail));
		messageHelper.setSubject(title);
		messageHelper.setText(text, true);
		messageHelper.setTo(new InternetAddress(mailto));
		mimeMessage = messageHelper.getMimeMessage();

		EmailThread et = new EmailThread(mimeMessage);
		et.start();

	}

	@Override
	public void sendBatchMail(String[] mailto, String fromEmail, String text, String title) throws Exception {
		
		MimeMessage mimeMessage = javaMailSender.createMimeMessage();
		MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
		messageHelper.setFrom(new InternetAddress(fromEmail));
		messageHelper.setSubject(title);
		messageHelper.setText(text, true);

		List<InternetAddress> list = new ArrayList<InternetAddress>();
		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();
	}

	@Override
	public void sendBatchMailWithFile(String[] mailto, String fromEmail, 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(fromEmail)));
		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>();
		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();
	}
}



3、服务配置
Java代码 复制代码 收藏代码
  1. <bean name="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">  
  2.         <property name="host" value="smtp.163.com" />  
  3.         <property name="defaultEncoding" value="UTF-8"></property>  
  4.         <property name="username" value="username@163.com"></property>  
  5.         <property name="password" value="password"></property>  
  6.         <property name="javaMailProperties">  
  7.             <map>  
  8.                 <entry key="mail.smtp.auth" value="true" />  
  9.             </map>  
  10.         </property>         
  11.     </bean>  
<bean name="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.163.com" />
		<property name="defaultEncoding" value="UTF-8"></property>
		<property name="username" value="username@163.com"></property>
		<property name="password" value="password"></property>
		<property name="javaMailProperties">
			<map>
				<entry key="mail.smtp.auth" value="true" />
			</map>
		</property>		
	</bean>
分享到:
评论

相关推荐

    JavaMail测试类

    javamail测试类,支持新浪,163,qq方式,下载资源注意上传时间

    javamail测试

    根据提供的文件信息,我们可以分析出该文件主要涉及的是JavaMail的使用以及部分涉及到Struts框架的应用。虽然实际的JavaMail代码未完整展示出来,但从文件的结构和其他线索中,我们仍可以提炼出以下相关的知识点: ...

    javamail-checker:JavaMail 测试程序

    这是一个 JavaMail 测试程序。 我需要用这个应用程序测试服务器环境。 这个怎么运作? 这个项目提供了可执行的fat jar,包括javamail impl。 用法? $ java -Dmail.smtp.host=localhost -jar javamail-checker-...

    javamail 测试用例

    一个javamail发送邮件的实例,如果运用于web项目,注意版本冲突的问题.j2ee 1.5 中的mail包中的有个类和mail.jar有冲突,将1.5中mail包中的类删除即可.但是1.4是没有问题的.

    javamail写的测试代码

    以下是一个基本的JavaMail测试代码示例,展示了如何发送一个简单的文本邮件: ```java import javax.mail.*; import javax.mail.internet.*; public class MailTest { public static void main(String[] args) { ...

    利用JavaMail发送邮件示例

    message.setSubject("JavaMail测试邮件"); // 设置邮件内容 message.setText("这是一封来自JavaMail的测试邮件。"); // 发送邮件 Transport.send(message); System.out.println("邮件已发送成功!"); } ...

    javamail实现邮箱与邮箱发送邮件

    message.setSubject("JavaMail测试邮件"); message.setText("这是一封由JavaMail发送的测试邮件。"); // 发送邮件 Transport.send(message); System.out.println("邮件已成功发送!"); } } ``` 在这个例子中...

    javaMail实现发送邮件的demo

    message.setText("这是一封使用 JavaMail 发送的测试邮件。"); Transport.send(message); System.out.println("邮件已成功发送!"); } catch (MessagingException e) { e.printStackTrace(); } } } ``` 在...

    javamail的一个例子以及javamail.ar包

    message.setSubject("JavaMail测试邮件"); message.setText("这是一封来自163邮箱到QQ邮箱的测试邮件,使用了JavaMail API发送。"); ``` 最后,通过Transport类的send方法发送邮件: ```java Transport.send...

    用JavaMail发送邮件

    message.setSubject("JavaMail测试邮件"); // 主题 message.setText("这是一封来自JavaMail的测试邮件。"); // 邮件内容 // 发送邮件 Transport.send(message); System.out.println("邮件已发送成功!"); } ...

    JavaMail 使用163发邮件

    message.setSubject("JavaMail测试邮件"); message.setText("这是使用JavaMail发送的测试邮件。"); ``` 最后,使用`Transport`类发送邮件: ```java Transport.send(message); System.out.println("邮件已成功发送...

    javamail发送邮件

    message.setSubject("JavaMail测试邮件"); message.setText("这是一封来自JavaMail的测试邮件。"); // 连接SMTP服务器并发送邮件 Transport.send(message); System.out.println("邮件已发送成功!"); } } ``...

    JavaMail发送电子邮件例子

    String subject = "JavaMail测试邮件"; // 主题 String body = "这是使用JavaMail发送的测试邮件。"; // 邮件内容 Properties props = System.getProperties(); props.put("mail.smtp.host", "smtp.example....

    JavaMail实现发送邮件功能

    message.setSubject("JavaMail测试邮件"); // 邮件主题 message.setText("这是一封使用 JavaMail 发送的测试邮件。"); // 邮件内容 // 发送邮件 Transport.send(message); System.out.println("邮件已成功...

    JavaMail:JavaMail测试,使用Java语言实现发送邮件的功能,程序基于JavaMail提供的方法实现

    JavaMail项目介绍 程序功能 用户注册,通过邮箱激活账号 程序下载: 程序简要说明: 用户注册页面,填写基本信息包括用户名密码邮箱等,点击注册向用户邮箱发送激活邮件,点击邮件中的链接实现激活账号。 具体实现:...

    javamail邮件发送接收测试

    这个“javamail邮件发送接收测试”是开发者在学习过程中创建的一个测试项目,旨在帮助理解和实践 JavaMail 的核心功能。通过这个项目,我们可以深入理解如何使用 JavaMail API 来实现邮件的发送和接收。 JavaMail ...

    Java发邮件例子Java Mail示例程序

    message.setSubject("JavaMail测试邮件"); message.setText("这是一封由JavaMail发送的测试邮件。"); ``` 4. **发送邮件**:使用Transport类的send方法发送邮件。 ```java Transport.send(message); ``` ...

    javaMail发送邮件和接收连接测试

    对javaMail发送邮件进行了详细的说明,具体代码可以实现相应功能;同时对接收邮箱进行了测试连接。

    javamail使用demo示例

    JavaMail 是一个开源库,它为Java程序员提供了一组API,用于处理电子邮件的发送和接收。这个"javamail使用demo示例"是JavaMail官方提供的一个实例集合,旨在帮助开发者更好地理解和应用JavaMail库。下面我们将深入...

    JavaMail实现源代码和jar包

    JavaMail 是一个开源的 Java API,它允许 Java 程序员通过 SMTP、POP3 或 ...这个压缩包提供的资源对于初学者或者需要快速实现邮件功能的开发者来说非常有用,可以直接运行测试代码,理解并实践 JavaMail API 的使用。

Global site tag (gtag.js) - Google Analytics