Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send scheduled / time-controlled mail #1626

Closed
2 tasks done
Tracked by #5478 ...
ulph0 opened this issue Mar 22, 2019 · 35 comments · Fixed by #6215
Closed
2 tasks done
Tracked by #5478 ...

Send scheduled / time-controlled mail #1626

ulph0 opened this issue Mar 22, 2019 · 35 comments · Fixed by #6215

Comments

@ulph0
Copy link

ulph0 commented Mar 22, 2019

Feature Request: Scheduled Email

Hi, i (and most likely not only me) have sometimes the need for writing a mail which should be sent at a certain date/time in the future. There are several online portals offering such a service but of course that's not acceptable for friends of self-hosting like the nextcloud community. So it would be great if such a functionality would be included into nextcloud and the mail app would be the best place for someting like this.

Summary

Send an email at a certain date/time in the future.

Implementation

@emukungu
Copy link

emukungu commented Jun 4, 2019

Hi @ulph0, I would like to work on this.

@ulph0
Copy link
Author

ulph0 commented Jun 6, 2019 via email

@ulph0
Copy link
Author

ulph0 commented Feb 17, 2020

hi @emukungu - did you start with that?

@ulph0
Copy link
Author

ulph0 commented Feb 17, 2020

Of course it could make sense to think about what usecases there are for such a feature:

  • You could remind yourself to do things somewhen in the future. Since The Email Reminders in the Calendar are working, you could misuse that Reminders for this, but maybe that’s not what you want, because the mails are in a special nextcloud-format/design or maybe you don’t want to have a calendar entry for that. Also it could make more sense to connect such a service to tasks. There is a commercial service offering things like that: https://www.rememberthemilk.com/
  • You want to write things to people but you know they won’t pay attention (for example caused by eg loads of mail traffic) / see the mail if they receive it on a friday or by night.
  • you want to remind other people on something when they are in a special project
  • you want to send them future Birthday / Wedding wishes when you know that you are absent in that time.

@altustek
Copy link

I would also like to vote for this feature...

  • It should be designed better than the current implementation in google-mail,
    • in gmail, if you go to edit the scheduled message it cancels the existing schedule, which is very painful
    • it should be easily possible to change the scheduled time in bulk for multiple messages
  • This feature should also offer "delayed sending" very similar to what gmail offers, albeit the max "delayed sending" you can do in gmail is 30 seconds...
    • instead one should be able to schedule times in the day when the "collected" emails are queued for sending,
    • and/or the delayed send should be customizable to any time < 24 hrs.. not just 30 seconds.

The benefit of this feature is that it does not cause a domino of emails, where conversation which can be done on the phone/chat becomes a big thread of back-and-forth emails... plus it brings some order in the time of both the sender and receiver of the email.

@nimishavijay
Copy link
Member

nimishavijay commented Aug 12, 2021

This would be good feature. Almost all major email clients have it as a feature, either natively (Gmail, Outlook, Mailbird) or by the use of popular extensions (Thunderbird with an add on and Apple mail with Mailbutler).

Here's an example of how it's done on Gmail. The schedule send is near the send button when you're writing a message. On clicking that a modal opens up with some common times and a datetime picker.
image
image

Once you have scheduled a message, it shows up in the "Scheduled" folder. There you can check the message or cancel it, which removes it from the folder and into drafts, and also opens the composer where you can edit the message.
image

I agree with some of the comments, eg. instead of "cancel" we can have "edit" which allows you to edit the message or the scheduled time or cancel it altogether.

cc @jancborchardt who also did the gap analysis and @karlitschek

@karlitschek
Copy link
Member

very useful!!! 👍

@BELZI16

This comment has been minimized.

@glorenzutti

This comment has been minimized.

@ChristophWurst

This comment has been minimized.

@ChristophWurst ChristophWurst mentioned this issue Dec 20, 2021
12 tasks
@ChristophWurst ChristophWurst changed the title send scheduled / time-controlled mail Send scheduled / time-controlled mail Dec 20, 2021
@jospoortvliet
Copy link
Member

Just in case it helps - this is what the dialog looks like in KMail:
Screenshot_20220103_163245

@ChristophWurst
Copy link
Member

@nimishavijay @jancborchardt could you give us some more specifics for how this feature should look in our app? So far we only have reference implementations.

Bildschirmfoto von 2022-03-24 16-51-59

Is what we currently have. If I may brainstorm, then the send time could be set inside this action menu, similar to the share expiration date in the file sharing dialogue. Then the button text changes to Send at 20:00 or similar. Just an idea.

@nimishavijay
Copy link
Member

But instead of 4-th radio button we can use our DatetimePicker with label "Custom date and time".

That makes sense! If custom date and time is not set, we should use the label "Custom date and time". If it is set then it should show the date and time that is set.
Is it possible to have the DateTimePicker component inside a radio button component? So that it looks something like this?

image

