簡體   English   中英

從InternetAddress打印出發件人的電子郵件地址

[英]Printing out the email address of sender from InternetAddress

這是提取sender和電子郵件subject的代碼。使用此代碼,我看到正確的主題顯示,但我看到不同格式的發件人的地址。

Properties props = new Properties();
    props.put("mail.imap.host" , "imap.gmail.com" );
    props.put("mail.imap.user" , "username");
    // User SSL
    props.put("mail.imap.socketFactory" , 993);
    props.put("mail.imap.socketFactory.class" , "javax.net.ssl.SSLSocketFactory" );
    props.put("mail.imap.port" , 993 );
    Session session = Session.getDefaultInstance(props , new Authenticator() {
        @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("username" , "password");
        }
    });

    try {
      Store store = session.getStore("imap");
      store.connect("imap.gmail.com" , "username" , "password");
      Folder fldr = store.getFolder("Inbox");
      fldr.open(Folder.READ_ONLY);
      Message msgs[] = fldr.getMessages();
        for(int i = 0 ; i < msgs.length ; i++) {
            System.out.println(msgs[i].getFrom() + "<-- FROM" + " " + msgs[i].getSubject() + "<---Subject");
        }
    } catch(Exception exc) {

    }
}

輸出是:

[Ljavax.mail.internet.InternetAddress;@1462851<-- FROMGet Gmail on your mobile phone<---Subject
[Ljavax.mail.internet.InternetAddress;@bdab91<-- FROMImport your contacts and old email<---Subject
[Ljavax.mail.internet.InternetAddress;@4ac00c<-- FROMCustomize Gmail with colors and themes<---Subject
[Ljavax.mail.internet.InternetAddress;@1865b28<-- FROMtester<---Subject

它是什么形式的? (@ 1462851)我想要發件人的電子郵件地址而不是@1462851我怎么能這樣做?

getForm()返回一個對象。 要將其打印為純字符串,請在System.out嘗試InternetAddress.toString(msgs[i].getFrom())

你應該使用msgs[i].getFrom().getAddress() 你看到的是InternetAddress對象的toString結果(類名+ hashcode)

在我發現這個簡單的代碼之前,我花了很多時間:

System.out.println("received from "+((InternetAddress)((Address)(message.getFrom()[0]))).getAddress());

這是因為您只打印出沒有toString()方法的InternetAddress實例。 然后它默認為Object.toString() ,它主要用於查看對象是否不同。

考慮明確選擇要在print語句中看到的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM