# Laravel Mailers

Laravel Mailers is a package for Laravel 7.0 and higher, which configures different transports ("smtp", "sendmail", "mailgun", "ses", "postmark", "log", "array") without modifying our mail.php.

# Installation

Laravel Mailers can be installed via composer:

composer require stenfrank/laravel-mailers

The package will automatically register a service provider.

Optionally you can publish the package configuration using:

php artisan vendor:publish --provider="Stenfrank\LaravelMailers\LaravelMailersServiceProvider" --tag="config"

This is the default content of the config file that will be published as config/mails.php:

return [
    /*
    |--------------------------------------------------------------------------
    | Mailers
    |--------------------------------------------------------------------------
    | Here you can provide the names of your mailers.
    |
    */
    'mailers' => explode('|', env('MAIL_MAILER', 'default')),

    /*
    |--------------------------------------------------------------------------
    | Mail Transport Driver
    |--------------------------------------------------------------------------
    |
    | Laravel supports both SMTP and PHP's "mail" function as drivers for the
    | sending of e-mail. You may specify which one you're using throughout
    | your application here. By default, Laravel is setup for SMTP mail.
    |
    | Supported: "smtp", "sendmail", "mailgun", "ses",
    |            "postmark", "log", "array"
    |
    */
    'transports' => explode('|', env('MAIL_DRIVER', 'smtp')),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Address
    |--------------------------------------------------------------------------
    |
    | Here you may provide the host address of the SMTP server used by your
    | applications. A default option is provided that is compatible with
    | the Mailgun mail service which will provide reliable deliveries.
    |
    */

    'hosts' => explode('|', env('MAIL_HOST', 'smtp.mailgun.org')),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Port
    |--------------------------------------------------------------------------
    |
    | This is the SMTP port used by your application to deliver e-mails to
    | users of the application. Like the host we have set this value to
    | stay compatible with the Mailgun e-mail application by default.
    |
    */

    'ports' => explode('|', env('MAIL_PORT', 587)),

    /*
    |--------------------------------------------------------------------------
    | Global "From" Address
    |--------------------------------------------------------------------------
    |
    | You may wish for all e-mails sent by your application to be sent from
    | the same address. Here, you may specify a name and address that is
    | used globally for all e-mails that are sent by your application.
    |
    */

    'froms' => [
        'address' => explode('|', env('MAIL_FROM_ADDRESS', '[email protected]')),
        'name' => explode('|',env('MAIL_FROM_NAME', 'Example')),
    ],

    /*
    |--------------------------------------------------------------------------
    | E-Mail Encryption Protocol
    |--------------------------------------------------------------------------
    |
    | Here you may specify the encryption protocol that should be used when
    | the application send e-mail messages. A sensible default using the
    | transport layer security protocol should provide great security.
    |
    */

    'encryptions' => explode('|', env('MAIL_ENCRYPTION', 'tls')),

    /*
    |--------------------------------------------------------------------------
    | SMTP Server Username
    |--------------------------------------------------------------------------
    |
    | If your SMTP server requires a username for authentication, you should
    | set it here. This will get used to authenticate with your server on
    | connection. You may also set the "password" value below this one.
    |
    */

    'usernames' => explode('|', env('MAIL_USERNAME')),

    'passwords' => explode('|', env('MAIL_PASSWORD')),
];

# Questions and issues

Find yourself stuck using the package? Found a bug? Do you have general questions or suggestions for improving laravel-websockets? Feel free to create an issue on GitHub, we'll try to address it as soon as possible.

If you've found a bug regarding security please mail [email protected] instead of using the issue tracker.