Skip to content

mtymek/MtMail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

96db958 · Nov 15, 2017
May 28, 2017
Mar 16, 2017
May 28, 2017
May 28, 2017
May 28, 2017
Mar 21, 2017
Mar 13, 2017
Nov 15, 2017
Nov 15, 2017
May 15, 2017
May 28, 2017
May 28, 2017
May 28, 2017
May 28, 2017
Mar 6, 2016
Mar 6, 2016

Repository files navigation

E-mail module for Zend Framework

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads

Introduction

MtMail handles common activities surrounding sending e-mail from applications, mainly creating messages from templates, and sending them through transport adapters.

Features:

  • factory for creating e-mail messages
  • factory for e-mail transport adapters, service for one-line dispatch
  • rendering templates from phtml files, using Zend\View and PhpRenderer
  • rendering templates with layouts
  • plugins for various common tasks: from setting default headers to generating plaintext version of HTML message
  • plugin support via dedicated plugin managers

Installation

Installation is supported via Composer:

$ composer require mtymek/mt-mail

Creating e-mails

Configuration

By default MtMail doesn't require any extra configuration. It will use Zend\View to render templates accessible by your application.

Usage

Creating message from controller:

$mailService = $this->getServiceLocator()->get(\MtMail\Service\Mail::class);

$headers = [
    'to' => 'johndoe@domain.com',
    'from' => 'contact@mywebsite.com',
];
$variables = [
    'userName' => 'John Doe',
];
$message = $mailService->compose($headers, 'application/mail/welcome.phtml', $variables);

This snippet will create a message, compose it with $headers and HTML body rendered from welcome.phtml template (injected with $variables array).

Layouts

In order to give your e-mails common layout, you have to enable "Layout" plugin and tell it where to look for layout template:

return [
    'mt_mail' => [
        'composer_plugins' => [
            'Layout',
        ],
        'layout' => 'application/mail/layout.phtml',
    ],
];

For more info about composing e-mail messages, check [the documentation](doc/Composing messages.md). You can also check [documentation for plugins](doc/Composer Plugins.md).

Sending e-mails

Configuration

Update your application config:

return [
    'mt_mail' => [
        'transport' => \Zend\Mail\Transport\Smtp::class,
        'transport_options' => [
            'host' => 'some-host.com',
            'connection_class' => 'login',
            'connection_config' => [
                'username' => 'user',
                'password' => 'pass',
                'ssl' => 'tls',
            ],
        ],
    ],
];

Usage


Add following code to your controller:

// create and configure message
$message = new Message();
$message->addTo('johndoe@domain.com');
// ...

// send!
$mailService = $this->getServiceLocator()->get(\MtMail\Service\Mail::class);
$mailService->send($message);

For more info on sending e-mails, check [the documentation](doc/Sending messages.md).

About

Module for composing e-mails from templates and sending them

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages