`
阅读更多

示例:

               /** 
	 * 前臺 發送郵件
	 * add by ZhangMingShuang
	 */
	public void sendMain(Forecast forecast,Product product,Authorize authorize,String userId){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date d = new Date();
		
		StringBuffer subject = new StringBuffer();//郵件主題
		subject.append("[產品經銷服務網]");
		subject.append("["+forecast.getCompany()+"]");//公司名稱
		subject.append("["+product.getProductType()+"]\n");//產品類別
		
		StringBuffer content = new StringBuffer();//郵件內容
		content.append("Dear test姓名\n");
		content.append("產品經銷服務網報備審核通知(http://booking.tkb.com.tw/admin),請儘速完成審核作業,謝謝!\n\n");
		content.append("※報備資料\n");
		content.append("經銷商帳號:TKB0001032\n");
		content.append("經銷商名稱:宋弘仁\n");
		content.append("產品類別:"+product.getProductType()+"\n");
		content.append("授權版本:"+authorize.getAuthorizeName()+"\n");
		content.append("公司名稱:"+forecast.getCompany()+"\n");
		content.append("部門名稱:"+forecast.getDept()+"\n");
		content.append("聯絡人:"+forecast.getContact()+"\n");
		content.append("聯絡電話:"+forecast.getContactTel()+"\n");
		content.append("產品名稱:"+forecast.getProductName()+"\n");
		content.append("產品金額:"+forecast.getAmount()+"\n");
		content.append("說明:");
		if(forecast.getMemo() != null && !"".equals(forecast.getMemo())){
			content.append(forecast.getMemo()+"\n");
		}else{
			content.append("無\n");
		}
		content.append("報備日期:"+sdf.format(d)+"\n");
		content.append("有效日期:"+sdf.format(forecast.getEffectvieDate())+"\n");
		content.append("\n");
//		MailSender mail = new MailSender(DeployInfoUtil.getEmailSender(),DeployInfoUtil.getEmailSenderName(),"423883220@qq.com","423883220@qq.com",DeployInfoUtil.getEmailHost(),"測試",content,DeployInfoUtil.getDesKey(),DeployInfoUtil.getDesModeAndPadding());
//		mail.sendMail();
		
		MailInfo mi = new MailInfo();
		mi.setContentType(MailInfo.CONTENTTYPE_TEXT);//郵件類型
		mi.setSubject(subject.toString());//主題
		mi.setText(content.toString());//內容
		mi.setTo("zms198983@163.com");//收件人
		
		MailUtil.sendSimpleMail(mi);
		
	}

}

   MailInfo.java

package com.dealership.util;

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

import com.xmtkb.util.spring.DeployInfoUtil;



/**
 * @author ZhangDe 
 * @version 建立時間:Apr 1, 2010 4:17:46 PM
 * 類說明:郵件信息
 */
public class MailInfo {
	
//	郵件類型 text /html
	public static String CONTENTTYPE_TEXT="text";
	public static String CONTENTTYPE_HTML="html";
	
	public static String CONTEENTYPE_HTML_CONTENT = "text/html;charset=utf-8";
	
	private String subject; //標題
	private String text; //正文
	private String from = DeployInfoUtil.getEmailSender();//發送郵箱
	private String to; //接收郵箱
	private String[] toArray; //群發的郵件數組
	private String[] toBccArray; //密件抄送群發郵件數組
	private String encode = "UTF-8"; //字符編碼 , 預設是UTF-8
	private String contentType = CONTENTTYPE_TEXT; //郵件類型 text /html
	private List file = new ArrayList();//儲存附件路徑
	
	//by huangyonghua
	public MailInfo(){
		//
	}


    /**
     * 一封郵件
     * @param subject
     * @param text
     * @param to
     */
	public MailInfo(String subject, String text, String to) {
		super();
		this.subject = subject;
		this.text = text;
		this.to = to;
	}
	
	/**
	 * 密件群組發送
	 * @param subject
	 * @param text
	 * @param from
	 * @param toArray
	 */	
	public MailInfo(String subject, String text,  String[] toBccArray) {
		super();
		this.subject = subject;
		this.text = text;
		this.toBccArray = toBccArray;
	}

	public String getEncode() {
		return encode;
	}
	public void setEncode(String encode) {
		this.encode = encode;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
	public String getTo() {
		return to;
	}
	public void setTo(String to) {
		this.to = to;
	}
	public String[] getToArray() {
		return toArray;
	}
	public void setToArray(String[] toArray) {
		this.toArray = toArray;
	}
	public String[] getToBccArray() {
		return toBccArray;
	}
	public void setToBccArray(String[] toBccArray) {
		this.toBccArray = toBccArray;
	}




	public String getFrom() {
		return from;
	}




	public void setFrom(String from) {
		this.from = from;
	}

	public List getFile() {
		return file;
	}

	public void setFile(List file) {
		this.file = file;
	}

	public String getContentType() {
		return contentType;
	}

	public void setContentType(String contentType) {
		this.contentType = contentType;
	}
	
	

}

 MailUtil.java

package com.dealership.util;

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Iterator;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
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.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessagePreparator;

import com.xmtkb.util.spring.SpringContextUtil;

/**
 * @author ZhangDe 
 * @version 建立時間:Apr 1, 2010 5:12:07 PM
 * 類說明:郵件發送
 */
public class MailUtil {
	
	private static final Log log = LogFactory.getLog(MailUtil.class);   
	/**
	 * 發送電子郵件(可單發,群發,密件發送,但不能加附件)
	 * @param mail
	 * @return
	 */
	public static boolean sendSimpleMail(MailInfo mail){
		try {
			MailSender sender = getMailSender();
			SimpleMailMessage smm = getSMM(mail);
			sender.send(smm);
			log.info("發送Email成功");
			return true;
		} catch (MailException e) {
			e.printStackTrace();
			log.debug("發送Email失敗");
			return false;
		}
	}
	
	/**
	 * 
	 * 發送複雜郵件(可單發,群發,密件發送,但不能加附件)
	 * @param mail
	 * @return
	 */
	public static boolean sendMimeMessage(final MailInfo mail){
		try {
			JavaMailSender sender = (JavaMailSender)getMailSender();

			MimeMessagePreparator preparator = new MimeMessagePreparator(){

				public void prepare(MimeMessage msg) throws MessagingException {
				
					msg.setFrom(new InternetAddress(mail.getFrom()));
					if(mail.getTo()!= null && !mail.getTo().equals("")){
						msg.setRecipients(Message.RecipientType.TO, //單個地址
								InternetAddress.parse(mail.getTo()));
					}
					if(mail.getToArray()!= null && mail.getToArray().length>0){
						msg.setRecipients(Message.RecipientType.TO, //發送多個地址
								InternetAddress.parse(strArrayFromStr(mail.getToArray())));
					}
					if(mail.getToBccArray()!= null && mail.getToBccArray().length>0){
						msg.setRecipients(Message.RecipientType.BCC, //發送多個地址
								InternetAddress.parse(strArrayFromStr(mail.getToBccArray())));
					}	
					
					msg.setSubject(mail.getSubject());
					Multipart mp = new MimeMultipart();
					msg.setContent(mp);
					
					MimeBodyPart mbpContent = new MimeBodyPart();//增加文本內容
					if(mail.getContentType().equals(MailInfo.CONTENTTYPE_TEXT)){ //text格式郵件
						mbpContent.setText(mail.getText());
					}else{//html格式郵件
						mbpContent.setContent(mail.getText(), MailInfo.CONTEENTYPE_HTML_CONTENT);
					}					
					mp.addBodyPart(mbpContent);
					
					for (Iterator iter = mail.getFile().iterator(); iter.hasNext();) {
						String  filePath = (String ) iter.next();
						MimeBodyPart mbpFile = new MimeBodyPart();//增加附件
						FileDataSource fds = new FileDataSource(filePath);//路徑
						mbpFile.setDataHandler(new DataHandler(fds));
						try {
							mbpFile.setFileName(MimeUtility.encodeText(fds.getName()));//編碼處理
						} catch (UnsupportedEncodingException e) {
							e.printStackTrace();
						}
						mp.addBodyPart(mbpFile);
					}
					msg.setSentDate(new Date());
					
				}
			};
			
			sender.send(preparator);
			log.info("發送Email成功");
			return true;
		} catch (MailException e) {
			e.printStackTrace();
			log.debug("發送Email失敗");
			return false;
		}
	}
	
	public static String strArrayFromStr(String val[]){
		String returnVal = "";
		for (int i = 0; i < val.length; i++) {
			returnVal = (i==0 ? val[i]:returnVal+","+ val[i]);
		}
		return returnVal;
	}
	
	/**
	 * 取得郵件發送
	 * @return
	 */
	public static MailSender getMailSender(){
		MailSender mailSender = (MailSender)SpringContextUtil.getApplicationContext().getBean("mailSender");
		return mailSender;
	}
	
	/**
	 * to(單發), toArray(群發), toBccArray(密件群發),只能有一個
	 * @param mail
	 * @return
	 */
	public static SimpleMailMessage getSMM(MailInfo mail){
		SimpleMailMessage smm = new SimpleMailMessage();
		smm.setSubject(mail.getSubject());
		smm.setText(mail.getText());
		smm.setFrom(mail.getFrom());
		if(mail.getTo()!= null && !mail.getTo().equals("")){
			smm.setTo(mail.getTo());
		}
		if(mail.getToArray()!= null && mail.getToArray().length>0){
			smm.setTo(mail.getToArray());
		}
		if(mail.getToBccArray()!= null && mail.getToBccArray().length>0){
			smm.setBcc(mail.getToBccArray());
		}		
		return smm;
	}

}

 MailContent.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <!-- 配置郵件服務器 -->
	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
	<!-- SMTP服務器 -->
	<property name="host">
	     <value>${email.host}</value>
	</property>
	
	<!-- 設置發送郵件的相關屬性 -->
	<property name="javaMailProperties">
	    <props>
	         <!-- 是否需要用戶密碼  -->
	        <prop key="mail.smtp.auth">true</prop>
	        <!-- 超時時間(單位:毫秒) -->
	        <prop key="mail.smtp.timeout">25000</prop>
	        <!-- gmail smtp server必須參數
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.smtp.prot">${email.port}</prop>
            <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
            <prop key="mail.smtp.socketFactory.fallback">false</prop>
	        <prop key="mail.smtp.socketFactory.port">${email.port}</prop> 
	        -->
	    </props>	
	</property>
	
	<!-- 設置用戶和密碼 -->
	<property name="username">
	    <value>${email.username}</value>
	</property>
	
	<property name="password">
	    <value>${email.password}</value>
	</property>
	
</bean>
	

</beans>

 SpringContentUtil.java

package ssh.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author ZhangDe
 * @version 創建時間:Dec 16, 2008 2:10:58 PM 
 * 類說明:spring 應用 單例
 */
public class SpringContextUtil {
	private static ApplicationContext context;
	public static ApplicationContext getApplicationContext() {
		if (context == null) {
			//数组
			/*context = new ClassPathXmlApplicationContext(
					new String[] { "classpath:/config/spring/applicationContext.xml",
							"classpath:/config/spring/serviceContext.xml"							

					});*/
			//通配符
			context = new ClassPathXmlApplicationContext("classpath:/config/spring/*Context.xml");
		}
		return context;
	}

	public static void setApplicationContext(ApplicationContext outcontext) {
		context = outcontext;
	}

}

 

0
1
分享到:
评论

相关推荐

    java发送邮件工具

    java发送邮件工具类,用于java程序实现邮件的发送功能

    java发送邮件工具类

    Java发送邮件工具类是Java开发中常用的一种技术,主要用于企业级应用中发送通知、验证码、报表等信息。这个工具类通常基于JavaMail API实现,它允许开发者通过编程方式发送电子邮件。下面将详细介绍Java发送邮件的...

    java版发送邮件工具类

    总结来说,`java版发送邮件工具类`利用`java email`库,特别是`mail.jar`,为开发者提供了一种简便的方式来发送电子邮件。通过理解和使用`SendJMail.java`这样的工具类,你可以轻松地集成邮件发送功能到你的Java应用...

    apache邮件工具

    Apache邮件工具,全称为Apache James,是Apache软件基金会的一个开源项目,主要提供电子邮件服务器的解决方案。这个工具基于Java语言开发,具有高度可扩展性和灵活性,适用于小型到大型的企业级邮件系统。Apache ...

    指北针邮件工具1.5.5.1

    1.5.5.1升级 ...简介:一款可以自动搜索无穷多QQ邮箱的邮件工具,支持网页方式和SMTP2种主流发送方式,成功率高、智能快捷、安全高效,多种混淆方式,保证邮件的到达率,是上网者不可多得的推广利器。

    定时自动压缩备份文件并发送电子邮件工具V1.0

    每天自动压缩备份文件并发送电子邮件工具V1.0 设计本工具的主要初衷: 服务器上已经创建好数据库自动维划计划用它来每天生成数据库备份, 但是数据备份还是存放于互联网的服务器上,所以为了数据安全最好能达到使...

    TCP发送邮件工具

    TCP发送邮件工具。 使用TCP发送特定格式的数据工具自动打包封装成SMTP协议发送出去。很好使用。 优点: 1 登陆 常见的邮箱都支持 2 发送 常见的邮箱都支持 3 支持 抄送 和 暗抄 抄送( CC ) 和 暗抄( BC ) 对应的...

    邮件服务---接收邮件工具--mail

    邮件服务是互联网上最基本且重要的通信方式之一,而“邮件服务---接收邮件工具--mail”显然是指用于收发电子邮件的应用程序。在这个场景中,我们提到的可能是Mozilla Thunderbird,一个非常受欢迎的开源邮件客户端,...

    发送邮件工具类,支持QQ邮箱

    这个名为“发送邮件工具类,支持QQ邮箱”的程序库或代码模块专门设计用于帮助开发者便捷地通过QQ邮箱发送带有附件的邮件。QQ邮箱是腾讯公司提供的免费电子邮箱服务,具有稳定性强、功能丰富的特点,深受用户喜爱。...

    发送邮件工具类

    发送邮件

    邮件发送工具类

    8. **可配置性**:为了适应不同的邮件服务提供商,邮件工具类通常设计为可配置,允许开发者根据实际情况调整SMTP服务器参数。 9. **重试机制**:为了提高邮件发送的可靠性,工具类可能还包含邮件发送失败后的重试...

    最好用的邮件工具Foxmail

    Foxmail是一款由腾讯公司开发的高效、稳定且用户友好的电子邮件客户端软件,它以其简洁的界面和强大的功能在众多邮件工具中脱颖而出。作为一款最佳邮件工具,Foxmail为用户提供了一流的邮件管理体验,适用于个人用户...

    DOIR Outlook批量删除重复邮件工具

    "DOIR (Delete Duplicate Items for Outlook) Outlook批量删除重复邮件工具"就是为了解决这个问题而设计的。 DOIR工具是一款专门针对Outlook的插件,它能够高效地检测并删除邮箱中的重复邮件,从而帮助用户整理和...

    万能邮件工具1.4.3.10

    【万能邮件工具1.4.3.10】是一款专为邮件通信设计的实用工具,其最新版本1.4.3.10带来了多项重要更新和改进,旨在提升用户体验和功能性能。以下是对这些更新内容的详细解读: 1. **解除测试版自动切换的限制**:在...

    php发送邮件工具stmp

    php发送邮件工具,php发送邮件工具,php发送邮件工具,php发送邮件工具

    blat-mail命令行发送邮件工具

    总之,Blat-Mail是一个非常实用的命令行邮件工具,尤其适用于自动化邮件发送的场景。它的易用性和灵活性使得它在IT领域中有广泛的应用,不论是在日常工作中发送报告,还是在服务器监控中发送报警通知,都能发挥其...

    天书版江湖侠客令一键服务端+GM后台工具+邮件工具+外网教程

    天书版江湖侠客令一键服务端+GM后台工具+邮件工具+外网教程 架设教程: 1、安装虚拟网卡,IP设置192.168.31.249 子网255.255.255.0 网关192.168.31.1 DNS8.8.8.8(虚拟网卡安装就不介绍了,可参考论坛其他服务端也可...

    苏苏缘来网全自动挂机发邮件工具

    【标题】"苏苏缘来网全自动挂机发邮件工具"揭示了这是一款专为网赚用户设计的自动化邮件发送软件。"苏苏网赚博客"是该软件的开发者,表明了其来源于一个专注于网络赚钱策略和技巧分享的平台。 【描述】中提到的“全...

Global site tag (gtag.js) - Google Analytics