Change the From: Address in Notifications
Introduction
You wish to set a custom From email address for your issue notifications.
In order for JEMH to successfully use a custom From address, the outgoing mail server being used must have the necessary configuration and/or permissions to send emails using that email address.
Example configuration
SMTP Server (in/out) | |
---|---|
Jira user address (initiator) | |
Non-Jira user address (initiator) |
Here, the Jira outbound mail server is showing the default from: address as ppl.1.email@gmail.com. It is this address that we will override.
Custom From address for Notifications for each Project Mapping/Project Mapping Rule (Event Listener driven notifications)
Possible with JEMH 1.7.x+
This method uses custom fields and the event listener to enable issue notifications to have a different From address depending on what project mapping or project mapping rule was used. This allows a fine grained approach to configuring event notifications. See How Do I Use Project Mappings for more information on how project mappings can be used.
Custom Field setup
If not already set up, create a Single Line Text Field type custom field. This will be the custom field that holds our custom email address:
Ensure that your custom field is:
in the scope of the projects and issue types used
enabled in the field configuration associated with issues from your project
You can check this by using the "Where is my field?" functionality on an existing issue in your project. This is found under the "Admin" controls found next to the issue workflow actions. Note that the field doesn't have to be visible in order to be used.
Profile setup
Next, we will configure our JEMH profile. We are going to add a project mapping to the profile, then add a rule to the mapping.
Go to JEMH > Profiles and configure your chosen profile
Go to the Project Mappings section and click New Project Mapping
Select the Project that you want in Mapped Project field and Save it.
Go to Custom Field Defaults and click New Custom Field Defaults then edit it.
We are now going to set a value for our custom address, so that when this project mapping is used the custom field will be given this value:
Static Value
Dynamic Value
Its possible to extract the ‘mailbox’ address that the mail was sent to (referred to as the Catchemail address), to do this, a Dynamic velocity script needs to be used:
Click Submit to save the changes, then choose any of mapping rules from the MAPPING RULES section and click New Domain Mapping, New Group Mapping or New Keyword Mapping.
In this example, we will create a simple domain mapping rule that maps issues to our project when they are from a particular address:
Click Save to save the changes
Event Listener/Notifications setup
We will now set up our project's Event Listener mapping in order for it to use the custom field. We will be setting up the custom From address for the non-Jira user notifications. The same steps can also be applied for Jira user notifications.
Go to JEMH > Notification (Event Listener in the old JEMH versions)
Click Edit on your project event listener mapping
You will see a From: and Reply To: section. We are focusing on the From address, however both can be set up in the same way by following this guide
For the setting Custom From: Custom Field, select the custom field that we gave a value in the profile project mapping
The Personal (name) used by the outgoing mail can also be set with either a custom field or a static text entry
Here is what our set up looks like:
Click Submit to save all changes
Result
For issue creation and other subsequent events, the custom email address is used for notifications.
Test case
The following test case is from: the non-Jira user, to the inbox address.
Created issue
Expected result of both the Jira and non-Jira user test cases:
The issue created with the Jira user has the reporter ‘jemh’ (a Jira account) and the issue created by the non-Jira user was created by the Default User 'admin':
Determining the From address
Personal
If a configuration could be located and a custom Name is defined, use it, i.e. Custom Name in this example
Failing this, the 'name' of the remoteUser making the change would be used
Failing that, the 'name' taken from the senders email address would be used
Address
If a Configuration could be located and a custom Email address is defined, use it, i.e. ppl.test.address@gmail.com in this example
If not found, the project email address is used
If not found, the server default address is used.
At this point, the sender will be "Custom Name" <ppl.test.address@gmail.com>
Examining the received emails
Non-Jira User
The Non-Jira notification shows the updated sender personal and address components, as defined within the Profile.
JIRA User
The Jira notification is the same.