首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

java mail 范例 (带附件)

2014-04-21 
java mail 实例 (带附件)import?java.util.Properties?import?common.util.Email_Autherticatorbean?imp

java mail 实例 (带附件)

import?java.util.Properties;?
import?common.util.Email_Autherticatorbean;?
import?javax.mail.Authenticator;?
import?javax.mail.internet.InternetAddress;?
import?org.apache.commons.lang.StringUtils;?
import?javax.mail.internet.MimeBodyPart;?
import?javax.mail.Multipart;?
import?javax.activation.FileDataSource;?
import?javax.mail.internet.MimeMultipart;?
import?javax.activation.DataHandler;?
import?javax.mail.internet.MimeUtility;?
import?java.util.Date;?

/**?
*?利用java.mail的邮件发送程序?
*/?

public?class?SendMailTest?
{?
??public?static?void?main(String[]?args)?
??{?
????String?title?=?"titleTest";//所发送邮件的标题?
????String?from?="sir_znp@163.com";//从那里发送?
????String?sendTo[]?=?{"znp@163.net","sir_znp@163.com"};//发送到那里?
????//邮件的文本内容,可以包含html标记则显示为html页面?
????String?content?=?"mail?test!!!!!!<br><a?href=#>aaa</a>";?
????//所包含的附件,及附件的重新命名?
????String?fileNames[]?=?{"F:\\music\\text1.txt,text1.txt","F:\\music\\text2.txt,text2.txt"};?
????try?{?
????//??MailSender?mailsender?=?new?MailSender();?
??????sendmail(title,?from,?sendTo,?content,?fileNames,"text/html;charset=gb2312");?
??????}?catch?(Exception?ex)?{?ex.printStackTrace();?}?
??}?

??public?static?void?sendmail(String?subject,?String?from,?String[]?to,?String?text,?String[]?filenames,String?mimeType)?throws?Exception?
??{?
????//ResourceBundle?mailProps?=?ResourceBundle.getBundle("mail");???可以从配置文件读取相应的参数?
????Properties?props?=?new?Properties();?

????String?smtp?=?"smtp.163.com";??//设置发送邮件所用到的smtp?
????String?servername?=?"sir_znp";?
????String?serverpaswd?=?"123";?

????javax.mail.Session?mailSession;?//邮件会话对象?
????javax.mail.internet.MimeMessage?mimeMsg;?//MIME邮件对象?

????props?=?java.lang.System.getProperties();?//获得系统属性对象?
????props.put("mail.smtp.host",?smtp);?//设置SMTP主机?
????props.put("mail.smtp.auth",?"true");?//是否到服务器用户名和密码验证?
????//到服务器验证发送的用户名和密码是否正确?
????Email_Autherticatorbean?myEmailAuther?=?new?Email_Autherticatorbean(servername,?serverpaswd);?
????//设置邮件会话?
????mailSession?=?javax.mail.Session.getInstance(props,?(Authenticator)?myEmailAuther);??
????//设置传输协议?
????javax.mail.Transport?transport?=?mailSession.getTransport("smtp");?
????//设置from、to等信息?
????mimeMsg?=?new?javax.mail.internet.MimeMessage(mailSession);?
????if?(!StringUtils.isEmpty(from))?
???????{?
?????????InternetAddress?sentFrom?=?new?InternetAddress(from);?
?????????mimeMsg.setFrom(sentFrom);??//设置发送人地址?
???????}?

????InternetAddress[]?sendTo?=?new?InternetAddress[to.length];?
????for?(int?i?=?0;?i?<?to.length;?i++)?
???????{?
?????????System.out.println("发送到:"?+?to[i]);?
?????????sendTo[i]?=?new?InternetAddress(to[i]);?
???????}?

????mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO,?sendTo);?
????mimeMsg.setSubject(subject,?"gb2312");?

????MimeBodyPart?messageBodyPart1?=?new?MimeBodyPart();?
????//messageBodyPart.setText(UnicodeToChinese(text));?
????messageBodyPart1.setContent(text,?mimeType);?

????Multipart?multipart?=?new?MimeMultipart();//附件传输格式?
????multipart.addBodyPart(messageBodyPart1);?

????for?(int?i?=?0;?i?<?filenames.length;?i++)?{?
??????MimeBodyPart?messageBodyPart2?=?new?MimeBodyPart();?
??????//选择出每一个附件名?
??????String?filename?=?filenames[i].split(",")[0];?
??????System.out.println("附件名:"?+?filename);?
??????String?displayname?=?filenames[i].split(",")[1];?
??????//得到数据源?
??????FileDataSource?fds?=?new?FileDataSource(filename);?
??????//得到附件本身并至入BodyPart?
??????messageBodyPart2.setDataHandler(new?DataHandler(fds));?
??????//得到文件名同样至入BodyPart?
??????//messageBodyPart2.setFileName(displayname);?
??????//?messageBodyPart2.setFileName(fds.getName());?
??????messageBodyPart2.setFileName(MimeUtility.encodeText(displayname));?
??????multipart.addBodyPart(messageBodyPart2);?
????}?
????mimeMsg.setContent(multipart);?
????//设置信件头的发送日期?
????mimeMsg.setSentDate(new?Date());?
????mimeMsg.saveChanges();?
????//发送邮件?
????transport.send(mimeMsg);?
????transport.close();?
??}?

}??

验证类?
package?common.util;?
import?javax.mail.Authenticator;?
import?javax.mail.PasswordAuthentication;?
public?class?Email_Autherticatorbean??extends?Authenticator?
{?
private?String?m_username?=?null;?
private?String?m_userpass?=?null;?

public?void?setUsername(String?username)?
{?
m_username?=?username;?
}?

public?void?setUserpass(String?userpass)?
{?
m_userpass?=?userpass;?
}?

public?Email_Autherticatorbean(String?username,?String?userpass)?
{?
???super();?
???setUsername(username);?
???setUserpass(userpass);?

}?
public?PasswordAuthentication?getPasswordAuthentication()?
{?

??return?new?PasswordAuthentication(m_username,m_userpass);?
}?
}??

热点排行