Como preparar o Mailgun rapidamente com PHP
Quando comecei na programação, lembro de debater se queria aprender ASP.NET ou PHP. Li milhares de fóruns e tópicos sobre cada linguagem para me ajudar a tomar uma decisão.
Escolhi o PHP principalmente pela comunidade, pela disponibilidade de exemplos e pelo fato de ser de código aberto. Tenho certeza de que esses são motivos semelhantes aos que levaram você a se aventurar no mundo do PHP.
O PHP é uma das linguagens mais usadas e, mesmo assim, há muito material confuso ou desatualizado na internet.
O objetivo deste post específico é fornecer a você uma visão geral detalhada de como usar o Mailgun no seu ambiente PHP com exemplos simples de copiar e colar
Como usar a biblioteca oficial Mailgun-PHP
Uma maneira muito direta de usar o Mailgun e aproveitar sua excelente API para entregar e-mails é instalar a biblioteca oficial do PHP no seu ambiente de desenvolvimento, criada e mantida como um projeto de código aberto pelo nosso Mailgunner, Travis.
Passos
- Abra o seu terminal e navegue até a pasta pública do seu servidor. É aqui que você armazena o seu site, o que varia dependendo da instalação e do servidor web usado –
cd /var/www/html - Crie um diretório vazio para este projeto –
mkdir mailgun-php - Acesse o diretório e execute os seguintes comandos –
cd mailgun-php(altera o diretório) - Agora execute o comando a seguir para baixar e instalar o Composer. –
curl -sS https://getcomposer.org/installer | php
O Composer, quando usado dessa forma, permite baixar bibliotecas PHP com facilidade localmente na pasta. Agora, vamos usar o composer para instalar a própria biblioteca do Mailgun.
- Vamos executar isso para informar ao composer que usaremos (e, portanto, precisamos baixar) a biblioteca do Mailgun (aqui usamos a 1.7.1) e as suas dependências. –
php composer.phar require mailgun/mailgun-php:~1.7.1
Parabéns, você instalou a biblioteca oficial do Mailgun e agora já pode começar a programar!
Abra um arquivo e inclua o arquivo vendor/autoload.php para começar. Todos os exemplos abaixo presumem que você já incluiu isso no seu arquivo:
Em seguida, siga estas instruções da documentação oficial para enviar uma mensagem usando o SDK:
messages()->send($domain, $params);
$mg->messages()->send('example.com', [
'from' => 'bob@example.com',
'to' => 'sally@example.com',
'subject' => 'The PHP SDK is awesome!',
'text' => 'It is so simple to send a message.'
]);
?>
Lembre-se: o $domain deve corresponder ao domínio que você configurou em app.mailgun.com.
Como usar o Swift Mailer
Usar o Mailgun com o Swift Mailer é muito fácil.
Certifique-se de ter as credenciais SMTP do seu domínio em mãos! Você pode encontrá-las aqui elas são chamadas de:
- Login SMTP padrão
- Senha padrão
Passos
- Crie uma pasta chamada Swiftmailer –
mkdir swiftmailer, cd swiftmailer - Baixe o Composer para instalar o swiftmailer e as suas dependências
curl -sS https://getcomposer.org/installer | php
- Instale o Swiftmailer
php composer.phar require swiftmailer/swiftmailer @stable
- Os arquivos serão baixados. Assim que terminar, basta criar o seu próprio arquivo vazio para testar se o phpmailer funciona. No terminal, você pode fazer isso executando:
touch mailgun_with_swiftmailer.phpvim mailgun_with_swiftmailer.php
Aqui estamos usando o vim, mas você pode editar o arquivo mailgun_with_swiftmailer.php no editor que achar mais confortável.
setUsername('your SMTP username')
->setPassword('your SMTP password')
;
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
// Create a message
$message = Swift_Message::newInstance('Hello from Mailgun')
->setFrom(array('someone@domain.com' => 'John Doe'))
->setTo(array('someone_else@domain.org', 'third_contact@domain.org' => 'A third name'))
->setBody("And that's another ace in the hole for the Mailgun dev!")
;
// Send the message
$result = $mailer->send($message);
?>
Mais informações sobre o envio de e-mails bem mais complexos podem ser encontradas na documentação oficial do Swiftmailer, disponível online aqui.
Como usar o PHP Mailer
O Mailgun também pode ser usado em conjunto com uma das bibliotecas de envio de e-mail mais famosas do PHP: PHP Mailer.
O PHP Mailer é uma alternativa muito válida à função nativa mail() do PHP, pois acelera e permite personalizar bastante a forma de enviar e-mails com PHP. As distribuições Linux e o Mac OS X têm uma função nativa para o envio de e-mails, embora não seja confiável. A propósito, vale mencionar que o Windows não tem absolutamente nada para o envio de e-mails, por isso sugiro que você continue lendo.
Passos
- Crie uma pasta chamada
phpmailermkdir phpmailercd phpmailer
- Baixe o composer para instalar o
phpmailere as suas dependênciascurl -sS https://getcomposer.org/installer | php
- O Composer está pronto. Agora, vamos instalar o Phpmailer(5.2.8):
php composer.phar require phpmailer/phpmailer:5.2.8
- Os arquivos serão baixados. Assim que terminar, basta criar o seu próprio arquivo vazio para testar se o phpmailer funciona
touch mailgun_with_phpmailer.phpvim mailgun_with_phpmailer.php
Aqui estamos usando o vim, mas você pode editar o arquivo mailgun_with_phpmailer.php no editor que achar mais confortável.
isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.mailgun.org'; // Specify mailgun SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'username@domain.com'; // SMTP username from https://mailgun.com/cp/domains
$mail->Password = 'myp@55w0rd'; // SMTP password from https://mailgun.com/cp/domains
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl'
$mail->From = 'sender@domain.com'; // The FROM field, the address sending the email
$mail->FromName = 'Orlie'; // The NAME field which will be displayed on arrival by the email client
$mail->addAddress('recipient@domain.net', 'BOB'); // Recipient's email address and optionally a name to identify him
$mail->isHTML(true); // Set email to be sent as HTML, if you are planning on sending plain text email just set it to false
// The following is self explanatory
$mail->Subject = 'Email sent with Mailgun';
$mail->Body = '<span style="color: red">Mailgun rocks</span>, thank you <em>phpmailer</em> for making emailing easy using this <b>tool!</b>';
$mail->AltBody = 'Mailgun rocks, shame you can't see the html sent with phpmailer so you're seeing this instead';
if(!$mail->send()) {
echo "Message hasn't been sent.";
echo 'Mailer Error: ' . $mail->ErrorInfo . "n";
} else {
echo "Message has been sent n";
}
?>
As configurações para autenticar no servidor SMTP do Mailgun podem ser encontradas aqui, assim como no Swiftmailer.
Faça login no painel de controle do Mailgun, escolha um domínio (ou o domínio sandbox que vem com todas as novas contas, caso não tenha configurado um domínio personalizado) e copie e cole esses dados (Login SMTP padrão, Senha padrão) no trecho de código acima, nos campos de nome de usuário e senha do SMTP.
Preparar é incrível
Você usa outras bibliotecas em conjunto com o Mailgun? Se sim, adoraríamos destacar isso no nosso próximo post de blog sobre PHP, com cobertura completa e exemplos!
Bons envios!