Table of Contents
Testing email interactions in a development environment
Evergreen sends emails as part of several of its processes. If you are working with one of these processes, and want to validate your changes locally, you have several options.
The easiest option: using a localhost email address and mutt
- As the root user (or with sudo): install mutt (apt-get install mutt)
- As opensrf, run the `mutt` command, and make sure you get an inbox without a warning. If mutt gives you an error "No such file or directory", you can fix it with `touch $MAIL`.
- As root, make sure that sendmail is running (`service sendmail start` and `service sendmail status`)
- Set the recipient email address to opensrf@localhost (for example, if you are testing a message sent to patrons, set your test patron's email address to opensrf@localhost)
- Run the process that you'd like to check the email output of.
- As the opensrf user, run `mutt`.
- Use the mutt inbox to check if your email came through, and if it looks as expected. Mutt displays the commands to interact with your inbox at the top of the screen.
Option 2: exim
Exim has an easy setup in debian, with the exim configure script. For testing purposes, set the email address to be your own.
For testing with live data, exim makes it easy to rewrite recipients, so you can prevent test emails from being sent to real email addresses.
Look for the "REWRITE CONFIGURATION" section in /etc/exim4/exim4.conf.template
Something like this sends all mail to a local address.
##Send all messages to root@localhost *@* root@localhost Tbct
Option 3: postfix
If you have access to your postfix production configuration, you can tweak it for your development environment.
For those running a test server with live data that want to test email without worrying about accidentally emailing real people, one method is to force all email delivery to one local account. A guide to do this in postfix is at https://www.euperia.com/wrote/how-to-configure-postfix-to-deliver-all-mail-to-one-mailbox