Receive emails from Email Alert API in integration and staging
staging Email Alert API defaults to sending emails
to a single test address:
firstname.lastname@example.org. This is used to
simulate a successful email sending.
However, you can override this for specific email addresses for testing purposes. To do this, you will need to be added as a team member to the GOV.UK Email Integration or Staging service in Notify and make changes to govuk-puppet.
- Log in using the 2nd-line-support account which is stored in
govuk-notify/2nd-line-support. You should then receive an email via 2nd Line Support containing a link to sign in to Notify.
- Choose the service (GOV.UK Email) in the appropriate environment
and navigate to “Team members”. The members with the permission
Manage settings, team and usagewill be able to add you to this team.
- Add your email address to the common.yml for hieradata and hieradata_aws (these lists need to be kept in sync with the team members list in Notify)
- Add your email address to the override whitelist in the YAML file for the environment you’re testing on. This is set as an
environment variable via hieradata under the key of
govuk::apps::email_alert_api::email_address_override_whitelist. It should look something like this:
govuk::apps::email_alert_api::email_address_override_whitelist: - email@example.com
- Create a branch with these changes and push them to GitHub. Deploy these changes by running integration-puppet-deploy, providing your branch name instead of a release tag.
Once these changes have been deployed and the environment variable
EMAIL_ADDRESS_OVERRIDE_WHITELIST is populated with your address you can test
that you can receive emails by running the deliver:to_test_email[firstname.lastname@example.org] rake task.
Testing digest emails
It is possible to re-send an entire digest run (e.g. to test changes that have been made to the email template) in integration. You will need to have added yourself to the whitelist and have a digest subscription (daily or weekly) to something that had a significant update during the time period the digest covers (e.g. daily would be 07:00 the previous day to 07:00 today).
Using a Rails console for email-alert-api, retrieve the digest run that you wish to resend, then delete it, e.g.
digest = DigestRun.where(range: 'daily').last DigestRun.delete(digest)
Then rerun the relevant digest initiator worker (either daily or weekly):