packagecom.zjh.shopping.util;importjava.util.Date;importjava.util.Properties;importjavax.activation.DataHandler;importjavax.activation.FileDataSource;importjavax.mail.Authenticator;importjavax.mail.Multipart;importjavax.mail.PasswordAuthentication;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeBodyPart;importjavax.mail.internet.MimeMultipart;importjavax.mail.internet.MimeUtility;public classJavaMailSendUtil {public voidsendmail(String subject, String from, String[] to,
String text, String[] filenames, String mimeType) {try{
Properties props= newProperties();
String smtp= "smtp.163.com"; //设置发送邮件所用到的smtp
String servername = "*******"; //邮箱账号名
String serverpaswd = "******"; //邮箱密码
javax.mail.Session mailSession= null; //邮件会话对象
javax.mail.internet.MimeMessage mimeMsg = null; //MIME 邮件对象
props= java.lang.System.getProperties(); //获得系统属性对象
props.put("mail.smtp.host", smtp); //设置SMTP主机
props.put("mail.smtp.auth", "true"); //是否到服务器用户名和密码验证//到服务器验证发送的用户名和密码是否正确
SmtpAuthenticator myEmailAuther = newSmtpAuthenticator(servername,
serverpaswd);//设置邮件会话 注意这里将认证信息放进了Session的创建参数里
mailSession =javax.mail.Session.getInstance(props,
(Authenticator) myEmailAuther);//设置传输协议
javax.mail.Transport transport = mailSession.getTransport("smtp");//设置from、to等信息
mimeMsg = newjavax.mail.internet.MimeMessage(mailSession);if (null != from && !"".equals(from)) {
InternetAddress sentFrom= newInternetAddress(from);
mimeMsg.setFrom(sentFrom);//设置发送人地址
}
InternetAddress[] sendTo= newInternetAddress[to.length];for (int i = 0; i < to.length; i++) {
System.out.println("发送到:" +to[i]);
sendTo[i]= newInternetAddress(to[i]);
}
mimeMsg.setRecipients(
javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
mimeMsg.setSubject(subject,"gb2312");
MimeBodyPart messageBodyPart1= newMimeBodyPart();//messageBodyPart.setText(UnicodeToChinese(text));
messageBodyPart1.setContent(text, mimeType);//附件传输格式
Multipart multipart = newMimeMultipart();
multipart.addBodyPart(messageBodyPart1);for (int i = 0; i < filenames.length; i++) {
MimeBodyPart messageBodyPart2= newMimeBodyPart();
String filename= filenames[i].split(";")[0];
String displayname= filenames[i].split(";")[1];//得到数据源
FileDataSource fds = newFileDataSource(filename);//BodyPart添加附件本身
messageBodyPart2.setDataHandler(newDataHandler(fds));//BodyPart添加附件文件名
messageBodyPart2.setFileName(MimeUtility
.encodeText(displayname));
multipart.addBodyPart(messageBodyPart2);
}
mimeMsg.setContent(multipart);//设置信件头的发送日期
mimeMsg.setSentDate(newDate());
mimeMsg.saveChanges();//发送邮件
transport.send(mimeMsg);
transport.close();
System.out.println("发送到成功!!!");
}catch(Exception e) {
e.printStackTrace();
}
}public static void main(String[] args) throwsException {
String title= "测试邮件";//所发送邮件的标题
String from = "************@163.com";//从那里发送
String sendTo[] = { "********@qq.com" };//发送到那里//邮件的文本内容,可以包含html标记则显示为html页面
String content = "test java send mail !!!!!!My blog";//所包含的附件,及附件的重新命名
String fileNames[] = { "d:\\test.jpg;test.jpg"};
JavaMailSendUtil test= newJavaMailSendUtil();try{//MailSender mailsender = new MailSender();
test.sendmail(title, from, sendTo, content, fileNames,"text/html;charset=gb2312");
}catch(Exception ex) {
ex.printStackTrace();
}
}class SmtpAuthenticator extendsAuthenticator {
String username= null;
String password= null;publicSmtpAuthenticator(String username, String password) {super();this.username =username;this.password =password;
}publicPasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(this.username, this.password);
}
}
}