Envío de emails con Postmark

Configurar el envío de email usando Postmark

Crear una cuenta gratuita en Postmark y añadir un servidor

Se permiten hasta 100 emails mensuales en su plan gratuito.

Postmark token

Conviene aprobar el servidor creado para poder enviar emails desde cualquier dominio.

En la pestaña API Tokens hay que disponer de un Server API Token para ponerlo en la configuración de la aplicación de Laravel.

 

Configurar Laravel para enviar emails usando Postmark

conectarse al servidor VPS por ssh

ssh paco@alumnoportada.com.es

instalar el paquete coconutcraig/laravel-postmark

composer require coconutcraig/laravel-postmark

fichero .env

(poner el token propio y el email del dominio usado)

nano .env

MAIL_MAILER=postmark
POSTMARK_TOKEN=PUP-YOUR-SERVER-API-TOKEN-HERE
MAIL_FROM_ADDRESS="paco@alumnoportada.com.es"
MAIL_FROM_NAME="${APP_NAME}"

 

Comprobación

Registrar un nuevo usuario en la aplicación y comprobar que se recibe el mensaje de verificación

Registro

 

Verificación

Configurar varios servidores de email

Se irán utilizando los diferentes servidores de email configurados en caso de fallo de alguno, según el orden definido en failover.

Failover Configuration

Quitar la configuración del envío de correo en el fichero .env

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=»paco@alumnoportada.com.es»
MAIL_FROM_NAME=»${APP_NAME}»

Modificar el fichero config/mail.php para configurar los diferentes servidores de envío de emails

nano config/mail.php

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Default Mailer
    |--------------------------------------------------------------------------
    |
    | This option controls the default mailer that is used to send any email
    | messages sent by your application. Alternative mailers may be setup
    | and used as needed; however, this mailer will be used by default.
    |
    */

    //'default' => env('MAIL_MAILER', 'smtp'),
    'default' => env('MAIL_MAILER', 'failover'),

    /*
    |--------------------------------------------------------------------------
    | Mailer Configurations
    |--------------------------------------------------------------------------
    |
    | Here you may configure all of the mailers used by your application plus
    | their respective settings. Several examples have been configured for
    | you and you are free to add your own as your application requires.
    |
    | Laravel supports a variety of mail "transport" drivers to be used while
    | sending an e-mail. You will specify which one you are using for your
    | mailers below. You are free to add additional mailers as required.
    |
    | Supported: "smtp", "sendmail", "mailgun", "ses",
    |            "postmark", "log", "array", "failover"
    |
    */

    'mailers' => [
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', 'localhost'),
            'port' => env('MAIL_PORT', 25),
            'local_domain' => env('MAIL_EHLO_DOMAIN'),
            'auth_mode' => null,
            'verify_peer' => false,
        ],

        'postmark' => [
            'transport' => 'postmark',
            'token' => env('POSTMARK_TOKEN')
        ],

        'failover' => [
            'transport' => 'failover',
            'mailers' => [
                'smtp',
                'postmark',
                'log',
            ],
        ],

        'ses' => [
            'transport' => 'ses',
        ],

        'mailgun' => [
            'transport' => 'mailgun',
        ],

        'sendmail' => [
            'transport' => 'sendmail',
            'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
        ],

        'log' => [
            'transport' => 'log',
            'channel' => env('MAIL_LOG_CHANNEL'),
        ],

        'array' => [
            'transport' => 'array',
        ]

    ],

    /*
    |--------------------------------------------------------------------------
    | 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.
    |
    */

    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'paco@alumnoportada.com.es'),
        'reply_to' => ['address' => 'paco@alumnoportada.com.es', 'name' => 'App Name'],
        'name' => env('MAIL_FROM_NAME', 'Example'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Markdown Mail Settings
    |--------------------------------------------------------------------------
    |
    | If you are using Markdown based email rendering, you may configure your
    | theme and component paths here, allowing you to customize the design
    | of the emails. Or, you may simply stick with the Laravel defaults!
    |
    */

    'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],

];

Añadir el token de Postmark en el fichero .env

nano .env

POSTMARK_TOKEN='Put-your-token-here'

 

Deja una respuesta