Mock SMTP server that logs incoming messages to stdout as JSON for easy parsing and testing by the hitch framework.
Mock SMTP server that logs all incoming messages to stdout as JSON for easy parsing by HitchServe.
HitchSMTP contains a service definition for use with Hitch, but can also be used alone.
Use with Hitch
Install like so:
$ hitch install hitchsmtp
# Service definition in your test execution engine's setUp self.services['HitchSMTP'] = hitchsmtp.HitchSMTPService( port=10025 # Optional (default: 10025) ) # Wait for email during test... containing = "Registration email" email = self.services['HitchSMTP'].logs.out.tail.until_json( lambda email: containing in email['payload'] or containing in email['Subject'], timeout=5, lines_back=1, )
See this service in action at the DjangoRemindMe project.
Bad SMTP Server
You can send to specific email addresses to mock most SMTP errors.
E.g. Sending an email to firstname.lastname@example.org will cause the “451 Please try again later” SMTP error.
For a full list of these errors and the email address @ smtperrors.com that will trigger them, see:
- Logs all details about emails received by the SMTP server as easily parsed JSON.
- Parses links in your emails automatically so that you can check just for links in emails and ‘click’ on them.
- Can also mock SMTP errors.