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
- java之邮件发送-实例
- java 发送邮件实例
- Java邮件发送实例
- java发送邮件实例
- java 发送邮件实例
- Java发送邮件实例
- Java之发送邮件
- java之邮件发送
- strus2 java发送邮件实例
- Java swing发送邮件实例
- Java发送邮件简单实例
- JAVA MAIL发送邮件实例
- java 发送邮件实例2
- java 复杂邮件发送实例
- JAVA MAIL发送邮件实例
- JAVA MAIL发送邮件实例
- Java实现邮件发送实例
- java web邮件发送实例
- Git在合并时遇到unrelated history提示时无法merge
- POJ-1847 Tram (dijkstra算法)
- SQLite数据库锁问题
- Nginx Tomcat 简单部署实例
- C语言模拟C++的虚函数表
- java之邮件发送-实例
- 【图书资料】编译原理三大经典书籍(龙书 虎书 鲸书)
- 不用栈和递归,实现线索化二叉树的遍历(还没人看的话就沉了吧)
- 数据结构实验之二叉树六:哈夫曼编码
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
- C++ String
- linux 查找大文件 大目录命令
- 获取sh shell 当前文件的绝对路径
- Mac下粗略实现ls命令