radig / gear-mailer
Send email assyncronous with Gearman and Amazon SES
Installs: 132
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 5
Forks: 0
Open Issues: 0
Type:cakephp-plugin
Requires
- php: >=5.4.0
- ext-gearman: *
- aws/aws-sdk-php: 2.*
- composer/installers: ~1.0
README
Plugin que permite o envio de emails utilizando Gearman e Amazon SES.
Requisitos
- CakePHP 2.x
- AWS SDK for PHP 2
- Gearman
- Gearman PHP Extension
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.