Email Sending SilverStripe's test system has built-in support for testing emails sent using the Email class. How it works For this to work, you need to send emails using the Email class, which is generally the way that we recommend you send emails in your SilverStripe application. Here is a simple example of how you might do this: Normally, the send() method would send an email using PHP's mail() function. However, if you are running a SapphireTest test, then it holds off actually sending the email, and instead lets you assert that an email was sent using this method. $this-&gt;assertEmailSent("someone@examp\\... null, "/th.*e$/"); The arguments are $to , $from , $subject , $body , and can be take one of the following three forms: What isn't tested It's important to realise that this email testing doesn't actually test everything that there is to do with email. The focus of this email testing system is testing that your application is triggering emails correctly. It doesn't test your email infrastructure outside of the webserver. For example: It won't test that email is correctly configured on your webserver It won't test whether your emails are going to be lost in someone's spam filter It won't test bounce-handling or any other auxiliary services of email How it's built For those of you who want to dig a little deeper, here's a quick run-through of how the system has been built. As well as explaining how we built the email test, this is a good design