janmalte / jm-mail-service
ZF2 mail service module to ease the use of ZendMail
Requires
- php: >=5.3.3
- zendframework/zendframework: 2.2.*
This package is not auto-updated.
Last update: 2020-10-16 19:34:46 UTC
README
Created by Malte Gerth
Introduction
Mail service to ease the use of the ZF2 mail component. It supports adding attachments and sending HTML messages. The Zend Mail coponents can be used to modify the message before sending.
Requirements
- Zend Framework 2 (2.2.*)
Features
- Use Zend View Scripts with view helpers as message template
- Use Zend Mail components without modifications
- Ease the handling of sending multipart messages
- Add attachments easily by calling one single method
- Use of native Zend Mail Transport classes
Installation
-
Add this project and JmMailService in your composer.json:
"require": { "janmalte/jm-mail-service": "dev-master" }
-
Now tell composer to download JmMailService by running the command:
$ php composer.phar update
-
Enable the module in your
application.config.php
file.<?php return array( 'modules' => array( // ... 'JanMalte\JmMailService', ), // ... );
Options
The JmMailService module has some options to allow you to customize the
functionality. After installing JmMailService, create a new config file in
./config/autoload/
or change an existing one to set the values as need.
The following options are available under the configuration key
jm-mail-service
:
- mail_transport_key - Service manager key of the transport service to use.
- mail_service - Options for the mail service. Have a look at the next section.
Options for the Mail Service
The following options are available under the configuration key
mail_service
of the JmMailService options:
- default_from - Default mail address to use as sender for the mail service.
- default_from_name - Default name to use as sender for the mail service.
Usage
The Mail Service is registered at the Service Manager and can be retrieved from
it by calling get('JanMalte\JmMailService\Service\Mail')
```php
// Get the mail service
$mailService = $serviceLocator->get('JanMalte\JmMailService\Service\Mail');
```
To send a mail message you need only a few commands.
```php
// Reset the mail service
$mailService->reset();
// Set the mail template
$mailService->setTemplate($templateFile);
// Parse the template
$mailService->parseTemplate($templateValues);
// Add a recipient for the message
$mailMessage = $mailService->getMailMessage();
$mailMessage->setTo($recipientEmail, $recipientName);
// Send the mail message
$mailService->send();
```
Method chaning is provided, so you can shorten the commands to the following:
```php
// Use the mail service with method chaining
$mailService->reset()
->setTemplate($templateFile)
->parseTemplate($templateValues);
// Add a recipient for the message
$$mailService->getMailMessage()
->setTo($recipientEmail, $recipientName);
// Send the mail message
$mailService->send();
```
The template files have to be under the same path as the other view scripts.
Typically this would be <vendor>/<module>/view/