51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1842|回复: 1
打印 上一主题 下一主题

[资料] 【seagull1985】框架中的测试结果邮件发送

[复制链接]
  • TA的每日心情
    奋斗
    2018-8-27 15:56
  • 签到天数: 322 天

    连续签到: 1 天

    [LV.8]测试军长

    跳转到指定楼层
    1#
    发表于 2016-8-12 16:26:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 seagull1985 于 2016-8-12 16:42 编辑

          自动结果测试完成后,一般都需要通过邮件发送测试结果,在这里给大家介绍下简单易用的邮件发送代码。
          代码来源网络,具体已经记不清了,自己改了一点。  需要用到mail.jar包

          PART1  邮件发送基本信息实体
    1. /**   
    2. * 发送邮件需要使用的基本信息
    3. */   
    4. public class MailSenderInfo {   
    5.     // 发送邮件的服务器的IP和端口   
    6.     private String mailServerHost;   
    7.     private String mailServerPort = "25";   
    8.     // 邮件发送者的地址   
    9.     private String fromAddress;   
    10.     // 邮件接收者的地址   
    11.     private String toAddress;
    12.     // 多个邮件接收者的地址   
    13.         private String[] toAddresses;
    14.     // 登陆邮件发送服务器的用户名和密码   
    15.     private String userName;   
    16.     private String password;   
    17.     // 是否需要身份验证   
    18.     private boolean validate = false;   


    19.         // 邮件主题   
    20.     private String subject;   
    21.     // 邮件的文本内容   
    22.     private String content;   
    23.     // 邮件附件的文件名   
    24.     private String[] attachFileNames;      
    25.     /**   
    26.       * 获得邮件会话属性   
    27.       */   
    28.     public Properties getProperties(){   
    29.       Properties p = new Properties();   
    30.       p.put("mail.smtp.host", this.mailServerHost);   
    31.       p.put("mail.smtp.port", this.mailServerPort);   
    32.       p.put("mail.smtp.auth", validate ? "true" : "false");   
    33.       return p;   
    34.     }   
    35.     public String getMailServerHost() {   
    36.       return mailServerHost;   
    37.     }   
    38.     public void setMailServerHost(String mailServerHost) {   
    39.       this.mailServerHost = mailServerHost;   
    40.     }   
    41.     public String getMailServerPort() {   
    42.       return mailServerPort;   
    43.     }   
    44.     public void setMailServerPort(String mailServerPort) {   
    45.       this.mailServerPort = mailServerPort;   
    46.     }   
    47.     public boolean isValidate() {   
    48.       return validate;   
    49.     }   
    50.     public void setValidate(boolean validate) {   
    51.       this.validate = validate;   
    52.     }   
    53.     public String[] getAttachFileNames() {   
    54.       return attachFileNames;   
    55.     }   
    56.     public void setAttachFileNames(String[] fileNames) {   
    57.       this.attachFileNames = fileNames;   
    58.     }   
    59.     public String getFromAddress() {   
    60.       return fromAddress;   
    61.     }   
    62.     public void setFromAddress(String fromAddress) {   
    63.       this.fromAddress = fromAddress;   
    64.     }   
    65.     public String getPassword() {   
    66.       return password;   
    67.     }   
    68.     public void setPassword(String password) {   
    69.       this.password = password;   
    70.     }   
    71.     public String getToAddress() {   
    72.       return toAddress;   
    73.     }   
    74.     public void setToAddress(String toAddress) {   
    75.       this.toAddress = toAddress;   
    76.     }  
    77.     public String[] getToAddresses() {
    78.                 return toAddresses;
    79.         }
    80.         public void setToAddresses(String[] toAddresses) {
    81.                 this.toAddresses = toAddresses;
    82.         }
    83.     public String getUserName() {   
    84.       return userName;   
    85.     }   
    86.     public void setUserName(String userName) {   
    87.       this.userName = userName;   
    88.     }   
    89.     public String getSubject() {   
    90.       return subject;   
    91.     }   
    92.     public void setSubject(String subject) {   
    93.       this.subject = subject;   
    94.     }   
    95.     public String getContent() {   
    96.       return content;   
    97.     }   
    98.     public void setContent(String textContent) {   
    99.       this.content = textContent;   
    100.     }   
    复制代码


         PART2 邮件发送主方法
    1.     /**   
    2.       * 以HTML格式发送邮件   
    3.       * @param mailInfo 待发送的邮件信息   
    4.       */   
    5.     public  boolean sendHtmlMail(MailSenderInfo mailInfo){   
    6.       // 判断是否需要身份认证   
    7.       MyAuthenticator authenticator = null;   
    8.       Properties pro = mailInfo.getProperties();   
    9.       //如果需要身份认证,则创建一个密码验证器     
    10.       if (mailInfo.isValidate()) {   
    11.         authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());   
    12.       }   
    13.       // 根据邮件会话属性和密码验证器构造一个发送邮件的session   
    14.       Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
    15.       try {   
    16.       // 根据session创建一个邮件消息   
    17.       Message mailMessage = new MimeMessage(sendMailSession);   
    18.       // 创建邮件发送者地址   
    19.       Address from = new InternetAddress(mailInfo.getFromAddress());   
    20.       // 设置邮件消息的发送者   
    21.       mailMessage.setFrom(from);   
    22.       // 创建邮件的接收者地址,并设置到邮件消息中   
    23.       Address[] to = new InternetAddress[mailInfo.getToAddresses().length];
    24.       // 为每个邮件接收者创建一个地址
    25.       for (int i=0; i<mailInfo.getToAddresses().length; i++){
    26.           to[i] = new InternetAddress(mailInfo.getToAddresses()[i]);
    27.        }
    28.                      
    29.       // Message.RecipientType.TO属性表示接收者的类型为TO   
    30.   //单个收件人    mailMessage.setRecipient(Message.RecipientType.TO,to);   
    31.       mailMessage.setRecipients(Message.RecipientType.TO, to);
    32.       // 设置邮件消息的主题   
    33.       mailMessage.setSubject(mailInfo.getSubject());   
    34.       // 设置邮件消息发送的时间   
    35.       mailMessage.setSentDate(new Date());   
    36.       // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象   
    37.       Multipart mainPart = new MimeMultipart();   
    38.       // 创建一个包含HTML内容的MimeBodyPart   
    39.       BodyPart html = new MimeBodyPart();   
    40.       // 设置HTML内容   
    41.       html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");   
    42.       mainPart.addBodyPart(html);   
    43.       // 将MiniMultipart对象设置为邮件内容   
    44.       mailMessage.setContent(mainPart);   
    45.       // 发送邮件   
    46.       Transport.send(mailMessage);   
    47.       return true;   
    48.       } catch (MessagingException ex) {   
    49.           ex.printStackTrace();   
    50.           JavaBaseTest.LogUtil.APP.error(ex);
    51.       }   
    52.       return false;   
    53.     }   
    复制代码
         PART3  初始化邮件发送主体,发送邮件
    1. public static void SendMailInitialization(String subject,String content,String tastid){
    2.                 String[] addresses = LogOperation.GetEmailAddress(tastid);
    3.                 if(addresses!=null){
    4.                          JavaBaseTest.LogUtil.APP.info("准备将测试结果发送邮件通知!请稍等。。。。");
    5.                          //这个类主要是设置邮件   
    6.                       MailSenderInfo mailInfo = new MailSenderInfo();
    7.                          //这个类主要来发送邮件   
    8.                       SimpleMailSender sms = new SimpleMailSender();   
    9.                       mailInfo.setMailServerHost("xx.xxx.xx.xx");   
    10.                       mailInfo.setMailServerPort("25");   
    11.                       mailInfo.setValidate(true);   
    12.                       mailInfo.setUserName("xxx@xxx.com");   
    13.                       mailInfo.setPassword("xxxx");//您的邮箱密码   
    14.                       mailInfo.setFromAddress("<span style="line-height: 23.3333px;">xxx@xxx.com</span>");   
    15.                       mailInfo.setSubject(subject);    //标题
    16.                       mailInfo.setContent(content);     //内容
    17.                       mailInfo.setToAddresses(addresses);
    18.                           sms.sendHtmlMail(mailInfo);
    19.                           String addressesmail = "";
    20.                           for(int i=0;i<addresses.length;i++){
    21.                                   addressesmail =  addressesmail+addresses[i]+";";
    22.                           }
    23.                           JavaBaseTest.LogUtil.APP.info("给"+addressesmail+"的测试结果通知邮件发送完成!");
    24.                 }else{
    25.                         JavaBaseTest.LogUtil.APP.info("当前任务不需要发送邮件通知!");
    26.                 }
    27.         }
    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2016-8-17 17:43:52 | 只看该作者
    哈哈,支持楼主
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 23:26 , Processed in 0.061065 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表