Tag: imap

如何获取电子邮件所有附件的文件名?

我试图使用java和imap获取所有电子邮件附件的文件名。我的代码是: MimeMessage msg = (MimeMessage) messages[i]; String fileName = msg.getFileName(); System.out.println(“The file name of this attachment is ” + fileName); 但即使电子邮件中包含附件,它也会一直打印出来。我在SO上看到了不同的代码,但没有一个工作……如果附件不止一个,我不知道该怎么办。 PS:我只想获取文件名而不想下载附件。

Javamail从特定发件人处获取所有电子邮件

在java中,我需要从特定的发件人那里获取所有电子邮件。 有几种方法可以做到这一点,如下所示: http : //www.codejava.net/java-ee/javamail/using-javamail-for-searching-e-mail-messages 但是我需要在gmail端完成这个过程。 我阅读所有电子邮件然后决定应该继续哪一个电子邮件是不对的。 另外在http://alvinalexander.com/java/javamail-multiple-search-terms-pop3-mailbox-yahoo中你可以搜索它很棒的邮件正文,但是发件人(FROM部分)呢? 我该如何过滤它? 每次阅读所有电子邮件都不利于我们的带宽(当然,我们可以标记上次阅读的电子邮件,并以某种方式阅读所有新电子邮件,例如使用UIDFolder) 谢谢

使用带有IMAP的javax.mail获取来自GMail的消息的UID

我正在使用javax.mail使用IMAP从GMail检索邮件。 我还希望获得应用于每个邮件的标签,因此我将遍历商店中的所有文件夹(实际上是标签)并为彼此下载邮件。 我使用ImapFolder的getUID方法获取每条消息的UID,然后比较它们以识别不同文件夹中的相同邮件。 例如,如果我将邮件“Hello”标记为“A”和“B”,我将遍历文件夹“收件箱”,“A”和“B”,并从每个文件夹中获取相同的邮件; 所以我可以保留一个标有“收件箱”,“A”和“B”的副本。 但是,getUID方法返回文件夹相对ID,因此相同的邮件可能在不同的文件夹中具有不同的ID,或者不同的邮件可能在不同的文件夹中具有相同的ID。 在这个例子中。 “HellO”可能在“A”中显示为邮件1,在“B”中显示为邮件2。 有没有办法获得每个邮件的商店相对ID,独立于文件夹? 或者更好的方法来获取附加到单个邮件的标签?

Javamail:在搜索邮件时可以使用FetchProfile而不是仅仅获取邮件吗?

根据http://java.sun.com/products/javamail/javadocs/javax/mail/FetchProfile.html , Message[] msgs = folder.getMessages(); FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.ENVELOPE); folder.fetch(msgs, fp); 但是,如果我想通过search()只获取读取消息,我没有办法指定FetchProfile(因为search()不接受这样的参数)。 Folder inbox = store.getFolder(“Inbox”); inbox.open(Folder.READ_WRITE); FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); Message messages[] = inbox.search(ft); //how to specify a FetchProfile here ?? 还有另一种方式吗? 非常感谢提前。

使用Javamail API和IMAP批量获取邮件正文

有没有办法通过使用Javamail API一次调用IMAP服务器来获取多个电子邮件的邮件正文? 我知道我可以使用Message.getContent()调用到达给定消息的主体,但最终会为每个消息调用imap服务器。 是否可以使用FetchProfile和Folder.fetch调用批量获取主体? 该文档暗示FetchProfile仅用于头数据。 我尝试了下面这个,但是没有做到这一点: FetchProfile fp = new FetchProfile(); fp.add(“rfc822.text”); inbox.fetch(messages, fp); 如果使用Javamail无法做到这一点,是由于Javamail API中的约束还是IMAP协议根本不支持这个?

如何从imap只下载新的电子邮件?

