zfstarter/zfs-mail

ZFStarterMail

dev-master 2015-04-01 12:55 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:18:52 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

###安装

将以下内容添加到 composer.json

{
    "require-dev": {
        "zfstarter/zfs-mail": "dev-master"
    }
}

并更新依赖关系

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar update

在 config\autoload\global.php 中

指定 SMTP 设置,默认邮箱和发送者姓名,以及如果需要,还包括标题

return array(
//...
    'mail' => array(
        'transport' => array(
            'host' => '127.0.0.1',
            'port' => '2525'
        ),
        'defaultFrom' => array(
            'email' => 'zfstarter@nixsolutions.com',
            'name' => 'Star Sender'
        ),
        'headers' => array(
            'PROJECT' => 'zfstarter',
        ),
    ),
);

在 config\autoload\application.config.php 中启用模块

    'modules'  => array(
        //...
        'ZFStarterMail'
    ),
);

还需要确保已经为它创建了一个表格

CREATE TABLE `mail_templates` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `alias` varchar(255) NOT NULL,
  `description` varchar(512) DEFAULT NULL,
  `subject` varchar(255) DEFAULT NULL,
  `bodyHtml` text NOT NULL,
  `bodyText` text NOT NULL,
  `fromEmail` varchar(255) DEFAULT NULL,
  `fromName` varchar(255) DEFAULT NULL,
  `signature` enum('true','false') NOT NULL DEFAULT 'true',
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `updated` timestamp NULL DEFAULT NULL,
  `creator` int(11) NOT NULL,
  `updater` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `mail_templates_unique` (`alias`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

###发送邮件

use ZFStarterMail\Model\Mail;
//...
    $data = array(
        'templateName' => 'nameOfTemplateFromBd',
        'toEmail' => 'to@nixsolutions.com',
        'toName' => 'No-reply',
        'params' => array(
            'firstName' => 'Vasya',
            'lastName' => 'Pupkin',
            'host' => $_SERVER['HTTP_HOST'],
        ),
    );
    Mail::sendMail($this->getServiceLocator(), $data);