簡體   English   中英

GAE-Javamail API獲取空內容郵件

[英]GAE - Javamail API getting null content mail

我正在使用這段代碼從我的Gmail帳戶檢索最新的電子郵件。

        Properties props = new Properties();
        props.setProperty("mail.store.protocol", "imaps");

        try {

            Session session = Session.getInstance(props, null);
            Store store = session.getStore();
            store.connect("imap.gmail.com", "<username@gmail.com>", "<password>");
            Folder inbox = store.getFolder("INBOX");
            inbox.open(Folder.READ_ONLY);
            MimeMessage msg = (MimeMessage) inbox.getMessage(inbox.getMessageCount());
            Address[] in = msg.getFrom();
            for (Address address : in) {
                resp.getWriter().println("FROM:" + address.toString());
            }
            Multipart mp = (Multipart) msg.getContent();
            BodyPart bp = mp.getBodyPart(0);
            resp.getWriter().println("SENT DATE:" + msg.getSentDate());
            resp.getWriter().println("SUBJECT:" + msg.getSubject());
            resp.getWriter().println("CONTENT:" + bp.getContent());
        } catch (Exception mex) {
            mex.printStackTrace();
        }

作為正常的Java應用程序,它運行良好。 但是,當我將其用作在Google App Engine上運行的Servlet中的函數時,它只能獲取FROM地址,內容為null。
msg.getFrom()可以正常工作,但msg.getContent()僅返回null。
謝謝大家的幫助。

由於安全原因,GAE限制了您可以通過JavaMail接收的內容類型。 郵件部件和附件必須是幾種允許的類型之一,並且附件文件名必須以該類型可識別的文件擴展名結尾。 在這里,您可以找到所有允許的MIME類型的列表。 我想您的郵件內容不符合這些限制,這就是為什么您得到空值的原因。

恐怕沒有辦法繞過這個限制。 但是,您應該考慮應用程序是否可能僅使用允許的MIME類型。 它們很多,所以畢竟應該不是很嚴格。

您可以嘗試使用的其他解決方案在此處介紹。

我也有這個問題。

請僅使用允許的MIME類型。

或者您可以嘗試將類型從原始類型更改為“ text / html”。

暫無
暫無

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

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