2017 © Pedro Peláez
 

yii2-extension zyx-phpmailer

PHPMailer integration for Yii 2 framework

image

zyx/zyx-phpmailer

PHPMailer integration for Yii 2 framework

  • Sunday, November 5, 2017
  • by zyx
  • Repository
  • 2 Watchers
  • 3 Stars
  • 14,911 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 6 Forks
  • 3 Open issues
  • 7 Versions
  • 9 % Grown

The README.md

zyx-phpmailer

PHPMailer integration for Yii 2 framework

Latest Stable Version Latest Unstable Version Total Downloads License Code Climate Scrutinizer Code Quality, (*1)

===, (*2)

WARNING !!!

PHPMailer 6 was released with some breaking backwards compatibility changes and minimum requirement of php 5.5., (*3)

This package does not yet supports PHPMailer 6 (work on its support is in progress, but there is no due date at the moment).

This extension adds integration of popular PHPMailer library - a "full-featured email creation and transfer class for PHP" - to Yii 2 framework., (*4)

Although extension classes implement yii\mail\MailerInterface and yii\mail\MessageInterface, some methods of Yii 2 BaseMailer and BaseMessage are overriden - mainly because of PHPMailer-specific issues., (*5)

Nevertheless - the behavior of the extension should remain expected and predictable and comply interfaces mentioned above (I believe so). If not - feel free to report issues., (*6)

REQUIREMENTS

You should generally follow Yii 2 requirements. The minimum is that your Web server supports PHP 5.4.0., (*7)

INSTALLATION

Install via Composer

If you do not have Composer, you may install it by following the instructions at getcomposer.org., (*8)

During the extension installation PHPMailer library will be also installed (if not already present in your prject)., (*9)

So, either run, (*10)

php composer.phar require --prefer-dist zyx/zyx-phpmailer "^0.9.4"

or add respectively:, (*11)

"zyx/zyx-phpmailer": "^0.9.4"

to the require section of your composer.json., (*12)

Note: this can be affected by 'minimum-stability' settings in your project root composer.json file. If you want to install version with stability other than 'minimum-stability' of your project, you should explicitly point to it in the require section of composer.json in your project root., (*13)

Install from an Archive File

You may install extension manually. For that purpose you have to download archive file and extract it into vendor/zyx directory of your project., (*14)

You'll also need to download PHPMailer library and extract it to vendor/phpmailer directory of your project., (*15)

Note: due to naming agreement 3rd-party extensions and libraries are kept under vendor directory., (*16)

One of the benefits of installing via Composer is automation of autoload setup. If you install extension and PHPMailer library from archive files, you'll have to setup autoload paths manually., (*17)

Note: currently PHPMailer does not support namespaces (as its minimum requirements is php 5.0), but provides an SPL-compatible autoloader, and..., (*18)

the preferred way of loading the library - just require '/path/to/PHPMailerAutoload.php'; and everything should work, (*19)

For further information refer to PHPMailer documentation., (*20)

CONFIGURING

To use this extension, you should add some settings in your application configuration file. It may be like the following:, (*21)

return [
//....
    'components' => [
        'mailer' => [
            'class'            => 'zyx\phpmailer\Mailer',
            'viewPath'         => '@common/mail',
            'useFileTransport' => false,
            'config'           => [
                'mailer'     => 'smtp',
                'host'       => 'smtp.yandex.ru',
                'port'       => '465',
                'smtpsecure' => 'ssl',
                'smtpauth'   => true,
                'username'   => 'mysmtplogin@example.ru',
                'password'   => 'mYsmTpPassword',
            ],
        ],
    ],
];

This is the tipical configuration for sending email via yandex smtp., (*22)

If you are familiar with PHPMailer, you can see that 'config' array holds settings, similar to corresponding PHPMailer properties. They will be populated when Mailer is initialized., (*23)

You can for example define, (*24)

'mailer' => 'mail' or, (*25)

'mailer' => 'sendmail', 'sendmail' => '/path/to/sendmail' - just like in PHPMailer., (*26)

You may also configure some default message settings for your application in 'messageConfig' array. They will be populated at the moment of message creation., (*27)

For example, you may predefine default contents of 'From' email field - so you will not have to set 'From' it every time when composing message:, (*28)

    ...
    'mailer' => [
        ...
        'messageConfig'    => [
         'from' => ['noreply@example.com' => 'My Example Site']
        ],
        ...
    ],
    ...

USAGE

Example of simple usage:, (*29)

Yii::$app->mailer->compose()
     ->setFrom(['noreply@example.com' => 'My Example Site'])
     ->setTo([$form->email => $form->name])
     ->setSubject($form->subject)
     ->setTextBody($form->text)
     ->send();

Example of sending html emails rendering view and layout (assumed that default 'From' is set in application configuration file):, (*30)

Yii::$app->mailer->compose('passwordResetToken', ['user'       => $user,
                                                'title'      => Yii::t('app', 'Password reset'),
                                                'htmlLayout' => 'layouts/html-reset'])
                ->setTo($this->email)
                ->setSubject(Yii::t('app', 'Password reset for ') . Yii::$app->params['siteName'])
                ->send();

Note: possibility to set 'htmlLayout' dynamically when composing message is not the native behavior of BaseMailer. This feature was introduced in this specific extension and is experimental., (*31)

For more examples of usage you may refer to documentation on Yii 2 BaseMailer and BaseMessage and PHPDoc blocks in the extension files., (*32)

Additionally some Wiki articles are available., (*33)

The Versions

05/11 2017

2.0.x-dev

2.0.9999999.9999999-dev

PHPMailer integration for Yii 2 framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Serge Postrash aka SDKiller

mail email yii2 mailer phpmailer

03/11 2017

dev-master

9999999-dev

PHPMailer integration for Yii 2 framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Serge Postrash aka SDKiller

mail email yii2 mailer phpmailer

03/11 2017

0.9.4

0.9.4.0

PHPMailer integration for Yii 2 framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Serge Postrash aka SDKiller

mail email yii2 mailer phpmailer

03/11 2017

0.9.3

0.9.3.0

PHPMailer integration for Yii 2 framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Serge Postrash aka SDKiller

mail email yii2 mailer phpmailer

14/05 2014

0.9.2

0.9.2.0

PHPMailer integration for Yii 2 framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Serge Postrash aka SDKiller

mail email yii2 mailer phpmailer

06/05 2014

0.9.1

0.9.1.0

PHPMailer integration for Yii 2 framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Serge Postrash aka SDKiller

mail email yii2 mailer phpmailer

06/05 2014

0.9.0

0.9.0.0

PHPMailer integration for Yii 2 framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Serge Postrash aka SDKiller

mail email yii2 mailer phpmailer