2016-04-27 14 views
-3

我知道getFrom()返回「From」屬性。getFrom()[0])中[0]的用法是什麼,用於獲取郵件發件人地址

並且如果「Sender」頭部字段不存在,則返回null。此實現使用getHeader方法獲取必需的標題字段。

但爲什麼使用[0]與getFrom()。使用[1]拋出異常「ArrayIndexOutOfBoundsException異常:1」

import javax.mail.*; 
import javax.mail.internet.MimeMessage; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.Properties; 

public class VerifyEmails { 
    public Message message; 
    public int count; 
    public String result; 

    public void check(String host, String user, String password) throws IOException, MessagingException { 

     Properties properties = new Properties(); 
     properties.put("mail.imap.host", host); 
     properties.put("mail.imap.user", user); 
     properties.put("mail.imap.port", "143"); 
     properties.put("mail.imap.starttls.enable", "false"); 
     Session emailSession = Session.getInstance(properties); 
     Store store = emailSession.getStore("imap"); 
     store.connect(host, user, password); 
     Folder emailFolder = store.getFolder("INBOX"); 
     emailFolder.open(Folder.READ_ONLY); 
     Message[] messages = emailFolder.getMessages(); 
     System.out.println("Total messages are---" + messages.length); 
     for (count = 0; count < messages.length; count++) { 
      message = messages[count]; 
      System.out.println("---------------------------------"); 
      System.out.println("Email Number " + (count + 1)); 
      System.out.println("Subject: " + message.getSubject()); 
      System.out.println("From: " + message.getFrom()[0]); 
      InputStream in = messages[count].getInputStream(); 
      StringBuilder sb = new StringBuilder(); 
      BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
      String read; 
      while ((read = br.readLine()) != null) { 
       sb.append(read); 
      } 
      br.close(); 
      String mailSource = sb.toString(); 
      System.out.println("mailSource is" + mailSource); 
     } 
    } 
+1

'getFrom'返回什麼類型的變量? –

+1

你在說什麼課? –

+0

你可以添加包含import語句的代碼嗎? –

回答

0

就像方法文檔中解釋說:

此字段包含誰願意 此消息的人的身份發送。

你可以在from中有多個人,這就是你擁有一個數組的原因。這個Stackoverflow thread談論它。

但是一般來說,你在這個數組中只有一個人,這就是你有一個ArrayIndexOutOfBoundsException的原因。

相關問題