PHP Classes

PHPMailer Logging with Monolog: Log email sent via PHPMailer using Monolog

Recommend this page to a friend!
  Info   Example   Screenshots   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 103 All time: 9,767 This week: 126Up
Version License PHP version Categories
monolog-phpmailer 1.0MIT/X Consortium ...5.5.0Email, PHP 5, Logging
Description 

Author

This package can log email sent via PHPMailer using Monolog.

It provides a logger handler class that can take a PHPMailer object already configured to send email messages.

The handler class object can be passed to Monolog to define the way the information about the messages that are sent is used to generate the log output.

Innovation Award
PHP Programming Innovation award nominee
October 2018
Number 2


Prize: PHP Tools for Visual Studio Personal license
PHPMailer is a popular package for sending email. Monolog is a popular package for generating logs for the current application activity.

This package provides a brigde between PHPMailer and Monolog by passing the necessary information about mailing activity, so all actions records can be sent to logs.

Manuel Lemos
Picture of Filip Štamcar
  Performance   Level  
Name: Filip Štamcar <contact>
Classes: 3 packages by
Country: Slovenia Slovenia
Age: ???
All time rank: 409311 in Slovenia Slovenia
Week rank: 170 Up1 in Slovenia Slovenia Up
Innovation award
Innovation award
Nominee: 1x

Example

<?php

use MonologPHPMailer\PHPMailerHandler;

use
Monolog\Formatter\HtmlFormatter;
use
Monolog\Logger;
use
Monolog\Processor\IntrospectionProcessor;
use
Monolog\Processor\MemoryUsageProcessor;
use
Monolog\Processor\WebProcessor;

use
PHPMailer\PHPMailer\PHPMailer;

require
__DIR__ . '/vendor/autoload.php';

$mailer = new PHPMailer(true);
$logger = new Logger('logger');

$mailer->isSMTP();
$mailer->Host = 'smtp.example.com';
$mailer->SMTPAuth = true;
$mailer->Username = 'server@example.com';
$mailer->Password = 'password';

$mailer->setFrom('server@example.com', 'Logging Server');
$mailer->addAddress('user@example.com', 'Your Name');

$logger->pushProcessor(new IntrospectionProcessor);
$logger->pushProcessor(new MemoryUsageProcessor);
$logger->pushProcessor(new WebProcessor);

$handler = new PHPMailerHandler($mailer);
$handler->setFormatter(new HtmlFormatter);

$logger->pushHandler($handler);

$logger->error('Error!');
$logger->alert('Something went wrong!');


Details

MonologPHPMailer

[![Latest Stable Version][icon-stable-version]][link-packagist] [![Latest Untable Version][icon-unstable-version]][link-packagist] [![Total Downloads][icon-downloads]][link-packagist] [![License][icon-license]][link-license] [![PHP][icon-php]][link-php]

[![Linux Build Status][icon-travis]][link-travis] [![Windows Build Status][icon-appveyor]][link-appveyor] [![Code Coverage][icon-coverage]][link-coverage] [![Code Quality][icon-quality]][link-quality]

MonologPHPMailer is a [PHPMailer][link-phpmailer] handler for [Monolog][link-monolog]. It enables you to send logs to emails with PHPMailer.

Installation

Requirements

MonologPHPMailer requires [PHP][link-php] 5.5.0 or higher, [Monolog][link-monolog] 1.x or 2.x and [PHPMailer][link-phpmailer] 6.x.

Using Composer

The reccomended way to install MonologPHPMailer is with [Composer][link-composer], dependency manager for PHP.

You should just add filips123/monolog-phpmailer to your project dependencies in composer.json. It will also install Monolog and PHPMailer, but it is reccomended to add them manually to composer.json.

{
    "require": {
        "monolog/monolog": "^1.0",
        "phpmailer/phpmailer": "^6.0",
        "filips123/monolog-phpmailer": "^1.0"
    }
}

Do not forget to run composer install and add require 'vendor/autoload.php'; to your main script.

Manually Installation

Alternatively, you could download all files in directory [src][link-handlers] from GitHub and then manually include them in your script. You also have to install Monolog and PHPMailer manually.

Usage

You should just add handler MonologPHPMailer\PHPMailerHandler to your logger. It's first argument must be PHPMailer instance.

Example

<?php

use MonologPHPMailer\PHPMailerHandler;

use Monolog\Formatter\HtmlFormatter;
use Monolog\Logger;
use Monolog\Processor\IntrospectionProcessor;
use Monolog\Processor\MemoryUsageProcessor;
use Monolog\Processor\WebProcessor;

use PHPMailer\PHPMailer\PHPMailer;

