TA的每日心情 | 奋斗 2018-8-27 15:56 |
---|
签到天数: 322 天 连续签到: 1 天 [LV.8]测试军长
|
本帖最后由 seagull1985 于 2016-8-12 16:42 编辑
自动结果测试完成后,一般都需要通过邮件发送测试结果,在这里给大家介绍下简单易用的邮件发送代码。
代码来源网络,具体已经记不清了,自己改了一点。 需要用到mail.jar包
PART1 邮件发送基本信息实体
PART2 邮件发送主方法
- /**
- * 以HTML格式发送邮件
- * @param mailInfo 待发送的邮件信息
- */
- public boolean sendHtmlMail(MailSenderInfo mailInfo){
- // 判断是否需要身份认证
- MyAuthenticator authenticator = null;
- Properties pro = mailInfo.getProperties();
- //如果需要身份认证,则创建一个密码验证器
- if (mailInfo.isValidate()) {
- authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
- }
- // 根据邮件会话属性和密码验证器构造一个发送邮件的session
- Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
- try {
- // 根据session创建一个邮件消息
- Message mailMessage = new MimeMessage(sendMailSession);
- // 创建邮件发送者地址
- Address from = new InternetAddress(mailInfo.getFromAddress());
- // 设置邮件消息的发送者
- mailMessage.setFrom(from);
- // 创建邮件的接收者地址,并设置到邮件消息中
- Address[] to = new InternetAddress[mailInfo.getToAddresses().length];
- // 为每个邮件接收者创建一个地址
- for (int i=0; i<mailInfo.getToAddresses().length; i++){
- to[i] = new InternetAddress(mailInfo.getToAddresses()[i]);
- }
-
- // Message.RecipientType.TO属性表示接收者的类型为TO
- //单个收件人 mailMessage.setRecipient(Message.RecipientType.TO,to);
- mailMessage.setRecipients(Message.RecipientType.TO, to);
- // 设置邮件消息的主题
- mailMessage.setSubject(mailInfo.getSubject());
- // 设置邮件消息发送的时间
- mailMessage.setSentDate(new Date());
- // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
- Multipart mainPart = new MimeMultipart();
- // 创建一个包含HTML内容的MimeBodyPart
- BodyPart html = new MimeBodyPart();
- // 设置HTML内容
- html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
- mainPart.addBodyPart(html);
- // 将MiniMultipart对象设置为邮件内容
- mailMessage.setContent(mainPart);
- // 发送邮件
- Transport.send(mailMessage);
- return true;
- } catch (MessagingException ex) {
- ex.printStackTrace();
- JavaBaseTest.LogUtil.APP.error(ex);
- }
- return false;
- }
复制代码 PART3 初始化邮件发送主体,发送邮件
- public static void SendMailInitialization(String subject,String content,String tastid){
- String[] addresses = LogOperation.GetEmailAddress(tastid);
- if(addresses!=null){
- JavaBaseTest.LogUtil.APP.info("准备将测试结果发送邮件通知!请稍等。。。。");
- //这个类主要是设置邮件
- MailSenderInfo mailInfo = new MailSenderInfo();
- //这个类主要来发送邮件
- SimpleMailSender sms = new SimpleMailSender();
- mailInfo.setMailServerHost("xx.xxx.xx.xx");
- mailInfo.setMailServerPort("25");
- mailInfo.setValidate(true);
- mailInfo.setUserName("xxx@xxx.com");
- mailInfo.setPassword("xxxx");//您的邮箱密码
- mailInfo.setFromAddress("<span style="line-height: 23.3333px;">xxx@xxx.com</span>");
- mailInfo.setSubject(subject); //标题
- mailInfo.setContent(content); //内容
- mailInfo.setToAddresses(addresses);
- sms.sendHtmlMail(mailInfo);
- String addressesmail = "";
- for(int i=0;i<addresses.length;i++){
- addressesmail = addressesmail+addresses[i]+";";
- }
- JavaBaseTest.LogUtil.APP.info("给"+addressesmail+"的测试结果通知邮件发送完成!");
- }else{
- JavaBaseTest.LogUtil.APP.info("当前任务不需要发送邮件通知!");
- }
- }
复制代码
|
|