亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

淺析Java Mail無法解析帶分號的收件人列表的問題

2019-11-26 15:59:51
字體:
來源:轉載
供稿:網友

今天同事碰到一個問題,使用JAVA MAIL收取郵件時,如果收件人是個列表,且收件人列表是以分號進行分割的,則JAVA MAIL就會出現異常,不能正常解析,抽空看了一眼,自己寫了個簡單demo,很簡單,例如:

復制代碼 代碼如下:

        @Test
        public void testReceiveMail() {

                try {
                        String host = "pop3.163.com";
                        Properties pops = new Properties();
                        pops.put("mail.pop3.host", host);
                        pops.put("mail.pop.auth", "true");
                        Session session = Session.getDefaultInstance(pops, null);
                        Store store = session.getStore("pop3");
                        //連接郵件服務器
                        store.connect(host, "chb_go", "3870359346");
                        //收取收件箱
                        Folder inbox = store.getDefaultFolder().getFolder("INBOX");
                        //只讀足夠了
                        inbox.open(Folder.READ_ONLY);
                        //得到所有郵件列表
                        Message[] msg = inbox.getMessages();
                        FetchProfile profile = new FetchProfile();
                        profile.add(FetchProfile.Item.ENVELOPE);
                        inbox.fetch(msg, profile);
                        for (int i = 0; i < msg.length; i++) {
                                System.out.println("===============================================");
                                System.out.println("主題:"+msg[i].getSubject());
                                InternetAddress[] toAddress = (InternetAddress[]) msg[i].getRecipients(Message.RecipientType.TO);
                                for(InternetAddress adress:toAddress){
                                        System.out.println(adress.getAddress());
                                }
                        }
                        //關閉打開的資源
                        if (inbox != null)
                                inbox.close(true);
                        if (store != null)
                                store.close();
                } catch (NoSuchProviderException e) {
                        e.printStackTrace();
                } catch (MessagingException e) {
                        e.printStackTrace();
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }

很簡單,可以正常收取郵件、正常顯示收件人列表;但是當連接一個內部郵件服務器,并且收件人是以分號為分隔符的郵件時,確實無法正常顯示收件人。

查找了一下規范,發現FRC 822規定:收件人之間是要求以逗號為分割,看來分號分割不是標準的分隔符,如下:

復制代碼 代碼如下:

destination = "To" ":" 1#address ; Primary
/ "Resent-To" ":" 1#address
 / "cc" ":" 1#address ; Secondary
/ "Resent-cc" ":" 1#address
/ "bcc" ":" #address ; Blind carbon
/ "Resent-bcc" ":" #address

而#語法表示一個列表,列表之間的內容以逗號進行分割,例如:
復制代碼 代碼如下:

2.7. #RULE: LISTS
A construct "#" is defined, similar to "*", as follows:
<l>#<m>element
indicating at least <l> and at most <m> elements, each separated by one or more commas (","). This makes the usual form of lists very easy; a rule such as '(element *("," element))' can be shown as "1#element". Wherever this construct is used, null elements are allowed, but do not contribute to the count of elements present. That is, "(element),,(element)" is permitted, but counts as only two elements. Therefore, where at least one ele- ment is required, at least one non-null element must be present. Default values are 0 and infinity so that "#(element)" allows any number, including zero; "1#element" requires at least one; and "1#2element" allows one or two.

JAVA MAIL嚴格按照RFC 822規范進行操作,沒有對分號做處理。大多數郵件服務器都是嚴格遵循RFC 822規范的,比如Lotus Notes、gmail(gmail的收件人是不能輸入分號的,甚至會自動替換成逗號,贊一個);但是,大家也會發現平時發送郵件,經常以分號做分割,這是因為微軟的一些郵件工具,如:outlook、outlook Express或是其MAPI,則是以分號為分隔符的,又因為outlook使用用戶非常廣泛,甚至很多人會認為分號分隔才是規范,強烈鄙視Microsoft!不規范的東西太多了??!

如果足夠倒霉,真的碰到了習慣使用分號作為分割符的用戶,而其郵件服務器又不會自動將分號替換為逗號,那我們只能通過程序做兼容了,可以考慮修訂JAVA MAIL源碼,修改
InternetAddress類的parse方法,這里源碼就不展現了,大家只需將對于分號的處理修改成和逗號一樣即可(但是分號在FRC 822中也有定義,這么修改有可能引起隱患,大家慎重)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美富婆性猛交| 精品久久久久久久久久久久久| 亚洲国产美女久久久久| 亚洲欧美激情四射在线日| 福利一区福利二区微拍刺激| 成人激情视频在线观看| 国产午夜精品全部视频在线播放| 午夜精品一区二区三区av| 久久91精品国产91久久久| 伊人精品在线观看| 欧美日韩亚洲国产一区| 日韩中文字幕第一页| 久久夜色精品国产欧美乱| 亚洲日本aⅴ片在线观看香蕉| 欧美高清videos高潮hd| 国产人妖伪娘一区91| 4438全国亚洲精品在线观看视频| 欧美高清一级大片| 国产精品色午夜在线观看| 欧美日韩免费在线观看| 久久久久久久久久久成人| 91爱爱小视频k| 亚洲91精品在线| 国内免费久久久久久久久久久| 亚洲福利视频网站| 色噜噜狠狠色综合网图区| 热草久综合在线| 国产精品wwwwww| 国模吧一区二区| 久久av红桃一区二区小说| 一区三区二区视频| 久久成人av网站| 国产精品久久久久久网站| 国产成人av网址| 欧美丰满少妇xxxxx| 欧美精品久久久久久久久久| 91久久精品国产91性色| 国产精品三级美女白浆呻吟| 久久91精品国产91久久跳| 欧美日本亚洲视频| 亚洲精品资源在线| 亚洲欧美在线免费| 久久久久久91香蕉国产| 欧美一区二区三区……| 亚洲国产成人在线播放| 91夜夜揉人人捏人人添红杏| 国产精品96久久久久久又黄又硬| 美女国内精品自产拍在线播放| 国产成人精品久久亚洲高清不卡| 欧美精品xxx| 亚洲欧美日韩精品| 午夜精品一区二区三区在线播放| 精品亚洲一区二区三区在线播放| 色偷偷av亚洲男人的天堂| 国产伦精品一区二区三区精品视频| 日韩免费在线观看视频| 国产成人精品a视频一区www| 久久精品国产久精国产一老狼| 日韩成人av网址| 久久久久久久久久久久久久久久久久av| 欧美激情视频一区二区三区不卡| 欧美日韩亚洲网| 国产男女猛烈无遮挡91| 亚洲欧美制服中文字幕| 日韩**中文字幕毛片| 亚洲欧美成人网| 亚洲国产成人91精品| 国产精品高潮呻吟视频| 欧美黄色片免费观看| 国产网站欧美日韩免费精品在线观看| 久久亚洲春色中文字幕| 超碰日本道色综合久久综合| 成人免费视频网址| 亚洲一区精品电影| 亚洲精品国产品国语在线| 欧美在线视频网站| 日韩的一区二区| 欧洲亚洲在线视频| 亚洲欧洲日韩国产| 亚洲一区二区免费在线| 亚洲精品美女在线| 欧美成人精品在线播放| 91久久精品国产| 一区二区三区视频免费在线观看| 亚洲一区免费网站| 91精品久久久久久久久久入口| 亚洲欧美综合另类中字| 欧美激情视频一区| 国产精品一区=区| 欧美性jizz18性欧美| 久久国产精品亚洲| 欧美专区第一页| 国产精品欧美激情在线播放| 久久九九精品99国产精品| 欧美性猛交xxxx免费看| 亚洲最大的av网站| 国产精品网站大全| 欧美一级淫片aaaaaaa视频| 欧美黑人又粗大| 欧美精品免费在线| 欧美激情性做爰免费视频| 欧美劲爆第一页| 欧美性生交xxxxx久久久| 成人免费淫片视频软件| 激情亚洲一区二区三区四区| 欧美精品在线看| 九九精品在线播放| 久久亚洲精品一区二区| 亚洲jizzjizz日本少妇| 欧美在线日韩在线| 91亚洲精品久久久久久久久久久久| 欧美韩日一区二区| 成人深夜直播免费观看| 久久久久久久久久久久av| 中文国产亚洲喷潮| 亚洲xxxx18| 久久视频免费在线播放| 91午夜在线播放| 久久影视免费观看| 精品久久久久国产| 国产成人精品网站| 欧美最猛黑人xxxx黑人猛叫黄| 欧美激情在线视频二区| 国产不卡视频在线| 日韩中文字幕在线观看| 国产精品专区一| 欧美日韩美女视频| 欧美激情欧美激情在线五月| 欧美wwwwww| 在线播放国产精品| 亚洲第一页自拍| 国产日产欧美a一级在线| 欧美理论在线观看| 日本久久久久久久久| 欧美激情亚洲另类| 日韩一级黄色av| 国产精品久久久久久五月尺| 亚洲天堂av在线播放| 欧美性猛交xxxx富婆| 国产丝袜视频一区| 午夜精品久久久久久久99热浪潮| 欧美电影免费观看大全| 亚洲天堂av高清| 97人人模人人爽人人喊中文字| 精品久久久视频| 国产手机视频精品| 日本成人在线视频网址| 日韩在线免费视频观看| 国产福利精品av综合导导航| 亚洲国产精品中文| 国产精品美女无圣光视频| 亚洲图片欧美日产| 国产精品视频资源| 国产精品视频资源| 日韩中文综合网| 亚洲性夜色噜噜噜7777| 日韩大胆人体377p| 亚洲成人黄色在线观看| 亚洲精品wwww| 日韩免费观看在线观看| 久久人人爽人人爽爽久久| 欧美电影在线观看高清| 成人亚洲综合色就1024| 丝袜美腿亚洲一区二区|