@jancborchardt
Copy link
Member

Nice! Just 2 additions:

  • "Send later" could be moved 1 entry down in the menu so that the two checkboxes are below each other
  • Is it possible to put the date info e.g. "April 5, 9:00" as a subline in the checkbox entries? That would look cleaner, but not sure if there's a component for it yet. (Also ok if it stays like it is now for first version.)

@JuliaKirschenheuter
Copy link
Contributor

*"Send later" could be moved 1 entry down in the menu so that the two checkboxes are below each other

sure

  • Is it possible to put the date info e.g. "April 5, 9:00" as a subline in the checkbox entries? That would look cleaner, but not sure if there's a component for it yet. (Also ok if it stays like it is now for first version.)

i'm not sure i've understood you correct. Do you have a small example?

@nimishavijay
Copy link
Member

i'm not sure i've understood you correct. Do you have a small example?

I think Jan means something like this :)
image

@JuliaKirschenheuter
Copy link
Contributor

ok, i will check the implementation =)

@altustek
Copy link

altustek commented Apr 4, 2022

Hi All, 

I believe I was one of the folks looking forward to this enhancement. 

I was looking for something which you have discussed, which is already available in other clients as you have noted above, but I am also looking for another similar functionality, which is made in the "global settings" for "all the sent mail", which is to have "a default send delay", which can be configured to any number from 0 minutes to say 1-day, where the message goes to the outbox when the user hits send and stays there until its time to leave. This does not need any UI improvements, it will be just an additional setting in the global options for sending mail. 

(note that this is email and not instant messaging, so a feature like this should have existed from day ONE in my opinion) 
No one has this feature as far as I know... so this will be a first for next-cloud, and also helps in its marketing perhaps.
You can imagine a Jane/Joe Duhhh, who keeps mistyping emails and hitting send and have no way to change what was written... 

@nimishavijay
Copy link
Member

@altustek interesting! What you are suggesting sounds a bit like the undo sending feature which is tracked in #5438

This would make your messages stay in your outbox for a small amount of time during which you can cancel the sending, if you have clicked the send button accidentally :)

@JuliaKirschenheuter
Copy link
Contributor

@nimishavijay , @jancborchardt
i have implemented several radio buttons with predefined values as on your mock-ups.

But the problem is: if user choose one of this radio buttons, it will not be possible to "unchoose" them (because there are radio buttons) and sending will be set to scheduled.

How could we give to user a possibility to unchoose a scheduled sending?
Screenshot from 2022-04-07 18-57-36

image

@ChristophWurst
Copy link
Member

My suggestion: another radio option for Send now.

@JuliaKirschenheuter
Copy link
Contributor

My suggestion: another radio option for Send now.

I think it is not a best solution. "Send now" radio button will be always outdated (user opens a new sub menu, new Date will be set, and that means, that this date is already outdated).

@nimishavijay @jancborchardt please give yours suggestions.

My suggestion is: create a checkbox "Send later", and if it is checked -> choose a radio value. If it is checked and radio button is not set -> send it without schedule (immediately). And also if this checkbox is not set - send the mail immediately.

@skjnldsv
Copy link
Member

skjnldsv commented Apr 8, 2022

  • Is it possible to put the date info e.g. "April 5, 9:00" as a subline in the checkbox entries? That would look cleaner, but not sure if there's a component for it yet. (Also ok if it stays like it is now for first version.)

There is not and I think that requires a wider discussion.
As we do in other apps, let's use two lines for this:

  • ActionText
  • ActionInput

@ChristophWurst
Copy link
Member

I think it is not a best solution. "Send now" radio button will be always outdated (user opens a new sub menu, new Date will be set, and that means, that this date is already outdated).

We already use undefined for messages' sendAt if they should be sent immediately. Instead of setting sendAt to the "current" timestamp, unset it.

@JuliaKirschenheuter
Copy link
Contributor

We already use undefined for messages' sendAt if they should be sent immediately. Instead of setting sendAt to the "current" timestamp, unset it.

ok, then just label "Send now", without any time?

@ChristophWurst
Copy link
Member

Yes. Send now should create the same data as a message where the user never picked a send time.

@ChristophWurst
Copy link
Member

There is not and I think that requires a wider discussion. As we do in other apps, let's use two lines for this:

* ActionText
* ActionInput

ActionRadio+ActionText, right?

20220408_170151

Putting the ugly visuals aside it would mean only the first line is clickable, not the second.

As we do in other apps

Do you have anything in mind specifically? Which apps?

@miaulalala
Copy link
Contributor

As @nimishavijay and I have discussed, a design review will be put into it's own ticket.

For now, only one issue is left to do:

#6233

The undo sending and scheduled sending are crossing each other and breaking. @JuliaKirschenheuter is working on it.

@ulph0
Copy link
Author

ulph0 commented Apr 14, 2022

Hi! Many thanks to all of you! <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment