承接 daagmbh/mailer 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

daagmbh/mailer

Composer 安装命令:

composer require daagmbh/mailer

包简介

This mailer library eases the definition and sending of mails in multiple languages in a PHP application.

README 文档

README

The library eases the definition and sending of mails in multiple languages within an PHP application. It's main objective is to allow an easy mail sending without a lot of code. A mail is described in an abstract way in a so-called message which is rendered in multiple steps.

Features

  • Text & HTML Mails
  • Automatic translation into the user's locale (including the sender's email address and name)
  • Text can be fetched from an arbitrary resource / translator (currently, there is only one resolver for the Symfony translator)
  • Templates can be rendered with an arbitrary template engine (currently, there is only a Twig renderer)
  • Mails can be sent via various transport ways (currently, there is a transport via Swift Mailer)

Usage

At first, you need to instantiate the mailer (here with Twig as renderer and Symfony translator as template resolver):

$mailer = new DaaMailer(
	new SymfonyTemplateResolver($translator),
	new TwigTemplateRenderer($twig),
	$eventDispatcher
);

Afterwards, you can define senders that are used to send the message:

// Here you define the login data, the sending email address and the name of the sender for a specific locae
$mailer->registerSender('support', 'de_DE', new SmtpSender('smtp.googlemail.com', 'foo@acme.com', 'password123', 'kundenservice@acme.com', 'Kundenservice'));
$mailer->registerSender('support', 'en_US', new SmtpSender('smtp.googlemail.com', 'foo@acme.com', 'password123', 'support@acme.com', 'Service'));

Then, you have to define a new message class. A message class is the abstract definition of a mail and is rendered by the mailer before sending.

<?php

use Daa\Library\Mail\Message\MessageInterface;
use Daa\Library\Mail\RecipientContainer;

class RegistrationMessage implements MessageInterface
{

    private $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }

    public function getLocale()
    {
        return $this->user->getLocale();
    }

    public function getSenderId()
    {
        return 'support';
    }

    public function getRecipients()
    {
        return new RecipientContainer($this->user->getEmail());
    }

    public function getSubjectKey()
    {
        return 'user.registration.subject';
    }

    public function getTemplateKey()
    {
        return 'user.registration.text';
    }

    public function getParameters()
    {
        return ['user' => $this->user];
    }
}

At last, you only have to put the mail texts into your translation files (or in any other way the template resolver expects them).

And now, you can send an email:

$message = new RegistrationMessage($user);
$mailer->sendMessage($message);

And that's it. Easy, huh?

Advanced Usage

You can extend this library to allow some more advanced usages. For example, you can embedd your own template resolver and renderer.

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 19.47k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-08-28

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固