daviddel/mailcatcher

访问MailCatcher的库

v0.2.0 2013-10-08 13:24 UTC

This package is not auto-updated.

Last update: 2024-09-18 10:33:52 UTC


README

Build status

仍在开发中

MailCatcher集成到您的PHP应用程序中。MailCatcher是一个简单的SMTP服务器,具有HTTP API,这个库旨在将其集成到PHP中以便于使用。

Behat扩展

此库提供了一个Behat扩展,帮助您测试应用程序中的邮件。

要使用它,首先确保MailCatcher已正确安装并运行。

首先,在您的behat.yml中进行配置

default:
    extensions:
        Alex\MailCatcher\Behat\MailCatcherExtension\Extension:
            url: https://:1080
            purge_before_scenario: true

可用步骤

此扩展在测试中为您提供邮件上下文。要使用断言,您必须首先使用标准打开一封邮件。

一旦打开,您就可以对它进行断言并点击它。

服务器操作

删除服务器上的所有消息

当我清除邮件时

打开邮件

当我打开来自"foo@example.org"的邮件时

当我打开包含"a message"的邮件时

当我打开发给"me@example.org"的邮件时

当我打开主题为"Welcome, mister Bond!"的邮件时

断言

验证发送到服务器的邮件数量

然后应该发送1封邮件

然后应该发送13封邮件

验证文本存在于消息中

然后我应该看到邮件中的"something"

然后我应该看到邮件中的"something else"

客户端API

使用集成的SDK轻松浏览API

$client = new Alex\MailCatcher\Client('https://: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'));

消息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();

附件API

// Attachment API
$attachment->getFilename();
$attachment->getSize();
$attachment->getType();
$attachment->getContent();