temporarily discarding of messages
Reported by Thibaud | January 23rd, 2014 @ 12:47 PM
Here another feature proposal: following the schema where it is possible to delay the sending of an e-mail that is stored in the Drafts folder before being sent when specified, would it be possible to discard an e-mail (and storing it in another IMAP folder ("Pending" for instance)) for a specified amount of time before making it reappear in the Inbox? It would be accessible by a right-click on the message and some default propositions (useful and generic enough granularity could be hard to find):
Discard for:
- 1 day - 3 days - 1 week - 2 weeks - 1 month
It would be useful to manage emails like tasks, when we want to have another look on an e-mail only in a few days.
It would also be possible, when waiting for an answer from someone else, because the message would still be accessible by going in the Pending folder. If there is no answer at the specified time, the message would come back into the Inbox, meaning it's time to contact again the person from who an answer is expected (the specified date would be a dead-line in this use case).
Comments and changes to this ticket
-
benny January 23rd, 2014 @ 01:34 PM
- State changed from new to accepted
This is one of those features where naming it can be a challenge itself. I don't like “discard” since it's not really discarded. In some cases “postponed” would be correct. In others “remind” would be better. Depending on the purpose. I've also seen the word “tickle” used with a feature like this, but since English is not my native language I'm unsure what the reasoning for this is.
Implementation-wise: The challenge here is how to synchronize postponed messages via IMAP. I cannot use tags since each message could require a unique tag. I cannot add a header to the message since this is always bad (for many reasons). Adding a virtual header does not work since these are not synchronized via IMAP. The same problem exists for “Send Later” for which I have not solved it, but it also seems to be more important for this feature.
Here's an idea: A separate mailbox, e.g., named “Postponed” could be used to store these messages. When a message is postponed, a submailbox is created named with the date of when the message should return to the Inbox. For example:
Postponed (or Pending) 2014-01-30 Email 1 2014-02-07 Email 2
Every day at some fixed time of day MailMate could then check if it's time to move messages back to the Inbox. Of course, it wouldn't be long before someone wanted to postpone messages for hours or minutes, but I guess that could be handled with the same system.
(Caveat: If multiple instances of MailMate are watching these folders then a message might be moved back to the Inbox more than once. It requires some thought to work around this issue.)
All of the above is also relevant for the “Send Later” feature.
Just thinking out loud. This feature is currently very close to the “bluesky” state.
-
Thibaud January 23rd, 2014 @ 02:02 PM
This is exactly what I would have dreamt of :)
To avoid concurrent actions on messages by multiple instances of MailMate, maybe it would be possible to change the name of the folder just before the messages in it being processed? (A kind of lock)
If the folder has just been renamed by another instance of MM (say MM2) when MM1 want to proceed, the server should answer to MM1 that the requested folder does not exist, and MM1 would the process.
-
benny January 23rd, 2014 @ 03:54 PM
Renaming folders is not a cheap IMAP action and it gets complicated if you take into consideration that MailMate (or the machine) could crash at any time during this process. It must be able to handle that as well.
But it might be fine to just let both email clients try to move the same message. If the server is not buggy then one of them is not going to be able to find the message when trying to move it. Then I just have to make sure that MailMate doesn't upload it to its destination mailbox instead.
-
Thibaud January 23rd, 2014 @ 04:06 PM
It would be a very privacy-friendly implementation of the same feature as the one in yellow developed in Mailbox (in a very privacy-invasive way (by the way)) :)
-
Adrian Bettridge-Wiese January 24th, 2014 @ 02:59 PM
This is a feature I've been wanting in a mail app forever. Personally, I'd call it "snoozing" a message, like one snoozes an alarm.
-
Jonas January 30th, 2014 @ 11:17 AM
No new info here. Just wanted to state that I, too, would love a snooze-feature. :)
-
J Clark January 30th, 2014 @ 11:48 AM
I would love to be able to "snooze" too -- and likewise I think this is more natural terminology than "discarding" which doesn't sound like something you can do temporarily.
The Mailbox iPhone app has an excellent implementation of this idea, which it also calls "snooze", where a quick swipe hides the message from the inbox for the following time intervals:
- Later Today (with a setting that defaults to +3 hours)
- This Evening (with a setting for end of your workday)
- Tomorrow (with a setting for time you start your day)
- This Weekend (with a setting for when the weekend 'starts')
- Next Week (with a setting for which day the week starts on)
- In a Month
- Someday (with a setting that defaults to +3 months)
- Pick a date
I think this shows some excellent design thinking; just a swipe and a tap is all that's needed in the vast majority of cases. I think having to pick a date and/or time for every snooze would have much more friction, and would stop me using it as often.
-
Thibaud January 30th, 2014 @ 11:50 AM
Indeed, what is implemented in Mailbow is really close to what I had in mind :)
Maybe it would be better to rename the title of this topic with snoozing instead of discarding? (I don't have the rights …) -
benny January 30th, 2014 @ 08:51 PM
- Title changed from temporarily discarding of messages to Snoozing
-
Thibaud January 30th, 2014 @ 10:05 PM
I add that the Mailbox implementation is excellent in terms of usability and experience. However, it seems to be very poor in privacy preservation since I guess it requires to give Mailbox an access to the mailbox.
On the other hand, an implementation in a client such as Mailmate could deliver a far more privacy-friendly solution :)
-
Max Andersen December 6th, 2014 @ 12:00 AM
- Tag changed from discard, later, pending to discard later pending
Mail pilot uses folders like you describe here to store postponed messages. Might mirror the same so you would be "compatible" with the iOS app way ?
One issue I got with the above is that I prefilter my mails into folders so it would t be enough it would bring my mail back to the inbox.
-
benny December 6th, 2014 @ 09:17 AM
@Max: The Mail Pilot iOS app? That would perhaps be a relatively small market share to be compatible with, but if their solution is as good as it gets then it won't hurt to be compatible.
You would need your emails to go back to the folder that they were previously located in? (This is actually possible in MailMate, locally, but it's not available as a GUI feature for the “Move to Mailbox” rule action).
-
Fabian Morón Zirfas January 13th, 2017 @ 07:34 AM
I'm totally +1 on this feature. Snoozing a message would be great. You might take a look on how https://www.sanebox.com/ does this as well.
-
Padraic Renaghan August 8th, 2018 @ 09:29 PM
I built a snooze bundle that might be helpful as a starting point for this
-
mom October 1st, 2020 @ 09:08 PM
I would like easy snooze, too. New to MailMate. Here because MailButler started charging for snooze and sendLater features, beginning right now. I'd rather pay for a program like MailMate than twice that EVERY year for an apple mail add-in. MailButler's implementation was very user friendly. Not sure about the security of it's implementation. Haven't used python before. Would want to research it before implementing bundle above. How security friendly is python? How much of a load does it add to the OS?
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.