Projetos -

Portillo Mail

 


Download
Considere ajudar um humilde desenvolvedor.

ou veja a lista de desejos na Steam.

 

Existem pela internet diversos serviços de envio de emails em lote. Porém, a maioria possui um custo e você não tem exatamente todo controle sobre o serviço.

Sempre achei que não fazia sentido pagar serviços por fora, quando já temos uma hospedagem e não enviamos todos os emails que temos direito, geralmente não chegamos nem perto disso. Procurei diversas soluções, a maioria eram clientes gratuitos para Windows ou sistemas com poucas opções ou que só eram gratuitos até um determinado ponto. Por que não há uma ferramenta de código aberto para isso? Os que encontrei, que eram realmente funcionais, possuíam muitas complicações e era difícil instalar em uma hospedagem compartilhada simples. A grande maioria exigia o uso de servidor privado.  Pensando nisso, e em alguns clientes que tinham essa necessidade, resolvi criar, no começo de 2015, um sistema que enviasse emails em lote.

História

Inicialmente, criei um pequeno sistema, para ajudar um amigo a enviar mensagens de final de ano, muito simples, que enviava emails utilizando o Mail(), do PHP, mas que ficava atualizando a página a partir de um comando Javascript a cada 30 segundos. Esse sistema funcionava, mas não era funcional, pois a máquina tinha que ficar ligada, enviando emails, e era complexo para deixar alguém mais leigo fazendo.

Então eu pensei: Como será que os sistemas de mailmarketing pagos enviam emails sem derrubar o servidor?

Pesquisei então as regras para evitar que os emails chegassem como spam, e li questões sobre autenticação do envio, exigência de opção de cancelamento, vi que os emails só poderiam ter um destinatário por vez, dentre outras questões.

Então percebi que os serviços de mailmarketing, pagos, enviam um email a cada x segundo. Mas, sem acesso ao servidor, e sem ter que mandar o javascript dar um update, como eu poderia enviar emails?

Então, eu relembrei de um método do PHP chamado exec(), que permite executar funções no servidor. O PortilloMail usa o exec(), para que o apache, do próprio servidor, execute novamente a página de envio. Porém, o servidor pode acabar sendo reiniciado, ou falhar, por não termos controle. Por isso, através de cálculo que resulta no horário do próximo envio, o sistema verifica se o email parou de ser enviado e você pode retomar o envio sem problemas.

No começo de 2015, resolvi que eu deveria fazer o sistema e, em uma maratona pessoal, criei a primeira versão que foram tendo pequenas atualizações durante o ano. Essa primeira versão, no entanto, ainda era complexa para alguém sem experiência instalar e exigia que configurasse o banco de dados manualmente, que atualizasse o banco manualmente e diversas funções importantes ainda não estavam definidas, nem mesmo importava o .csv. Além de tudo, era feio e havia pouca usabilidade. Porém, funcionava.

Primeira versão do PortilloMail

A partir da metade de 2015 até a metade de 2016, me empenhei em um sistema de frente de loja em Java, por isso não tive muito tempo para atualizações. Após finalmente concluir o sistema e homologa-lo, eu retomei o projeto PortilloMail e coloquei mais novas funcionalidades, que resultou nesta nova versão 0.9 (ainda há coisas para uma próxima atualização, para eu considerar 1.0).

Como instalar o PortilloMail?

É fácil, é muito fácil, para eu, você e todo mundo cantar junto. E para facilitar ainda mais, fiz um vídeo passo a passo mostrando a instalação. Porém, se você quer fazer isso com mais calma, siga os passos descritos abaixo.

Você vai precisar, pelo menos, da versão 5.4 do PHP. O método exec(), precisa estar habilitado no php.ini. Se por acaso der falha no envio do email, consulte sua hospedagem para verificar.

Primeiro, clique no grande botão de download, lá em no começo da página, ou clique aqui. Será baixado o arquivo PortilloMail.zip, que possui todos os arquivos do sistema.

Agora envie os arquivos para uma pasta no seu servidor / hospedagem. Você pode dar o nome que você quiser a essa pasta. Em seguida, descompacte a pasta.

Uma vez enviado os arquivos, ainda no seu servidor / hospedagem, configure um novo banco de dados, defina-o um usuário, e dê previlégios a esse usuário. Se você sentir dificuldades em fazer isso, o vídeo acima mostra como fazer isso em uma hospedagem com cPanel. Caso sua hospedagem não possua o cPanel, você pode pedir ajuda ao suporte dela, pois é um processo muito simples.

Pronto, agora você pode usar o instalador Wizard, do PortilloMail.

Acesse o seu site, na pasta que você criou, mais “/instalador”. Por exemplo, se seu site é meusite.com, e você colocou os arquivos na pasta /mailing, você deverá acessar:
http://meusite.com.br/mailing/instalador, no navegador de sua preferência.

Você passará por todos os passos para a instalação, todas as instruções estarão no próprio instalador e são bem simples, ele é todo guiado. Se ainda sim sentir alguma dúvida, pode ver o vídeo acima onde eu preencho todos os dados.

Por fim, o sistema irá finalizar a instalação excluindo a pasta instalador. Isso é feito para sua segurança e garantir que ninguém sobre-escreva seus dados. Após o término da instalação, você já pode acessar o sistema, acessando a pasta que você criou anteriormente.

Como utilizar o PortilloMail?

Assim que você entrar no PortilloMail, você já cai na página de emails enviados, que vai estar vazia, obviamente. Mas antes de começar a enviar emails, é necessário criar os grupos. Você precisará selecionar um grupo (ou todos) quando for enviar um email. Os contatos ficam armazenados em grupos, por questão de organização.

Vá na página de grupos e crie o primeiro grupo. Apenas digite um nome e descrição e clique em Salvar. O grupo será adicionado automaticamente. você pode manipular grupos a qualquer momento.

