JEMH Cloud - Enterprise Mail Handler for Jira Cloud

This Confluence space is for the cloud-based app. There is separate documentation for JEMH on self-hosted Jira instances.

What is JEMH Cloud?

Enterprise Mail Handler for Jira Cloud (abbreviated to JEMH Cloud) is an application that provides powerful and comprehensive email integration with the Atlassian Jira cloud platform. It's based on the established Enterprise Mail Handler for Jira Server. Like it’s self-hosted counterpart, its main purpose is:

  1. Integration of external users without accounts and external systems

  2. Automation of the routing of messages to Jira projects

  3. Enabling remote creation and manipulation of issues through email

  4. Allowing complete control of outbound notifications (via email or other channels)

Data residency and data privacy

JEMHC runs and stores data in USA (Virginia to be specific). All data is encrypted at rest and we have some low level encryption added pre store to database for sensitive info like mailbox passwords.

We do not yet have multi-region deployment of JEMHC, it is on our list for later in 2023 where we expect to build an EU specific Frankfurt instance in addition to the USA based one. The following should provide answers to questions on data residency and data processing, for any specific query/concern, please log a Support Ticket.

  1. The https://thepluginpeople.atlassian.net/wiki/spaces/JEMHC/pages/3513122870 that you agree to through the App EULA https://thepluginpeople.atlassian.net/wiki/spaces/JEMHC/pages/163164185 that is based on https://thepluginpeople.atlassian.net/wiki/spaces/PP/pages/874053717, this avoids the need for per-customer signing of DPA.

  2. Consult to find out what we do with your data and why (our checklist for the processing of your data)

  3. Technical details on

Email user support

Map remote users (by sender address) to specific Jira projects/assignees automatically.

System integrations

JEMH Cloud can be used to route remote server application exceptions to Jira projects without point-point firewall connectivity.

Prerequisites

  • An active Atlassian Jira Cloud site. To use the app with self-hosted Jira installations, try JEMH for Jira Server/Data Center.

  • An external mailbox to retrieve mail from and send mail through. The mailbox that comes built-in with Atlassian Jira Cloud cannot be used by the app. Atlassian (and ourselves) don't support 3rd party apps using this mailbox, as the password is periodically changed by Atlassian. This would break connections to JEMHC. Please use an external email service such as Gmail, Office365 (or your own, so long as standard outbound SMTP and inbound POP/IMAP protocols are supported).

Pricing

More information on JEMH Cloud pricing can be found on the Licensing page.

Privacy

For Google OAuth app validation, we are required to statically host copies of our Privacy Policy and EULA under a top level domain. This can be found at http://thepluginpeople.com. Our Confluence wiki also contains the Privacy Policy and Cloud Software Product EULA.

JEMHC integrates with Atlassian to support right-to-be forgotten. Additionally, many notifications have additional unsubscribe features.

Security

See Technical Details related to data usage where a breakdown of the kinds of data that is stored in JEMH(Server) and JEMHC(Cloud) is given.

Message retention

JEMH Cloud stores every incoming message, in encrypted form in the database.  At most 100 messages are retained, old ones are removed as new ones are added.

Users wanting a 'mail archive' should consider using their mail server for this purpose, by auto-forwarding copies to an archive mailbox.

Credential storage

JEMH encrypts all user credentials in the database.

Differences between server and cloud

Please note the following difference between JEMH for Cloud and JEMH for Server/DC of configuration for Inbound Mailbox

JEMH for Jira Server requires configuration of the Incoming mail connection via Jira > System > Incoming mail as Jira communicates with mail servers on behalf of the app.

JEMH Cloud doesn’t use Jira’s incoming mail configuration as the app handles mail server communication itself. All JEMH Cloud mail server configuration is done via JEMHC > Messaging.

JEMH Server wrapped up all configuration into a Profile. The addition of per-project Mappings and related Rules to drive selection of that project for issue creation were limited in the ‘fields' that could be set. This results in scenarios where multiple profiles are necessary.  In JEMH Cloud, the Profile doesn’t contain email processing configuration and all configuration is available through Project Mappings.

Terminology

Message Sources

Defines the connectivity details for message sources:

  • remote mail servers via POP/IMAP

  • FTP servers

Message Handlers

Association between a Message Source and a Profile (this is the same concept as Mail Handlers in Jira Server)

