[Productivity] Email client

Skill name: skill-email-client

User story:

As a user I want this Skill to have complete email functionality on Mycroft so I can listen, search, compose, answer, classify and delete emails
Besides that, I will be able to set IMAP flags and following marks

What third party services, data sets or platforms will the Skill interact with?
Any IMAP-enabled server

Are there similar Mycroft Skills already?

What will the user Speak to trigger the Skill?
A complete email assistant can be as complete as desired, here there are some examples:

  1. “Do i have any new email [from my contacts]?” (specifying “from my contacts” will exclude mailing lists and so)
  2. “Please, notify me when [a|next] mail from {{email_contact}} arrives”
  3. “What emails do I have [from my contacts]?”
  4. “List my emails”
  5. “Compose an email for [{{email_address}}|{{email_contact}}] with subject {{email_subject}}”
  6. “{{email_action}} all emails from {{email_contact}}” (where email action can be move, delete, flag, tag…
  7. “Read [latest|next] unreaded email”

Once “inside” the email (the one Mycroft just readed), the user can say the following:

  1. “Answer this email [to everybody]”
  2. “Delete this email”
  3. “Move this email to folder {{IMAP_folder}}”
  4. “Flag this email as [important|following|todo|etc]”
  5. “Mark this sender as spammer”
  6. “Unsubscribe me for this mailing list”
  7. “Create a new rule {{rule_name}} on new incoming emails where {{rule_condition}}, do {{rule_action}}”

What phrases will Mycroft Speak?

  1. “You have [no|X] new emails”
  2. “Hey, Angel, a new email from John Doe has arrived, should I continue notifying new emails from him?” (Here user should answer yes or no to continue or cancel monitoring)
  3. “You have X emails from {{email_contact}}”
  4. “Mail from {{email_sender}} with subject {{email_subject}} received at {{email_time}} starts with {{email_summary}}” (email summary can be the first 50 characters) Mycroft then will read the next email, unless user says it will want to know the full content of the email or if the sender is flagged as favourite or conversation is flagged as important, so Mycroft will read the complete email by default.
  5. “Say the content of the email, when done, say stop dictation”

    What Skill Settings will this Skill need to store?
  • Document directory path
  • Custom dictation start and stop phrases

Other comments?

I know this is a very complex skill. Doing it well could show the power of the AI behind Mycroft by converting it into an assistant for the most basic everyday use: checking the email.
It should know what the user wants in every situation, doing it fluent and saving time to the user, reminds me to SARAH (from Eureka): an AI coming from the future.

@malevolent Just to let you know that I recently published an imap email skill. Right now it can only list the sender and the subject but I can totally see the skill being expanded to these specifications.


Glad to see that! :smiley:

I will try it as soon as I can!


Just tried the skill. Mycroft complains about the credentials. :sweat_smile:
I’m going to open an issue on github!

EDITED: I tried several ports… at last, it worked with the first I tried and complained…
So far so good! It need to be polished, but for the moment is a very good starting point! :metal: