- import java.io.InputStream;
- import java.util.Date;
- import java.util.Enumeration;
- import java.util.Properties;
- import java.util.Vector;
- import javax.activation.DataHandler;
- import javax.activation.FileDataSource;
- import javax.mail.Authenticator;
- import javax.mail.Message;
- import javax.mail.Multipart;
- import javax.mail.PasswordAuthentication;
- 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;
- import javax.mail.internet.MimeUtility;
- /**
- * <p>
- * Title: 使用javamail发送邮件
- * </p>
- */
- public class MailUtil {
- String to ;// 收件人
- String from ;// 发件人
- String host ;// SMTP服务器地址
- String username ;//发件人帐号
- String password ;//发件人密码
- String filename ;// 附件文件名
- String subject ;// 邮件主题
- String content ;// 邮件正文
- Vector file = new Vector();// 附件文件集合
- /**
- * 方法说明:主方法,用于测试 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public static void main(String[] args) {
- Properties dbProps = new Properties();
- try {
- InputStream is =PoolManager.class.getClassLoader().getResourceAsStream("dbconfig.properties");
- dbProps.load(is);
- is.close();
- } catch (Exception e) {
- }
- MailUtil mail = new MailUtil();
- mail.setHost(dbProps.getProperty("mail.host"));
- mail.setUserName(dbProps.getProperty("mail.user"));
- mail.setPassWord(dbProps.getProperty("mail.pwd"));
- mail.setFrom(dbProps.getProperty("mail.from"));
- mail.setTo("lidd@126.com");
- mail.setSubject("测试邮件test");
- StringBuffer mailcontent=new StringBuffer();
- mailcontent.append("你好:</br>");
- mailcontent.append(" 以下是今天的日志报告!</br>");
- mailcontent.append("<table border='1' cellspacing='0' cellpadding='0' bordercolor='#000000' bordercolordark='#FFFFFF' bgcolor='#FFFFFF' style='border:1px solid #e3e3e3;line-height:24px;margin-left:50px'>");
- mailcontent.append("<th align='center' colspan='8'>");
- mailcontent.append("系统运行日志报告");
- mailcontent.append("</th>");
- mailcontent.append("<tr>");
- mailcontent.append("<td style='border:1px solid #e3e3e3;width: 120px;margin-left: 20px'> 企业QQ:</td>");
- mailcontent.append("<td>errrrr");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 是否需要关注:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 日志产生时间:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td>");
- mailcontent.append("</td>");
- mailcontent.append("<td>");
- mailcontent.append("</td>");
- mailcontent.append("</tr>");
- mailcontent.append("<tr>");
- mailcontent.append("<td style='width: 120px;margin-left: 20px'> 好友数据同步状态:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 好友数量:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 对话好友数量:</td>");
- mailcontent.append("<td> dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 好友同步备注:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("</tr>");
- mailcontent.append("<tr>");
- mailcontent.append("<td style='width: 120px;margin-left: 20px'> 聊天数据同步状态:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 聊天记录条数:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 聊天数据同步备注:</td>");
- mailcontent.append("<td> dd");
- mailcontent.append("</td>");
- mailcontent.append("<td> ");
- mailcontent.append("</td>");
- mailcontent.append("<td> ");
- mailcontent.append("</td>");
- mailcontent.append("</tr>");
- mailcontent.append("<tr>");
- mailcontent.append("<td style='width: 120px;margin-left: 20px'> 会话数据同步状态:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 会话记录条数:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td style='width: 120px;'> 会话数据同步备注:</td>");
- mailcontent.append("<td>dd");
- mailcontent.append("</td>");
- mailcontent.append("<td>");
- mailcontent.append("</td>");
- mailcontent.append("<td>");
- mailcontent.append("</td>");
- mailcontent.append("</tr>");
- mailcontent.append("</table>");
- mail.setContent(mailcontent.toString());
- //mail.attachfile("C:/Users/Administrator/Desktop/record.txt");
- System.out.println(mail.sendMail());
- }
- /**
- * 方法说明:默认构造器 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public MailUtil() {
- }
- /**
- * 方法说明:构造器,提供直接的参数传入 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public MailUtil(String to, String from, String smtpServer,
- String username, String password, String subject, String content) {
- this.to = to;
- this.from = from;
- this.host = smtpServer;
- this.username = username;
- this.password = password;
- this.subject = subject;
- this.content = content;
- }
- public String getSubject() {
- return subject;
- }
- /**
- * 方法说明:把主题转换为中文 <br>
- * 输入参数:String strText <br>
- * 返回类型:
- */
- public String transferChinese(String strText) {
- try {
- strText = MimeUtility.encodeText(new String(strText.getBytes(),
- "GB2312"), "GB2312", "B");
- } catch (Exception e) {
- e.printStackTrace();
- }
- return strText;
- }
- /**
- * 方法说明:往附件组合中添加附件 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public void attachfile(String fname) {
- file.addElement(fname);
- }
- /**
- * 方法说明:发送邮件 <br>
- * 输入参数: <br>
- * 返回类型:boolean 成功为true,反之为false
- */
- public boolean sendMail() {
- // 构造mail session
- Properties props = new Properties() ;
- props.put("mail.smtp.auth", "true");
- Session session = Session.getDefaultInstance(props,new Authenticator() {
- public PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(username, password);
- }
- });
- try {
- // 构造MimeMessage 并设定基本的值
- MimeMessage msg = new MimeMessage(session);
- msg.setFrom(new InternetAddress(from));
- msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); //收件人
- //添加邮件主题
- msg.setSubject(subject, "UTF-8");
- // 构造Multipart
- Multipart mp = new MimeMultipart();
- // 向Multipart添加正文
- MimeBodyPart mbpContent = new MimeBodyPart();
- mbpContent.setContent(content, "text/html;charset=UTF-8");
- // 向MimeMessage添加(Multipart代表正文)
- mp.addBodyPart(mbpContent);
- //添加附件
- if(!file.isEmpty()){//有附件
- Enumeration efile=file.elements();
- while(efile.hasMoreElements()){
- mbpContent=new MimeBodyPart();
- filename=efile.nextElement().toString(); //选择出每一个附件名
- FileDataSource fds=new FileDataSource(filename); //得到数据源
- mbpContent.setDataHandler(new DataHandler(fds)); //得到附件本身并至入BodyPart
- mbpContent.setFileName(MimeUtility.encodeText(fds.getName(),"GBK","B")); //得到文件名同样至入BodyPart
- mp.addBodyPart(mbpContent);
- }
- file.removeAllElements();
- }
- msg.setContent(mp);
- msg.setSentDate(new Date());
- msg.saveChanges() ;
- // 发送邮件
- Transport transport = session.getTransport("smtp");
- transport.connect(host, username, password);
- transport.sendMessage(msg, msg.getAllRecipients());
- transport.close();
- } catch (Exception mex) {
- mex.printStackTrace();
- return false;
- }
- return true;
- }
- /**
- * 方法说明:设置邮件服务器地址 <br>
- * 输入参数:String host 邮件服务器地址名称 <br>
- * 返回类型:
- */
- public void setHost(String host) {
- this.host = host;
- }
- /**
- * 方法说明:设置登录服务器校验密码 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public void setPassWord(String pwd) {
- this.password = pwd;
- }
- /**
- * 方法说明:设置登录服务器校验用户 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public void setUserName(String usn) {
- this.username = usn;
- }
- /**
- * 方法说明:设置邮件发送目的邮箱 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public void setTo(String to) {
- this.to = to;
- }
- /**
- * 方法说明:设置邮件发送源邮箱 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public void setFrom(String from) {
- this.from = from;
- }
- /**
- * 方法说明:设置邮件主题 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public void setSubject(String subject) {
- this.subject = subject;
- }
- /**
- * 方法说明:设置邮件内容 <br>
- * 输入参数: <br>
- * 返回类型:
- */
- public void setContent(String content) {
- this.content = content;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1704201512281.html
来源: http://www.codesnippet.cn/detail/1704201512281.html