zoukankan      html  css  js  c++  java
  • (八)跑完用例后通过maven发送邮件

    邮件类:

    package config;
    
    import com.sun.mail.util.MailSSLSocketFactory;
    import org.apache.log4j.Logger;
    import util.PropertiesReadUtil;
    
    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    import javax.activation.FileDataSource;
    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.Date;
    import java.util.Properties;
    /**
     * @description:
     * @author: lv
     * @time: 2020/5/25 17:53
     */
    public class MailSend {
        private static String Host;
        private static String UserName;
        private static String Password;
        private static String Recipients;
        private static String MailTitle;
        private static String MailContent;
        private static Properties props;
        private static final String FILE_IN = "./test-output/test_report.html";
        private static Logger logger = Logger.getLogger(MailSend.class);
        static{
            try {
                props = PropertiesReadUtil.getPropContent("mail");
                Host = PropertiesReadUtil.getPropValueByKey(props,"Host");
                UserName = PropertiesReadUtil.getPropValueByKey(props,"UserName");
                Password = PropertiesReadUtil.getPropValueByKey(props,"Password");
                Recipients = PropertiesReadUtil.getPropValueByKey(props,"Recipients");
                MailTitle = PropertiesReadUtil.getPropValueByKey(props,"MailTitle");
                MailContent = PropertiesReadUtil.getPropValueByKey(props,"MailContent");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args){
            Properties prop = new Properties();
            prop.setProperty("mail.host", Host); //// 设置QQ邮件服务器
            prop.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议
            prop.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码
    
            // 关于QQ邮箱,还要设置SSL加密,加上以下代码即可
            try {
                MailSSLSocketFactory sf = new MailSSLSocketFactory();
                sf.setTrustAllHosts(true);
                prop.put("mail.smtp.ssl.enable", "true");
                prop.put("mail.smtp.ssl.socketFactory", sf);
    
                //创建定义整个应用程序所需的环境信息的 Session 对象
                Session session = Session.getDefaultInstance(prop, new Authenticator() {
                    public PasswordAuthentication getPasswordAuthentication() {
                        //发件人邮件用户名、授权码
                        return new PasswordAuthentication(UserName, Password);
                    }
                });
                //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
                session.setDebug(true);
                //通过session得到transport对象
                Transport ts = session.getTransport();
                //使用邮箱的用户名和授权码连上邮件服务器
                ts.connect(Host, UserName, Password);
                //创建邮件对象
                MimeMessage message = new MimeMessage(session);
                //指明邮件的发件人
                message.setFrom(new InternetAddress(UserName));
                // 设置发送时间
                message.setSentDate(new Date());
                //设置多个收件人
                Address[] internetAddressTo = new InternetAddress().parse(Recipients);
    
                //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
                message.setRecipients(Message.RecipientType.TO, internetAddressTo);
                //邮件的标题
                message.setSubject(MailTitle);
                Multipart multipart = new MimeMultipart();
                //邮件正文
                BodyPart contentPart = new MimeBodyPart();
                contentPart.setContent(MailContent, "text/html;charset=utf-8");
                multipart.addBodyPart(contentPart);
                //添加附件
                BodyPart attachmentPart = new MimeBodyPart();
                DataSource source = new FileDataSource(FILE_IN);
                DataHandler attachment = new DataHandler(source);
                attachmentPart.setDataHandler(new DataHandler(source));
                //避免中文乱码的处理
                attachmentPart.setFileName(MimeUtility.encodeWord(attachment.getName()));
                multipart.addBodyPart(attachmentPart);
    
                //邮件的文本内容
                message.setContent(multipart);
                message.saveChanges();
    
                //发送邮件
                ts.sendMessage(message, message.getAllRecipients());
                ts.close();
            } catch (Exception e) {
                logger.error("mailError!",e);
            }
        }
    }
    

    maven设置:

      <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.6.0</version>
                    <executions>
                        <execution>
                            <phase>test</phase>
                            <goals>
                                <goal>java</goal>
                            </goals>
                            <configuration>
                                <includePluginDependencies>true</includePluginDependencies>
                                <mainClass>config.MailSend</mainClass>
                            </configuration>
                        </execution>
                    </executions>
    
                </plugin>
    

      

      

  • 相关阅读:
    第三章-套接字编程
    unix网络编程第四章----基于TCP套接字编程
    unix网络编程第一章demo
    unix网络编程第2章
    论epoll的实现
    Select函数实现
    函数式编程语言
    Git
    python库-urllib
    PIL处理图片信息
  • 原文地址:https://www.cnblogs.com/lvchengda/p/13047977.html
Copyright © 2011-2022 走看看