Email

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.
Imagem para 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.php
    • vim 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 phpmailer
    • mkdir phpmailer
    • cd phpmailer
  • Baixe o composer para instalar o phpmailer e as suas dependências
    • curl -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.php
    • vim 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!