require __DIR__ . '/vendor/autoload.php';

$mailer = new PHPMailer(true);
$logger = new Logger('logger');

$mailer->isSMTP();
$mailer->Host = 'smtp.example.com';
$mailer->SMTPAuth = true;
$mailer->Username = 'server@example.com';
$mailer->Password = 'password';

$mailer->setFrom('server@example.com', 'Logging Server');
$mailer->addAddress('user@example.com', 'Your Name');

$logger->pushProcessor(new IntrospectionProcessor);
$logger->pushProcessor(new MemoryUsageProcessor);
$logger->pushProcessor(new WebProcessor);

$handler = new PHPMailerHandler($mailer);
$handler->setFormatter(new HtmlFormatter);

$logger->pushHandler($handler);

$logger->error('Error!');
$logger->alert('Something went wrong!');

Versioning

This library uses [SemVer][link-semver] SemVer for versioning. For the versions available, see the [tags on this repository][link-tags].

License

This library is licensed under the MIT license. See the [LICENSE][link-license-file] file for details.

[icon-stable-version]: https://img.shields.io/packagist/v/filips123/monolog-phpmailer.svg?style=flat-square&label=Latest+Stable+Version [icon-unstable-version]: https://img.shields.io/packagist/vpre/filips123/monolog-phpmailer.svg?style=flat-square&label=Latest+Unstable+Version [icon-downloads]: https://img.shields.io/packagist/dt/filips123/monolog-phpmailer.svg?style=flat-square&label=Downloads [icon-license]: https://img.shields.io/packagist/l/filips123/monolog-phpmailer.svg?style=flat-square&label=License [icon-php]: https://img.shields.io/packagist/php-v/filips123/monolog-phpmailer.svg?style=flat-square&label=PHP [icon-travis]: https://img.shields.io/travis/com/filips123/MonologPHPMailer.svg?style=flat-square&label=Linux+Build+Status [icon-appveyor]: https://img.shields.io/appveyor/ci/filips123/MonologPHPMailer.svg?style=flat-square&label=Windows+Build+Status [icon-coverage]: https://img.shields.io/scrutinizer/coverage/g/filips123/MonologPHPMailer.svg?style=flat-square&label=Code+Coverage [icon-quality]: https://img.shields.io/scrutinizer/g/filips123/MonologPHPMailer.svg?style=flat-square&label=Code+Quality

[link-packagist]: https://packagist.org/packages/filips123/monolog-phpmailer/ [link-license]: https://choosealicense.com/licenses/mit/ [link-php]: https://php.net/ [link-travis]: https://travis-ci.com/filips123/MonologPHPMailer/ [link-appveyor]: https://ci.appveyor.com/project/filips123/monologphpmailer/ [link-coverage]: https://scrutinizer-ci.com/g/filips123/MonologPHPMailer/code-structure/ [link-quality]: https://scrutinizer-ci.com/g/filips123/MonologPHPMailer/

[link-monolog]: https://github.com/Seldaek/monolog/ [link-phpmailer]: https://github.com/PHPMailer/PHPMailer/ [link-composer]: https://getcomposer.org/ [link-handlers]: https://github.com/filips123/MonologPHPMailer/tree/master/src [link-semver]: https://semver.org/ [link-tags]: https://github.com/filips123/MonologPHPMailer/tags/ [link-license-file]: https://github.com/filips123/MonologPHPMailer/blob/master/LICENSE


Screenshots (2)  
  • code.jpg
  • email.jpg
  Files folder image Files (15)  
File Role Description
Files folder imagesrc (3 files)
Files folder imagetests (2 files)
Accessible without login Plain text file .editorconfig Data Auxiliary data
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file example.php Example Example script
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpcs.xml.dist Data Auxiliary data
Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files (15)  /  src  
File Role Description
  Accessible without login Plain text file PHPMailerHandler.php Aux. Auxiliary script
  Plain text file PHPMailerHandler1.php Class Class source
  Plain text file PHPMailerHandler2.php Class Class source

  Files folder image Files (15)  /  tests  
File Role Description
  Plain text file PHPMailerHandlerTest.php Class Class source
  Plain text file TestCase.php Class Class source

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
Downloadmonolog-phpmailer-2018-10-08.zip 131KB
Downloadmonolog-phpmailer-2018-10-08.tar.gz 130KB
Install with ComposerInstall with Composer
Needed packages  
Class DownloadWhy it is needed Dependency
PHPMailer Download .zip .tar.gz It is using it for sending emails. Required
 Version Control Unique User Downloads Download Rankings  
 86%
Total:103
This week:0
All time:9,767
This week:126Up