javamail smtp 发送邮件

package com.util.mail;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;




public class SendMail {
	//static Logger log=Logger.getLogger("SendMail.class");
	
	private String smtpServer = "";//smtp.sina.com
	private String smtpAuth = "";//true
	private String smtpUser = "";//xxxxxxxxxx
	private String smtpPassword = "";//xxxxxxxxxx
	private String From = "";//xxxxxxxxxx@sina.com
		public SendMail(){
			}
	
	 /** 
	  * 发送邮件的方法。
	  * @param mailTo 邮件接受人
	  * @param mailSubject 邮件的主题
	  * @param mailBody 邮件的内容
	  * @param filename 附件的名称 格式:附件名称1;附件名称2
	  * @param fileAddress 附件的地址 格式:附件地址1;附件地址2 (地址的个数必须和附件名称的个数相匹配)
	  * @return
	  */
	 public boolean sendMailFile(String mailTo,String mailSubject,String mailBody,String filename,String fileAddress){
		    //发送email
		    try {
		      String Subject = mailSubject;
		      String Text = mailBody;
		      Properties props = new Properties();
		      Session sendMailSession;
		      Transport transport;
		      props.put("mail.smtp.host", smtpServer);
		      props.put("mail.smtp.auth", smtpAuth);
		      if ("true".equals(smtpAuth)) {
		        //smtp服务器需要验证,用MyAuthertiactor来创建mail session
		    	MyAuthenticator myauth = new MyAuthenticator(smtpUser, smtpPassword);
		        sendMailSession = Session.getInstance(props, myauth);
		      }
		      else {
		        sendMailSession = Session.getInstance(props);
		      }
		      //Debug
		      sendMailSession.setDebug(true);
		      Message newMessage = new MimeMessage(sendMailSession);
		      newMessage.setFrom(new InternetAddress(From));
		      newMessage.setRecipient(Message.RecipientType.TO,
		                              new InternetAddress(mailTo));
		      newMessage.setSubject(Subject);
		      newMessage.setSentDate(new Date());
		    
		      
		      MimeBodyPart textBodyPart = new MimeBodyPart(); 
		      textBodyPart.setText(Text);
		      
		      Multipart container = new MimeMultipart();
		      container.addBodyPart(textBodyPart);
		      
		      if(filename!=null&&!"".equalsIgnoreCase(filename)){
			      String[] fileStr=filename.split(";");
			      for(int i=0;i<fileStr.length;i++){
			    	  
			     MimeBodyPart mbp = new MimeBodyPart();
			        //选择出每一个附件名
			        String file = fileStr[i];
			        
			        //得到数据源
			        FileDataSource fds = new FileDataSource(fileAddress.split(";")[i]);
			        //得到附件本身并至入BodyPart
			        mbp.setDataHandler(new DataHandler(fds));
			        //得到文件名同样至入BodyPart
			        //mbp.setFileName(file);
			        mbp.setFileName( new String(file.getBytes(), "ISO8859-1"));
			        container.addBodyPart(mbp);
			      }
		      }
		      
		      newMessage.setContent(container);
		      
		      newMessage.saveChanges();
		      transport = sendMailSession.getTransport("smtp");
		      transport.send(newMessage, newMessage.getAllRecipients());
		      transport.close();
		    }
		    catch (Exception mailEx) {
		      System.err.println("Send Mail Error:" + mailEx.getMessage());
		      mailEx.printStackTrace();
		      return false;
		    }
		    return true;
		  }
	 
	 
	 public static void main(String args[]) {
		 SendMail mail = new SendMail();
		mail.sendMailFile("zhengxiaowei@businessmatrix.com.cn", "邮件主题", "邮件内容","附件11;附件12","c:/accept.txt;c:/unaccept.txt");
			 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值