Instalação
Artigos
Cursos
Loja
INSTALAÇÃO
ARTIGOS
CURSOS
EBOOKS
DOWNLOADS
LOJA
ARTIGOS
Usando Mailchimp com PHP
Aprenda a usar a API deste serviço de envio de e-mails
O Mailchimp é uma plataforma de envio de e-mails, voltada principalmente para campanhas de marketing. A plataforma tem um grande foco em oferecer ferramentas que possibilitem qualquer nível de usuário a criar campanhas criativas. Utilizando a interface do Mailchimp é possível enviar e-mails, criar listas, importar e-mails, criar campanhas, desenhar templates, entre outras. Para utilizar a API do Mailchimp é interessante que você conheça um pouco da ferramenta, é possível criar uma conta gratuita e já começar a usar as funcionalidades da aplicação.
## Pré-requisitos da API Para usar a API do Mailchimp é necessário: 1. Ter uma conta no serviço 2. Servidor web (apache/nginx) 3. PHP + php-curl Para criar uma conta no Mailchimp [acesse este link.](https://login.mailchimp.com/signup/) ### Instalação linux Para instalar os serviços necessários no linux você pode usar os seguintes comandos ```bash $ sudo apt-get install apache2 $ sudo apt-get install php7.2 $ sudo apt-get install php7.2-curl ``` ### Instalação windows Normalmente os desenvolvedores em windows usam pacotes prontos como o [wamp server.](http://www.wampserver.com/en/) Esses tipos de pacotes tem em suas próprias configurações extensões do PHP basta habilitar caso esteja desabilitada. ## API O Mailchimp disponibiliza muito métodos para serem utilizados por sua API, você pode conferir a [lista completa aqui](https://developer.mailchimp.com/documentation/mailchimp/reference/overview/). O primeiro passo para usar a API do Mailchimp é obeter a **chave da api**, para isso: 1. Acesse sua conta mailchimp 2. Acesse o perfil do usuário 3. Escolha a opção extras 4. Escolha a opção API keys Caso você ainda não tenha uma chave basta criá-la pela opção `Create A Key` ## Como usar a API Serão demonstrados os usos mais comuns de uma API de envio de e-mails: 1. Criar uma lista de e-mails. 2. Adicionar membros na lista. 3. Como criar uma campanha. 4. Disparar e-mails para uma campanha. A `API` do mailchimp disponibiliza URLs para o desenvolvedor fazer requisições passando alguns parâmetros para serem executados. Desta maneira, usaremos CURL para fazer essas requisições. ### Criar uma lista no mailchimp [Fonte](https://developer.mailchimp.com/documentation/mailchimp/reference/lists/#%20) É possível definir uma série de parâmetros para criar uma lista no mailchimp, no entanto, nem todos eles são obrigatórios. No exemplo abaixo utilizarei todos os campos obrigatórios: > **Atenção!** existem substituições que devem ser realizadas no código-fonte ```php company = "php.com.br"; $contact->address1 = "Rua das Flores"; $contact->city = "Lajeado"; $contact->state = "RS"; $contact->zip = "95900000"; $contact->country = "BR"; $contact->phone = ""; $campaign_defaults = new stdClass; $campaign_defaults->from_name = "php.com.br"; $campaign_defaults->from_email = "php@email.com"; $campaign_defaults->subject = "teste"; $campaign_defaults->language = "pt-br"; $opcoes = new stdClass; $opcoes->name = "Lista do tutorial"; $opcoes->contact = $contact; $opcoes->permission_reminder = "Você está recebendo esse e-mail pois está na lista do tutorial do mailchimp"; $opcoes->campaign_defaults = $campaign_defaults; $opcoes->email_type_option = true; $opcoes = json_encode($opcoes); $ch = curl_init(); // Você precisa substituir o X curl_setopt($ch, CURLOPT_URL, "https://usX.api.mailchimp.com/3.0/lists"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $opcoes); curl_setopt($ch, CURLOPT_POST, 1); // Você precisa colocar a sua chave da api curl_setopt($ch, CURLOPT_USERPWD, "anystring" . ":" . "SUA-API-KEY"); $headers = array(); $headers[] = "Content-Type: application/x-www-form-urlencoded"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close ($ch); $result = json_decode($result); var_dump($result->id); ``` A variável `$result` contém muitas informações para uma lista completa do que é retornado pela API ([Fonte](https://developer.mailchimp.com/documentation/mailchimp/reference/lists/#%20)). Para o próximo exemplo precisaremos apenas do ID da lista.
### Substituições Existem dois locais onde o desenvolvedor deve alterar baseados na sua chave da API. > **Exemplos de uma chave:** 018asd7806sa73sad617f1c354537a80-us19 A substituição obvia é a pela chave completa que deve ser colocada na opção **anystring**. A segunda substituição deve ser realizada na `URL` da API. A `URL` para criar listas: ``` https://usX.api.mailchimp.com/3.0/lists ``` A primeira parte da `URL` deve ser substituída pela última parte da chave da api. Então a substituição é de: `usX` → `us19` A `URL` ficaria assim: ``` https://us19.api.mailchimp.com/3.0/lists ``` ### Como adicionar membros em uma lista Da maneira semelhante a função para inserir membros em uma lista possui muitos parâmetros, leia a documentação [completa para conhecer o método](https://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/). ```php email_address = "email@email.com"; $membro->status = "subscribed"; $membro->tags = ["cliente", "cliente ouro"]; $membro = json_encode($membro); // Você precisa colocar o seu ID $id_lista = "743d286ec0"; $ch = curl_init(); // Atualizar a URL curl_setopt($ch, CURLOPT_URL, "https://usX.api.mailchimp.com/3.0/lists/{$id_lista}/members"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $membro); curl_setopt($ch, CURLOPT_POST, 1); // Usar sua chave curl_setopt($ch, CURLOPT_USERPWD, "anystring" . ":" . "SUA-API-KEY"); $headers = array(); $headers[] = "Content-Type: application/x-www-form-urlencoded"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close ($ch); var_dump($result); ``` ### Como criar uma campanha A maneira de enviar e-mails para uma lista é criando uma campanha, a campanha pode ser criada pelo mailchimp ou pelo API. A campanha tem uma lista de e-mais como alvo, além disso ela tem um template que será enviado. **Template** Os templates também podem ser criados por [API](https://developer.mailchimp.com/documentation/mailchimp/reference/templates/), no entanto recomendo que você crie o template diretamente pelo site do mailchimp. Lá é fornecida uma interface intuitiva e rica para a criação de um template bonito e objetivo. Código-fonte para criar uma campanha: ```php subject_line = "Campanha via API"; $settings->reply_to = "email@email.com"; $settings->from_name = "Contato"; $settings->template_id = 35111; // ID do template desesjado $destinatarios = new stdClass; $destinatarios->list_id = "743d286ec0"; // ID da listagem $campanha = new stdClass; $campanha->recipients = $destinatarios; $campanha->type = "regular"; $campanha->settings = $settings; $campanha = json_encode($campanha); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://usX.api.mailchimp.com/3.0/campaigns"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $campanha); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERPWD, "anystring" . ":" . "API-KEY"); $headers = array(); $headers[] = "Content-Type: application/x-www-form-urlencoded"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close ($ch); var_dump($result); ``` No retorno teremos acesso ao ID da campanha e é com ele que enviaremos os e-mails. ### Como enviar uma campanha Para enviar uma campanha é bem simples: ```php $campanha_id = "4119377b69"; // ID da campanha $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://usX.api.mailchimp.com/3.0/campaigns/{$campanha_id}/actions/send"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERPWD, "anystring" . ":" . "SUA-API"); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close ($ch); ```
COMENTE SOBRE