【问题标题】:Android : Getting email message with gmail-apiAndroid:使用 gmail-api 获取电子邮件
【发布时间】:2023-03-14 06:21:02
【问题描述】:

我收到一条原始格式的消息。然后得到了 Mimemessage by

MimeMessage email = new MimeMessage(session, new ByteArrayInputStream(emailBytes));

现在 email.getSubject 正在返回正确的值,但是 email.getReceivedDate 为空

请解释这种行为。这是解码邮件不同部分的正确方法吗

com.google.api.services.gmail.model.Message fullMessage = mService.users().messages().get(acct.sEmail, message.getId()).setFormat("raw").execute();
                Properties props = new Properties();
                idg.javax.mail.Session session = idg.javax.mail.Session.getDefaultInstance(props, null);

                byte[] emailBytes = com.google.api.client.util.Base64.decodeBase64(fullMessage.getRaw());
                try {
                    idg.javax.mail.internet.MimeMessage email = new idg.javax.mail.internet.MimeMessage(session, new ByteArrayInputStream(emailBytes));
                    Log.i("Received date","is" + email.getReceivedDate() + message.getId());
                    Log.i("subject", "is" + email.getSubject());

                } catch (MessagingException e) {
                    e.printStackTrace();
                }

【问题讨论】:

    标签: android gmail-api


    【解决方案1】:

    是的,您可以将getReceivedDate() 用于MimeMessage,当然,这是检索邮件不同部分的值的更好方法。

    这是检索MimeMessage: Users MimeMessage

    这是为了获取邮件的不同属性:MimeMessage Properties

    【讨论】:

    • 那么为什么它返回为 null 。
    • 我已经添加了我如何做的代码。我怀疑我的做法不对。
    猜你喜欢
    • 2014-08-19
    • 2019-01-22
    • 2018-11-03
    • 1970-01-01
    • 2014-09-07
    • 2016-06-25
    • 2015-12-15
    • 2020-09-02
    相关资源
    最近更新 更多