我有一个用于使用imap存档电子邮件的应用程序。 此应用程序中还有许多需要存档的imap帐户。 在这个时刻,应用程序不时连接到imap帐户并只下载新的电子邮件。 我的问题是,每次连接到imap帐户时,它都会validation来自所有文件夹的所有电子邮件,并仅下载尚未下载的电子邮件(我存储所有电子邮件的邮件ID,并仅下载具有邮件ID的电子邮件)没有存储)。 所以我想知道是否有替代方案,因为validation所有电子邮件需要一些时间(10-20K需要2-5分钟)。 我使用JavaMail API连接到imap帐户。

使用IMAP邮寄:如何检测邮件是否已从一个文件夹移动到另一个文件夹?

使用JavaMail API和IMAP,我想知道消息已从文件夹a移动到b。 如何在不增加听众的情况下做到这一点? 我的意思是当我登录帐户并打开文件夹时,我想发现消息的变化。 问题是如果您在文件夹a中有3条消息,其中包含ID 1 2和3,并且您将具有ID 3的消息移动到文件夹B,则消息的ID将更改,并且我们在文件夹B中有一条ID为1的消息。 我的目标是将邮件服务器中的邮件结构与我自己的本地服务器同步。 我必须自己保留所有消息信息,标志等。 因此,在每次登录时,我必须发现对邮件服务器中存储的邮件所做的所有更改。 我可以通过以下方式获取新邮件或未读邮件: Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.RECENT), true)); 或者 Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false)); 但我对新邮件不感兴趣,我也想知道对旧邮件所做的更改,例如我想知道这个: 已在2个月前阅读的邮件已移至另一个文件夹。 我的想法是, 因为uids改变了,我不能用它来识别邮件。 我想我必须使用主题发送者接收日期等邮件信息,构建它们的哈希值并比较每次登录时消息的哈希值。 但它会导致性能问题。

无法在Android上使用XOAUTH连接到Gmail IMAP

我正在构建一个使用Gmail备份某些数据的应用。 我使用XOAUTH连接到Gmail并获得令牌和秘密。 但我无法连接到Gmail的IMAP服务。 我按照http://code.google.com/p/google-mail-xoauth-tools/wiki/JavaSampleCode上的示例进行了操作: Properties props = new Properties(); props.put(“mail.imaps.sasl.enable”, “true”); props.put(“mail.imaps.sasl.mechanisms”, “XOAUTH”); props.put(OAUTH_TOKEN_PROP, oauthToken); props.put(OAUTH_TOKEN_SECRET_PROP, oauthTokenSecret); props.put(CONSUMER_KEY_PROP, Const.CONSUMER_KEY); props.put(CONSUMER_SECRET_PROP, Const.CONSUMER_SECRET); Session session = Session.getInstance(props); session.setDebug(debug); final URLName unusedUrlName = null; IMAPSSLStore store = new IMAPSSLStore(session, unusedUrlName); final String emptyPassword = “”; store.connect(host, port, userEmail, emptyPassword); return store; 运行时,它会报告以下exception。 javax.mail.MessagingException: * BYE [UNAVAILABLE] Temporary System […]

如何从邮件中删除用户标志?

我使用JavaMail-1.5将Gmail帐户的IMAP消息附加到Yahoo帐户。 我的要求是从邮件中删除用户标志,因为它们在将邮件附加到其他文件夹时产生错误。 我想从邮件中删除所有用户标志? 下面是获取标志的代码。 Flags flags = message.getFlags(); Flag[] systemFlag = flags.getSystemFlags(); String[] userFlag = flags.getUserFlags(); 请建议如何从我的消息中删除userFlag 。 谢谢

通过localhost上的Java EE读取电子邮件Outlook

我创建了一个包含3个虚拟机的应用程序,并使用Nagios监控所有这些计算机。 我使用nagios通过postfix将我的电子邮件发送到我的Outlook on localhost,然后我获得了所有带有Java EE应用程序的邮件,并将它们放入我的数据库中。 如何使用Java EE从MS Outlook中提取所有电子邮件并将其放入我的数据库? 我在postfix中使用IMAP将电子邮件发送到我的localhost上的Outlook 我有Outlook版本2007和Windows 7 Cordialement