radig/gear-mailer

Send email assyncronous with Gearman and Amazon SES

Installs: 129

Dependents: 0

Stars: 1

Watchers: 4

Forks: 1

Language: PHP

1.2.0 2014-03-12 20:15 UTC

README

Plugin que permite o envio de emails utilizando Gearman e Amazon SES.

Requisitos

Instalação

Utilizando Composer

  • Verifique se já tem a extensão do Gearman instalada e carregado no PHP
  • Na raiz do projeto, execute:
    composer install radig/gear-mailer

Sem usar Composer

  • Verifique se já tem a extensão do Gearman instalada e carregado no PHP
  • Clone, faça o download ou coloque como submódulo este repositório em Plugins
  • Instale o aws-sdk em app/Vendor/AWS

Configuração

Crie uma configuração de email com a seguinte configuração:

public $default = [
    'transport' => 'GearMailer.Gear'
];

Em seu bootstrap.php, incluia as credenciais para envio de email através da API da AWS SES, da seguinte maneira:

Configure::write('GearMailer.credentials', [
    'key'    => 'sua chave AWS',
    'secret' => 'sua chave secreta AWS'
    'region' => ''
]);

Para ativar o Gearman Worker, que é quem efetivamente enviará o email, existem duas opções:

(1) Utilizando Systemd para gerenciar o processo (background)

Edite o arquivo Vendor/gearmailer.service alterando a linha 6 para um valor válido em sua instalação, saindo:

ExecStart=/usr/bin/php ABSOLUTE_PATH_TO_gearman_email_worker.php

E deixando algo como:

ExecStart=/usr/bin/php /srv/www/app/Plugin/GearMailer/Vendor/gearman_email_worker.php

Copie o arquivo resultante e configure no diretório de serviços de sua distribuição. No caso do OpenSUSE, cole o arquivo (como root)
no diretório: /usr/lib/systemd/system/gearmailer.service

Habilite o serviço:

systemctl enable gearmailer.service

Inicie o serviço:

systemctl start gearmailer.service

(2) Executando o Console do CakePHP

Console/cake GearMailer.EmailWorker

E deixe o console em execução.

Envio de Email

Basta fazer um envio de email normal utilizando o CakeEmail

    $email = new CakeEmail()
        ->from($from)
        ->to($to)
        ->subject($subject)
        ->send();

Autor e Copyright

  • Copyright 2013-2014 Radig – Soluções em TI
  • Licença MIT – Isto quer dizer que o código está disponível sem nenhuma garantia, ao mesmo tempo que você pode usa-lo de forma isolada ou em conjunto com seu próprio código, desde que mantenha os créditos, execeto onde tiver explícito o contrário. Veja os detalhes no arquivo em anexo.