daviddel / mailcatcher
A library to access MailCatcher
Requires
- php: >=5.3.3
Requires (Dev)
- behat/behat: ~2.4
- swiftmailer/swiftmailer: ~5.0
This package is not auto-updated.
Last update: 2025-01-08 11:49:45 UTC
README
STILL IN DEVELOPMENT
Integrates MailCatcher in your PHP application. MailCatcher is a simple SMTP server with an HTTP API, and this library aims to integrate it to make it easy to use it with PHP.
Behat extension
This library provides a Behat extension to help you test mails in your application.
To use it, you first need to be sure MailCatcher is properly installed and running.
First, configure in your behat.yml
:
default: extensions: Alex\MailCatcher\Behat\MailCatcherExtension\Extension: url: http://localhost:1080 purge_before_scenario: true
Available steps
This extension provides you mail context in your tests. To use assertions, you must first open a mail using criterias.
Once it's opened, you can make assertions on it and click in it.
Server manipulation
Deletes all messages on the server
When I purge mails
Mail opening
When I open mail from "foo@example.org"
When I open mail containing "a message"
When I open mail to "me@example.org"
When I open mail with subject "Welcome, mister Bond!"
Assertion
Verify nomber of messages sent to the server:
Then 1 mail should be sent
Then 13 mails should be sent
Verify text presence in message:
Then I should see "something" in mail
Then I should see "something else" in mail
Client API
Browse easily your API with the integrated SDK:
$client = new Alex\MailCatcher\Client('http://localhost:1080'); // Returns all messages $messages = $client->search(); // Count messages $client->getMessageCount(); // Filter messages $messages = $client->search(array( 'from' => 'bob@example.org', 'to' => 'alice@example.org', 'subject' => 'Bla', 'contains' => 'Hello', 'attachments' => true, 'format' => 'html', ), $limit = 3); // Search one message $message = $client->searchOne(array('subject' => 'Welcome'));
Message API
// Message API, get the content of a message $subject = $message->getSubject(); $plainTextBody = $message->getPart('text/plain')->getContent(); $htmlBody = $message->getPart('text/html')->getContent(); // Message API, return a Person object or an array of Person object $person = $message->getFrom(); $persons = $message->getRecipients(); // Person API $person = $message->getFrom(); $name = $person->getName(); // null means not provided $mail = $person->getMail(); // Attachments $message->hasAttachments(); $message->getAttachments();
Attachment API
// Attachment API $attachment->getFilename(); $attachment->getSize(); $attachment->getType(); $attachment->getContent();