Here are a list of useful modules for testing and sending mail.
Reroute Email
This allows you to reroute all emails to a specified email address. I use this for all dev sites so that we don’t accidentally email live users.
https://www.drupal.org/project/reroute_email
Mail System
This allows you to configure mail sending and formatting methods. Required module for several other modules
https://www.drupal.org/project/mailsystem
MIME Mail
Allows HTML formatted email as well as file Attachments.
https://www.drupal.org/project/mimemail
Mail Queue
Allows you to queue email to send out on cron instead of immediately. You can even specify wildcard or specific mail keys.
https://www.drupal.org/project/queue_mail
Queue UI
This is not mail related but a good way of seeing which tasks are currently queued for cron. You can even inspect the tasks to see the mail details and even delete individual email tasks.
https://www.drupal.org/project/queue_ui
SMTP
For setting up Drupal to use SMTP for emails.
https://www.drupal.org/project/smtp
Sendgrid Integration
We started out using the SMTP module for connecting to Sendgrid but there are limitations going with this route. Connecting directly to the SendGrid API has less send limits. Make sure to use the dev release which includes a patch fix for the API. This module requires either the Composer Manager or X Autoload module for library installation.https://www.drupal.org/project/sendgrid_integration
Mailgun
This is our preferred mail service over Sendgrid. More generous mail usage
https://www.drupal.org/project/mailgun
Elysia Cron
Not directly related to mail but useful for configuring specific cron tasks. You can set specific module cron to run at different intervals from everything else. You can also manually trigger specific cron and queue tasks.
https://www.drupal.org/project/elysia_cron
Ultimate Cron
Alternative to Elysia Cron. Haven’t used it yet but it looks to be widely used. I might try this on the next project.