IMAP SEARCH of Gmail not finding all messages - gmail

When I try to search Gmail via IMAP using X-GM-THRID it does not always find the related message. What could be the problem?

Related

How to fetch messages from specific label(folder) using IMAP in Gmail?

When I list folders I don't have 'snoozed' folder there.
I Googled and it seems like 'snoozed' is sort of internal label that is not available through IMAP (is it correct??). So I want to find where 'snoozed' mails are really kept.
Can I do it using fetch command for instance? How?
There is a really good explanation that this is something that it's not possible in this thread.
Pretty much the Snooze feature is implemented internally within Gmail UI and so Imap clients won't be able to replicate this behavior, therefore you won't be able to find emails snoozed when using a mail client.

Search Gmail for mail with attachments

I have connected and logged in to gmail's imap server using openssl. I intend to search for all mails that have an attachment with them. How can I do that?
IMAP itself does not have a search term for that, but Gmail's extended search support should allow you to search for messages with attachments. You'll have to select the folder you're interested in:
a SELECT INBOX
Then use the GMail specific search command:
b UID SEARCH X-GM-RAW "has:attachment"
That should give you a list of UIDs of messages that have attachments.

Gmail IMAP: Is there a way to get which mailbox is currently selected?

Are there any IMAP command or IMAP response code for Gmail IMAP, which can tell what is currently selected mailbox?
We need this for debugging purposes and optimization.
EDIT: Why? We believe that 3rd-party library we are using will sometime not send "SELECT" command to IMAP server. So we need a way to verify what IMAP server things it is selected mailbox.
There's no IMAP command to get this information.
The best I can come up with is having a message in each mailbox saying which mailbox it is in and then you could grab the content of the messages to verify which mailbox is currently selected.

GMail IMAP API limited to first 1000

I've bee experimenting with GMail IMAP API using the gmail ruby gem and was unable to pull search results for old emails. More specifically, if I would search for emails about a year ago they would not show up in the search result. This seems consistent with the Mail app on iPhone which also uses IMAP and seems likes its impossible to retrieve old emails.
It seems like this might be related to some limit that Gmail is putting on the IMAP interface which limits it only to the first 1000 emails.
Anybody else can confirm this?
Is there a way around this?
That's settable in gmail. I don't remember whether it's a per-account of per-mailbox setting.

Link to individual mails in gmail

I want to download all emails in a gmail account and also want to get the unique url which will open the exact mail in gmail, off course with authentication. I tried using javax.mail imap library but Imap probably doesn't supports anything like it.
I can use "https://mail.google.com/mail/feed/atom" gmail feeds. but won't give me entire email and it only gives unread email and I don't want to miss any email
You can do this if you are using Google Apps for Business/Education. If you are, you can access the Gmail inbox feed (Atom) by using OAuth. OAuth can also be used to access Gmail via IMAP - you can then have complete access to the IMAP server programmatically, see Gmail IMAP and SMTP using OAuth.
Google has extended IMAP to allow developers to provide a more Gmail-like experience via IMAP, see: (Gmail IMAP Extensions, X-GM-EXT-1).
The unique message (X-GM-MSGID) and unique thread (X-GM-THRID) ids can be used to produce links to Gmail messages directly - you just have to hex encode the id long (e.g. Long.toHexString(x_gm_msgId)). Your link will then need need to be in the form of:
http://mail.google.com/mail?account_id=ACCOUNT_ID_HERE&message_id=MESSAGE_ID_HERE&view=conv&extsrc=atom
supplying ACCOUNT_ID_HERE (something like user#someplace.com) and MESSAGE_ID_HERE as appropriate.
I have been working in this area and think you might find my project useful, see: java-gmail-imap.
[NB: URLs formatted as above do not work on Gmail's mobile site (at least on iPhone/Safari).]
https://mail.google.com/mail/#all/HexEncodeMessageID
replace the HexEncodeMessageID part with the ID. You get it, when you open the email in a new window (use the pop out icon in the upper right corner.
The id looks like this: search=inbox&th=1426b8f59e003aa0
I'm fairly confident this is not possible - that there is no reliable way to get the unique URL that'll lead to a single email in Gmail. I'd love to hear otherwise!
I do believe it is possible to get a URL that will lead to the Gmail thread containing the message - but you have no control over which message(s) are "expanded" in this threaded display.

Resources