Android - 以编程方式通过imap / pop3在电子邮件中阅读* .text附件

时间:2014-08-05 06:02:01

标签: android email imap pop3

在android中。如何通过pop3 / imap协议从电子邮件中读取附加的* .txt文件内容?

电子邮件提供商可能是gmail,yahoo,exchange server..v.v ..

1 个答案:

答案 0 :(得分:2)

查看How to get gmail mails programmatically in android

中的示例
Properties props = new Properties();
//IMAPS protocol
props.setProperty(“mail.store.protocol”, “imaps”);
//Set host address
props.setProperty(“mail.imaps.host”, imaps.gmail.com);
//Set specified port
props.setProperty(“mail.imaps.port”, “993″);
//Using SSL
props.setProperty(“mail.imaps.socketFactory.class”, “javax.net.ssl.SSLSocketFactory”);
props.setProperty(“mail.imaps.socketFactory.fallback”, “false”);
//Setting IMAP session
Session imapSession = Session.getInstance(props);

Store store = imapSession.getStore(“imaps”);
//Connect to server by sending username and password.
//Example mailServer = imap.gmail.com, username = abc, password = abc
store.connect(mailServer, account.username, account.password);
//Get all mails in Inbox Forlder
inbox = store.getFolder(“Inbox”);
inbox.open(Folder.READ_ONLY);
//Return result to array of message
Message[] result = inbox.getMessages();

要从消息[]接收.txt附件,请查看http://www.codejava.net/java-ee/javamail/download-attachments-in-e-mail-messages-using-javamail

String contentType = message.getContentType();
String messageContent = "";
if (contentType.contains("multipart")) {
    // content may contain attachments
    Multipart multiPart = (Multipart) message.getContent();
    int numberOfParts = multiPart.getCount();
    for (int partCount = 0; partCount < numberOfParts; partCount++) {
        MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(partCount);
        if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
            // this part is attachment
            String fileName = part.getFileName();
            attachFiles += fileName + ", ";
            part.saveFile(saveDirectory + File.separator + fileName);
        } else {
            // this part may be the message content
            messageContent = part.getContent().toString();
        }
    }

    if (attachFiles.length() > 1) {
        attachFiles = attachFiles.substring(0, attachFiles.length() - 2);
    }
} else if (contentType.contains("text/plain")
        || contentType.contains("text/html")) {
    Object content = message.getContent();
    if (content != null) {
        messageContent = content.toString();
    }
}