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");
}
}