美文网首页
Java 二级域名邮箱的正则和代发邮件笔记

Java 二级域名邮箱的正则和代发邮件笔记

作者: silencefun | 来源:发表于2019-04-17 17:41 被阅读0次

    正则不怎么关注,需要代发邮件,配置什么都不麻烦,做笔记主要两块:

    1.二级域名邮箱的正则

    一般是直接搜出的是

          String regex = "[a-zA-Z0-9_-]+@\\w+\\.[a-z]+(\\.[a-z]+)?";
    

    然后使用

                //compile()方法生成模式对象
                    Pattern p = Pattern.compile(regex);
                    Matcher m = p.matcher(content);
                    while (m.find()) {
                        //do sth 
                         System.err.println(m.group());
                    }
    
    注意,这个正则不能识别二级域名邮箱,使用下面这个正则可以识别二级域名邮箱。

    网上找了很多终于找了个很长但是好用的,二级三级域名邮箱都可以实现。

        String regex="(?:(?:[A-Za-z0-9\\-_@!#$%&'*+/=?^`{|}~]|(?:\\\\[\\x00-\\xFF]?)|(?:\"[\\x00-\\xFF]*\"))+(?:\\.(?:(?:[A-Za-z0-9\\-@!#$%&'*+/=?^`{|}~])|(?:\\\\[\\x00-\\xFF]?)|(?:\"[\\x00-\\xFF]*\"))+)*)@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+(?:(?:[A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*)(?:[A-Za-z0-9-]*[A-Za-z0-9])?))";
    

    2. java mail创建带图片 附件的邮件

    配置过程没有什么要记录的/一些邮箱需要把服务提供鉴权码替换密码。

    正文可以用html标签格式实现

            MimeMessage msg  =new MimeMessage(session);
            String subjecy=MimeUtility.encodeWord("这是一个测试邮件", "UTF-8", "Q");
            msg.setSubject(subjecy); //主题
            
            
            MimeBodyPart text = new MimeBodyPart();
            text.setContent("<p class=\"p1\"><b>您好,</b></p>\r\n" + 
                    "\r\n" + 
                    "<p class=\"p1\"><font size=\"2\"><b><a href=\"http://baidu.com\">百度</a></b></font></p>\r\n" + 
                    "<p class=\"p1\"><b>图片</b></p><br><img src='cid:aaa.jpg' width='200' hight='100'>\"<br>", "text/html;charset=UTF-8");
            
              //图片  
            MimeBodyPart image = new MimeBodyPart();
            image.setDataHandler(new DataHandler(new FileDataSource("E:\\3.jpg")));
            image.setContentID("aaa.jpg");
    
    
            // 描述关系:正文和图片
            MimeMultipart mp1 = new MimeMultipart();
            mp1.addBodyPart(text);
            mp1.addBodyPart(image);
            mp1.setSubType("related"); ////     
    
            msg.setContent(mp1);
            msg.saveChanges();
    

    3.中文乱码

    虽然读取的时候标注了utf-8,还是出现乱码现象。
    解决办法,主题设置的时候使用javax.mail.internet.MimeUtility.encodeWord();

        String subjecy=MimeUtility.encodeWord("这是一个测试邮件", "UTF-8", "Q");
       msg.setSubject(subjecy);//设置主题
    

    4.频率

    本来是for 循环直接发的,然后大概100+失败,看了发件箱,结果好多被退回的。
    说是超出频率。

    所以,改了三分钟发一封。

    相关文章

      网友评论

          本文标题:Java 二级域名邮箱的正则和代发邮件笔记

          本文链接:https://www.haomeiwen.com/subject/bwonwqtx.html