Message Outbound

Defines the connectivity details for a mail-host responsible fro outbound message notification.

Profiles

A Profile contains at least a Default Project Mapping and optionally many additional Project Mappings. The Project Mappings describe how emails should be manipulated and interpreted to create issues.

Project Mappings

Project Mappings allow processing configuration to be specified on a per-project basis. In order for a project mapping to be selected during email processing, it must have a valid Mapping Rule attached to it. A rule defines a condition that an email (or data derived from it) must pass, and is considered valid if its conditions are passed. A Default Project Mapping is always present, has no rules, and will be used if no other mappings apply.

Project Mapping Rules

Mapping rules allow specific criteria to be defined that an incoming email must meet to be considered a match for a Project Mapping. They can only be added to non-default Project Mappings, as the default mapping applies when no rule matches. Configuration is inherited from the parent Project Mapping, but optionally overwritten at the Rule level.

Directives

Directives are user supplied values found in an email with a particular format. They can be interpreted and used to affect how issues are created or modified, for example, changing priority or summary.

Email Custom Field

JEMH Cloud Profiles define the custom field that will be used to store remote users email addresses. This custom field is a TEXT (multiline) custom field that is valid for the given issue. It has a simple comma separated format of user@place.com,user2@place.com,user3@place.com, no 'personal' parts are supported. When a Jira user makes changes or adds a comment to an issue, JEMH Cloud gets notified through webhooks:

Webhooks

Webhooks are the events that Jira generates in response to user activities on an issue. These changes drive JEMH Cloud notifications, but can also be stored as Preview Contexts. Unlike Jira Server, the webhooks have a much reduced event model (Created, Updated, Deleted).

Preview Context

Webhook data for a given issue can be saved, allowing Notification Templates to be previewed with real-world data.

Notification Template

Notification Templates contain the Velocity markup that drives notifications, they can be TEXT or include HTML markup. Velocity Macros (Velocimacros) are also supported with a system macros and user definable macros.

Velocimacros

A set of JEMH Cloud system velocimacros provide a way to simplify markup, enabling users to customise the presentation of specific fields and sections by overriding them.

Themes

Themes allow complete control over the styling that is applied to notification content. JEMH Cloud comes with built-in themes but users are free to create their own.

Images

Specific to HTML emails, images can be uploaded into JEMH Cloud, stored in the cloud, and referred by 'alias' within Notification Templates using a custom velocimacro. When HTML email content is rendered, URL's to those images are injected, resolving to The Plugin People's Content Delivery Network (CDN)

Test Cases

Test Cases are emails in their raw format. They are ideal for validation of Profile configuration. Received emails can be converted to a Test Case, or created from scratch, and are 'run' against a given profile.

Creation v.s. Comment

Emails with no issue key in the subject are treated as candidates for new issue creation.  Emails with a valid issue key in the subject are candidates for commenting.  JEMH Project Mappings apply during Creation of Issues only.

Data categories

JEMH Cloud tracks resource usage through Message Count and Data metrics. The JEMHC licensing screen allows administrators to monitor their usage. Messages are split into 4 categories:

  • Traffic In: Inbound messages that are processed successfully

    • Issue Created: An inbound inbound email creates an issue

    • Issue Commented: An inbound email generates a comment in an issue

  • Traffic Out: Outbound notifications JEMH Cloud creates in the 'normal' traffic flow

    • Notification Sent: The Email sent after receiving a webhook Event from Jira (e.g a user or JEMH Cloud created/commented an issue)

  • Maintenance In: Inbound messages that encounter problems during processing

    • Message Blacklisted: An processed inbound email has been blacklisted

    • Message Processing Error: An processed inbound email couldn't be processed due to an error

    • Limit Exceeded: An email can’t be processed as a limit has been reached (like Issue Comment Limit or Issue Comment Max Size)

    • Message Not Catch: An email cannot be processed as it didn't match any of the profile's catch email addresses

  • Maintenance Out: Outbound messages JEMH Cloud creates for maintenance reasons

    • Ping Sent: JEMH Cloud sends an email as result of the user testing Message Outbound configuration

    • Message Forwarded: JEMH Cloud forwards an email that can’t be processed (due to error, blacklisting, etc.)

Recent space activity

Space contributors