Agora que você já tem os grupos, você precisa de contatos. Há duas formas de adicionar contatos ao PortilloMail. Você pode adicionar um por um, através da página de contatos, ou você pode fazer o upload de um arquivo .csv.

Como importar os meus contatos?

A versão atual do nosso sistema de emailmarketing permite que você importe arquivos .csv. Para fazer a importação acesse a página de configurações.

A formatação desses arquivos segue a regra “email;nome;telefone”, separado por ponto e vírgula ( ; ).

Usando o seu aplicativo de planilhas eletrônicas favorito (como excel, calc, numbers), ou um sistema particular, formate seus contatos na ordem EMAIL, NOME e TELEFONE, não precisa colocar cabeçalho.  Exporte para CSV. Caso ele pergunte, selecione para separar as colunas por ponto e vírgula ( ; ), enquanto que as linhas são separadas por quebra de linha.

Em seguida, escolha o grupo para onde os contatos serão importados. Por fim, selecione o arquivo .csv e clique no botão importar. Aguarde até que o arquivo seja importado e ele retornará a informação com o sucesso e os possíveis erros.

Enviando Emails

Hora da diversão, vamos enviar emails. Vá na página de Novo Email, selecione o email de envio e o grupo qual serão enviados os emails. Em seguida, digite alguns emails adicionais, caso você deseje que mais pessoas fora do grupo recebam os emails, e o assunto do email.

O editor de texto é HTML, então sinta-se à vontade para formatar facilmente o e-mail da forma que você quiser. Utilize a opção Ferramentas>Código Fonte, caso você já tenha um layout pronto que você queira importar.

Caso deseje fazer o upload de uma imagem, simplesmente vá em Inserir > Inserir/Editar Imagem e clique no ícone de pasta para selecionar a imagem no seu computador e adicionar ao texto.

Por fim, clique no botão Enviar.

Você será enviado, então, para uma página de confirmação. Você poderá visualizar o resumo dos dados do email, assim como pré-visualizar o email montado. Por questão de segurança, envie um email teste para você, digitando o email no campo e clicando em Enviar Teste e verifique como chegou. Caso esteja satisfatório, clique no botão Enviar Email e o sistema começará os envios.

Você pode acompanhar o processo de envio através da tela Emails Enviados. Lá você pode acompanhar o status do envio, verificar quantas pessoas visualizaram o email, verificar quantas pessoas clicaram em algum link do email, ou retomar o processo de envio, caso haja algum problema com o servidor. Ainda é possível acompanhar quando foi enviado o último email do processo ou a hora que terminou os envios, se for o caso.

Quando o email não foi enviado ou envio foi interrompido

Quando os emails ainda estão sendo enviados

Quando todos os emails já foram enviados

Importante:

Evite enviar duas ou mais mensagens ao mesmo tempo. Se fizer isso, diminua a quantidade de emails por hora, na tela de configurações pois ele considerará o multiplo de emails de acordo com a quantidade de mensagens que estão sendo enviadas.

E agora? Qual o próximo passo?

O PortilloMail não vai ficar parado. Existem planos para novas atualizações, que serão:

  • Cadastro de emails respostas
  • Cadastro de múltiplos servidores de envio
  • Automação no gerenciamento de horários de envio de emails
  • Envio de grupos simultâneos
  • Gráficos
  • Agendamento de Início de envios
  • Outras opções de importação de contatos
  • Versão desktop com envio de dados via FTP
  • Otimização de metadados para especificar tipo de email
  • Melhorias com verificação no instalador

Caso você tenha alguma sugestão, fique à vontade para enviar um email para rodrigo@portillodesign.com.br, com o assunto PortilloMail. Você também pode buscar ajuda através da nossa página do Facebook, ou através de nosso grupo oficial de design e desenvolvimento.

Como posso ajudar?

Considere ajudar um humilde desenvolvedor. Para isso, você pode fazer uma doação, através do PagSeguro, ou ajudar doando um key code da Steam ou de algum aplicativo interessante.

Veja a lista de desejos na Steam.

Informações para Desenvolvedores

O PortilloMail é de código aberto e protegido sob a licença Mozilla. Isso quer dizer que você pode reutilizar o código em projetos privados ou públicos, porém não poderá disponibilizá-lo com outro nome, sem as devidas referências e nem vende-lo. Você pode encontrar o código aberto completo através do GitHub, assim como suas atualizações intermediárias.

Programadores: Sim, as variáveis e comentários estão escritos em português. Isso vai ser alterado nas próximas atualizações e serão escritos em inglês. O fato é que esse sistema foi criado rápido e com o tempo foi criando proporções maiores. Além disso, programei o sistema em meu tempo livre e o objetivo inicial, ao abrir o código, era ajudar novos programadores em seus estudos. Por esse mesmo motivo, a maior parte do código é procedural e possui lixos. Os lixos do código estão sendo corrigidos com as atualizações.

Designers: Vocês pode modificar o arquivo css/estilo.css para personalizar a aparência do sistema. Por ter sido desenvolvido apenas por mim, até o momento, e ter que cumprir prazos, o CSS possui muito lixo e baixo reaproveitamente. Isso será melhorado com as futuras atualizações. Não foi utilizado nenhum tipo de framework CSS (sou contra) e seu uso será otimizado com futuras atualizações.

Por favor, não retire a mensagem Powered By PortilloDesign, no rodapé.

Obrigado por utilizar o PortilloMail. Seu feedback é o mais importante. Visite e leia mais do blog para notícias e informações sobre novos projetos.

Dúvidas?
Entre em um de nossos grupos ou deixe um comentário:

Grupo no Facebook Grupo no Telegram
Entre para o Grupo Design e Programação no Telegram