java之邮件发送-实例

来源:互联网 发布:北京培训seo哪个好 编辑:程序博客网 时间:2024/05/18 13:28
package com.hxkid.teacher.utils.sendmail;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;

import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
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 org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import com.hxkid.teacher.UIHelper;
import com.robotium.solo.Solo;

import android.annotation.SuppressLint;

/**
* 邮件发送
*
* @author H
*
*/
public class SendMailUtils {
@SuppressLint("NewApi")
public static void main(String[] args) throws Exception {
UIHelper uiHelper = null;
Solo solo = null;
uiHelper = new UIHelper(solo);
String[] temp = uiHelper.getTestData().getAddressee();
String sender = temp[0];
// System.out.println(sender);
final Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.126.com");
props.put("mail.user", sender);
props.put("mail.password", "testlihui1");
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
Session mailSession = Session.getInstance(props, authenticator);
MimeMessage message = new MimeMessage(mailSession);
InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
message.setFrom(form);
/**
* 设置多个收件人
*/
String recipients[] = Arrays.copyOfRange(temp, 1, temp.length);
// String recipients[] = { "huangshuai@hxkid.com" };
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
message.setRecipients(Message.RecipientType.TO, addressTo);
/**
* 抄送
*/
InternetAddress cc = new InternetAddress("huangshuai@hxkid.com");
message.setRecipient(RecipientType.CC, cc);
/**
* 暗送
*/
InternetAddress bcc = new InternetAddress("273227864@qq.com");
message.setRecipient(RecipientType.CC, bcc);
/**
* 设置邮件主题
*/
message.setSubject("自动化测试报告");

/**
* 设置邮件正文/附件
*/
MimeMultipart msgMultipart = new MimeMultipart("mixed");
message.setContent(msgMultipart);

MimeBodyPart attch1 = new MimeBodyPart();
MimeBodyPart content = new MimeBodyPart();

msgMultipart.addBodyPart(attch1);
msgMultipart.addBodyPart(content);

DataSource ds1 = new FileDataSource("./report/junit-report.html");

DataHandler dh1 = new DataHandler(ds1);

attch1.setDataHandler(dh1);
attch1.setFileName("junit-report.html");

MimeMultipart bodyMimeMultipart = new MimeMultipart("related");
content.setContent(bodyMimeMultipart);
MimeBodyPart htmlPart = new MimeBodyPart();
bodyMimeMultipart.addBodyPart(htmlPart);

/**
* 设置正文内容
*/
File input = new File("./report/junit-report.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
Elements node = doc.getElementsByTag("td");
List<String> va = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
va.add(node.get(i).text());
// System.out.println(va);
}
int pass = Integer.parseInt(va.get(0)) - Integer.parseInt(va.get(2));
StringBuffer str = new StringBuffer();
/**
* 标题,第一行
*/
str.append("<html>\n");
str.append("<body>\n");

str.append("<table border='1px' cellspacing='0px' width='100%' bordercolor='#000000'>");
str.append("</tr><tr><h3>自动化测试报告,如下:</h3></tr>");
str.append("</tr><tr><h4>测试环境:测试环境</h4></tr>");
str.append("</tr><tr><h4>被测程序:Android-园长端</h4></tr>");
str.append("</tr><tr><h4>测试设备:三星s3</h4></tr>");
str.append("</tr><tr><h4>Android版本:Android4.3</h4></tr>");
str.append("</tr><tr><h4>设备ID:24678d9a</h4></tr>");
str.append("<tr bgcolor='#DC143C' bordercolor='#000000'>\n");
str.append("<td>\n");
str.append("用例名称\n");
str.append("</td>\n");
str.append("<td>\n");
str.append("用例总数\n");
str.append("</td>\n");
str.append("<td >\n");
str.append("成功用例数量\n");
str.append("</td>\n");
str.append("<td >\n");
str.append("失败用例数量\n");
str.append("</td>\n");
str.append("<td >\n");
str.append("用例执行耗时(单位:秒)\n");
str.append("</td>\n");
str.append("<td >\n");
str.append("用例执行成功率\n");
str.append("</td>\n");
str.append("</tr>\n");
/**
* 第二行
*/
str.append("<tr bgcolor='#FFFF00'>\n");
str.append("<td>\n");
str.append("HBB-Android-Teacher\n");
str.append("</td>\n");
str.append("<td>\n");
str.append(va.get(0) + "\n");
str.append("</td>\n");
str.append("<td>\n");
str.append(pass + "\n");
str.append("</td>\n");
str.append("<td>\n");
str.append(va.get(2) + "\n");
str.append("</td>\n");
str.append("<td>\n");
str.append(va.get(4) + "\n");
str.append("</td>\n");
str.append("<td>\n");
str.append(va.get(3) + "\n");
str.append("</td>\n");

/**
* test--ok--解决编码问题
*/
MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
CommandMap.setDefaultCommandMap(mc);

htmlPart.setContent(str.toString(), "text/html;charset=utf-8");
message.saveChanges();

/**
* 发送
*/
Transport.send(message);
System.out.println("send mail ok");
}

}

------------------------------------------------------------------------------------------------------------------------------

更多请关注:FlyTester,关注技术的测试者

QQ群:456850134

web站:www.flytester.org

微信扫描二维码关注:


0 0