top of page
Search

Greenmail download: como baixar e instalar o servidor de e-mail para testes de desenvolvimento

  • michaelstevens1988
  • Aug 26, 2023
  • 9 min read


GreenMail Download: Como testar aplicativos baseados em e-mail com um servidor de correio virtual




Se você é um desenvolvedor que trabalha com aplicativos, serviços ou sistemas baseados em e-mail, sabe como é importante testá-los minuciosamente antes de implantá-los na produção. No entanto, testar a funcionalidade de e-mail pode ser um desafio, especialmente se você não tiver acesso a um servidor de e-mail ativo ou não quiser enviar e-mails reais para destinatários reais. É aí que o GreenMail é útil.


O que é GreenMail e por que você precisa dele?




O GreenMail é um conjunto de testes intuitivo e fácil de usar de servidores de e-mail para fins de teste. Ele permite que você envie, receba e verifique e-mails incorporando-o em um teste de unidade ou executando-o como um contêiner autônomo. O GreenMail atua como um servidor de correio virtual (mocking/sandbox) e suporta protocolos de correio comuns como SMTP, POP3, IMAP com suporte a soquete SSL. Ele também fornece contas de usuário e credenciais configuráveis, para que você possa simular diferentes cenários e casos.




greenmail download



Recursos e benefícios do GreenMail




Algumas das principais características e benefícios do uso do GreenMail são:


  • É 100% baseado em Java, portanto pode ser executado em qualquer plataforma que suporte Java.



  • É de código aberto e gratuito para uso sob a licença Apache V2.0.



  • É fácil de integrar com estruturas de teste populares, como JUnit, TestNG, Spring, etc.



  • É leve e rápido, por isso não consome muitos recursos nem afeta o desempenho do seu aplicativo.



  • É confiável e seguro, então você não precisa se preocupar com spam, phishing ou vazamento de dados.



Protocolos e padrões suportados pelo GreenMail




O GreenMail suporta os seguintes protocolos e padrões:


  • SMTP (Simple Mail Transfer Protocol) para envio de e-mails.



  • POP3 (Post Office Protocol) para recuperar e-mails de um servidor.



  • IMAP (Internet Message Access Protocol) para acessar e gerenciar e-mails em um servidor.



  • SSL (Secure Sockets Layer) para criptografar a comunicação entre o cliente e o servidor.



  • Jakarta Mail (anteriormente JavaMail) por fornecer uma estrutura independente de plataforma e independente de protocolo para enviar e receber e-mails.



Como baixar e instalar GreenMail




Opções de download e requisitos




Você pode baixar o GreenMail de várias fontes, dependendo de suas preferências e necessidades. As opções mais comuns são:


O site oficial: [1](


O repositório GitHub: [2](


  • O repositório Maven Central: com.icegreen:greenmail:



A versão mais recente do GreenMail no momento da redação deste artigo é 2.1.0-alpha-1, que é baseada no Jakarta Mail 2.1 / Jakarta EE 10. No entanto, você também pode usar versões mais antigas compatíveis com diferentes versões do JavaMail ou do Jakarta Mail.


Para executar o GreenMail, você precisa ter o Java 11 ou superior instalado em seu sistema. Você também precisa ter o Maven 3.8 ou superior se quiser criar o GreenMail a partir do código-fonte ou usá-lo como uma dependência do Maven.


Etapas de instalação e configuração




As etapas de instalação variam dependendo de como você deseja usar o GreenMail. Aqui estão alguns cenários comuns:



CenárioPassosCenário


Passos


  • Incorporando o GreenMail em um teste de unidadeAdicione GreenMail como uma dependência Maven em seu arquivo pom.xml.

  • Crie uma instância GreenMail com a configuração desejada (por exemplo, porta, usuário, senha, etc.) em sua classe de teste.

  • Inicie e pare o servidor GreenMail nos métodos @Before e @After de sua classe de teste.

  • Use a API GreenMail para enviar, receber e verificar e-mails em seus métodos de teste.



  • Executando o GreenMail como um contêiner autônomoBaixe o greenmail-standalone-.jar do site oficial ou do repositório GitHub.

  • Execute o arquivo jar com o comando java -jar e especifique as opções desejadas (por exemplo, porta, usuário, senha, etc.).

  • Use um cliente de e-mail (por exemplo, Thunderbird, Outlook, etc.) ou um navegador da Web para se conectar ao servidor GreenMail e enviar, receber e verificar e-mails.



  • Usando o GreenMail como uma imagem do DockerExtraia a imagem greenmail/autônoma do repositório do Docker Hub.

  • Execute a imagem com o comando docker run e especifique as opções desejadas (por exemplo, porta, usuário, senha, etc.).

  • Use um cliente de e-mail (por exemplo, Thunderbird, Outlook, etc.) ou um navegador da Web para se conectar ao servidor GreenMail e enviar, receber e verificar e-mails.



Como usar o GreenMail para testar aplicativos baseados em e-mail




Depois de instalar e configurar o GreenMail, você pode usá-lo para testar vários aspectos de seus aplicativos baseados em e-mail. Aqui estão alguns exemplos de como usar o GreenMail para diferentes propósitos:


Incorporando o GreenMail em um teste de unidade




Se você deseja testar a funcionalidade de seu e-mail isoladamente de outros componentes ou dependências, pode incorporar o GreenMail em um teste de unidade e usá-lo como uma ferramenta de zombaria ou fragmentação. Por exemplo, você pode usar o GreenMail para testar como seu aplicativo envia uma confirmação por e-mail após o registro de um usuário ou como ele lida com uma solicitação de e-mail recebida. Aqui está um trecho de código de amostra que mostra como incorporar o GreenMail em um teste JUnit:



import com.icegreen.greenmail.junit5.GreenMailExtension; import com.icegreen.greenmail.util.GreenMailUtil; import com.icegreen.greenmail.util.ServerSetupTest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; importar javax.mail.internet.MimeMessage; import static org.junit.jupiter.api.Assertions.assertEquals; public class EmailTest // Cria uma extensão GreenMail com suporte a SMTP e IMAP @RegisterExtension static GreenMailExtension greenMail = new GreenMailExtension(ServerSetupTest.SMTP_IMAP); @Test public void testSendAndReceiveEmail() throws Exception // Definir os endereços do remetente e do destinatário String sender = "test@example.com"; String receiver = "user@example.com"; // Envia um e-mail usando o método utilitário do GreenMail GreenMailUtil.sendTextEmailTest(receptor, remetente, "Olá", "Este é um e-mail de teste"); // Aguarda a chegada do e-mail greenMail.waitForIncomingEmail(1); // Recupera o e-mail usando IMAP MimeMessage[] messages = greenMail.getReceivedMessages(); // Verifique o conteúdo do e-mail assertEquals(1, messages.length); assertEquals("Olá", mensagens[0].getSubject()); assertEquals("Este é um e-mail de teste", GreenMailUtil.getBody(messages[0]));


Executando o GreenMail como um contêiner autônomo




Se você deseja testar a funcionalidade de seu e-mail em integração com outros componentes ou dependências, pode executar o GreenMail como um contêiner autônomo e usá-lo como uma ferramenta de sandbox ou simulador. Por exemplo, você pode usar o GreenMail para testar como seu aplicativo interage com um servidor de correio externo ou como ele lida com diferentes protocolos de correio. Aqui está um exemplo de comando que mostra como executar o GreenMail como um contêiner autônomo:



java -jar greenmail-standalone-2.1.0-alpha-1.jar -Dgreenmail.setup.test.all -Dgreenmail.users=test1:pwd1@test.com,test2:pwd2@test.com -Dgreenmail.verbose


Este comando iniciará um servidor GreenMail com suporte a SMTP, POP3, IMAP e SSL nas portas padrão. Ele também criará duas contas de usuário: test1@test.com com a senha pwd1 e test2@test.com com a senha pwd2. Ele também habilitará o log detalhado para fins de depuração.


Você pode usar um cliente de e-mail (por exemplo, Thunderbird, Outlook, etc.) ou um navegador da Web para se conectar ao servidor GreenMail e enviar, receber e verificar e-mails. Por exemplo, você pode usar o seguinte URL para acessar a interface da Web do GreenMail:



Este URL mostrará uma lista de todos os e-mails que foram enviados ou recebidos pelo servidor GreenMail. Você também pode visualizar os detalhes de cada e-mail, como cabeçalhos, corpo e anexos. Você também pode excluir ou baixar os e-mails como desejar. Usando o GreenMail como uma imagem do Docker




Se você deseja testar a funcionalidade de seu e-mail em um ambiente em contêiner, pode usar o GreenMail como uma imagem do Docker e executá-la como um serviço. Por exemplo, você pode usar o GreenMail para testar como seu aplicativo funciona em uma nuvem ou em uma arquitetura de microsserviço. Aqui está um exemplo de comando que mostra como executar o GreenMail como uma imagem do Docker:



docker run -d -p 3025:3025 -p 3110:3110 -p 3143:3143 -p 3465:3465 -p 3993:3993 -p 3995:3995 -e GREENMAIL_OPTS='-Dgreenmail.setup.test.all -Dgreenmail.users=test1:pwd1@test.com,test2 :pwd2@test.com' greenmail/standalone


Este comando extrairá a imagem greenmail/autônoma do repositório do Docker Hub e a executará como um contêiner desanexado. Ele também irá expor as portas para protocolos SMTP, POP3, IMAP e SSL e definir a variável de ambiente GREENMAIL_OPTS para configurar o servidor com duas contas de usuário: test1@test.com com senha pwd1 e test2@test.com com senha pwd2.


Você pode usar um cliente de e-mail (por exemplo, Thunderbird, Outlook, etc.) ou um navegador da Web para se conectar ao servidor GreenMail e enviar, receber e verificar e-mails.Você também pode usar o comando docker logs para visualizar a saída do servidor GreenMail.


Como obter ajuda e suporte para o GreenMail




Se você encontrar algum problema ou tiver alguma dúvida ao usar o GreenMail, poderá obter ajuda e suporte de várias fontes. Aqui estão alguns deles:


Documentação e exemplos




O site oficial do GreenMail fornece uma documentação abrangente que cobre todos os aspectos do uso do GreenMail, como instalação, configuração, uso, referência da API, etc. Você pode acessar os exemplos aqui: [4](


Perguntas frequentes e problemas




O repositório GitHub do GreenMail fornece uma seção de perguntas frequentes que responde a algumas das perguntas mais frequentes sobre o GreenMail, como compatibilidade, limitações, solução de problemas etc. Você pode acessar o rastreador de problemas aqui: [6](


Contribuição e feedback




Se você deseja contribuir para o desenvolvimento do GreenMail ou fornecer feedback sobre seus recursos ou desempenho, sinta-se à vontade para fazê-lo. Você pode bifurcar o repositório GitHub do GreenMail e enviar solicitações pull com suas alterações ou melhorias. Você também pode entrar na lista de discussão ou na sala de bate-papo do GreenMail e compartilhar suas ideias ou opiniões com outros usuários e desenvolvedores. Você pode acessar esses canais aqui: [7]( [8]( [9](


Conclusão




Neste artigo, aprendemos o que é GreenMail e por que precisamos dele para testar aplicativos baseados em e-mail. Também aprendemos como baixar e instalar o GreenMail de diferentes maneiras e como usá-lo para diferentes propósitos. Também aprendemos como obter ajuda e suporte para o GreenMail de várias fontes.


O GreenMail é uma ferramenta poderosa e versátil que pode nos ajudar a testar nossa funcionalidade de e-mail com facilidade e confiança. É fácil de usar, confiável, seguro e compatível com várias plataformas e estruturas. Também é de código aberto e gratuito para uso sob a licença Apache V2.0.


Se você está procurando uma maneira simples e eficaz de testar sua funcionalidade de e-mail com facilidade e confiança, você definitivamente deveria experimentar o GreenMail. Você pode baixá-lo do site oficial ou do repositório GitHub e começar a testar seus aplicativos baseados em e-mail em minutos. Você também pode obter ajuda e suporte na documentação, FAQ, rastreador de problemas, lista de discussão ou sala de bate-papo do GreenMail. Você também pode contribuir para o desenvolvimento do GreenMail ou fornecer feedback sobre seus recursos ou desempenho.


Esperamos que você tenha gostado deste artigo e aprendido algo novo e útil. Se você tiver alguma dúvida ou comentário, sinta-se à vontade para deixá-los abaixo. Obrigado pela leitura e bons testes!


Perguntas frequentes




Aqui estão algumas das perguntas frequentes sobre o GreenMail:


  • Qual é a diferença entre o GreenMail e outras ferramentas de teste de e-mail?



O GreenMail é diferente de outras ferramentas de teste de e-mail de várias maneiras. Por exemplo, GreenMail é:


  • 100% baseado em Java, portanto, pode ser executado em qualquer plataforma que suporte Java.



  • Código aberto e livre para usar sob a licença Apache V2.0.



  • Fácil de integrar com estruturas de teste populares, como JUnit, TestNG, Spring, etc.



  • Leve e rápido, por isso não consome muitos recursos nem afeta o desempenho do seu aplicativo.



  • Confiável e seguro, para que você não precise se preocupar com spam, phishing ou vazamento de dados.



Outras ferramentas de teste de e-mail podem ter recursos, vantagens ou desvantagens diferentes, dependendo de suas necessidades e preferências.


  • Como posso alterar as portas padrão do GreenMail?



Você pode alterar as portas padrão do GreenMail usando a opção -Dgreenmail.setup.test ao executar o GreenMail como um contêiner independente ou uma imagem do Docker. Por exemplo, você pode usar o seguinte comando para alterar a porta SMTP para 2525 e a porta IMAP para 1433:



java -jar greenmail-standalone-2.1.0-alpha-1.jar -Dgreenmail.setup.test.smtp:2525 -Dgreenmail.setup.test.imap:1433


Você também pode usar a classe ServerSetup ao incorporar o GreenMail em um teste de unidade. Por exemplo, você pode usar o seguinte trecho de código para alterar a porta SMTP para 2525 e a porta IMAP para 1433:



import com.icegreen.greenmail.junit5.GreenMailExtension; import com.icegreen.greenmail.util.ServerSetup; public class EmailTest // Cria uma configuração de servidor personalizada com portas SMTP e IMAP private static final ServerSetup SMTP = new ServerSetup(2525, null, ServerSetup.PROTOCOL_SMTP); private static final ServerSetup IMAP = new ServerSetup(1433, nulo, ServerSetup.PROTOCOL_IMAP); // Cria uma extensão GreenMail com a configuração personalizada do servidor @RegisterExtension static GreenMailExtension greenMail = new GreenMailExtension(SMTP, IMAP); // O resto da classe de teste...


  • Como posso ativar o suporte SSL para o GreenMail?



Você pode ativar o suporte SSL para o GreenMail usando a opção -Dgreenmail.setup.test ao executar o GreenMail como um contêiner independente ou uma imagem do Docker. Por exemplo, você pode usar o seguinte comando para ativar o suporte SSL para todos os protocolos:



java -jar greenmail-standalone-2.1.0-alpha-1.jar -Dgreenmail.setup.test.all


Você também pode usar a classe ServerSetupTest ao incorporar GreenMail em um teste de unidade. Por exemplo, você pode usar o seguinte trecho de código para habilitar o suporte SSL para todos os protocolos:



import com.icegreen.greenmail.junit5.GreenMailExtension; import com.icegreen.greenmail.util.ServerSetupTest; public class EmailTest // Cria uma extensão GreenMail com suporte SSL para todos os protocolos @RegisterExtension static GreenMailExtension greenMail = new GreenMailExtension(ServerSetupTest.ALL); // O resto da classe de teste...


  • Como posso criar várias contas de usuário para o GreenMail?



Você pode criar várias contas de usuário para o GreenMail usando a opção -Dgreenmail.users ao executar o GreenMail como um contêiner autônomo ou uma imagem do Docker. Por exemplo, você pode usar o seguinte comando para criar três contas de usuário: test1@test.com com senha pwd1, test2@test.com com senha pwd2 e test3@test.com com senha pwd3:



java -jar greenmail-standalone-2.1.0-alpha-1.jar -Dgreenmail.users=test1:pwd1@test.com,test2:pwd2@test.com,test3:pwd 3@test.com


Você também pode usar a classe GreenMailUserUtil ao incorporar GreenMail em um teste de unidade. Por exemplo, você pode usar o seguinte trecho de código para criar três contas de usuário: test1@test.com com senha pwd1, test2@test.com com senha pwd2 e test3@test.com com senha pwd3:



import com.icegreen.greenmail.junit5.GreenMailExtension; import com.icegreen.greenmail.user.GreenMailUser; import com.icegreen.greenmail.user.GreenMailUserUtil; public class EmailTest // Cria uma extensão GreenMail com suporte a SMTP e IMAP @RegisterExtension static GreenMailExtension greenMail = new GreenMailExtension(ServerSetupTest.SMTP_IMAP); // Cria três contas de usuário no método @BeforeAll da classe de teste @BeforeAll public static void setUp() GreenMailUser user1 = GreenMailUserUtil.createUser(greenMail.getImap(), "test1@test.com", "pwd1"); GreenMailUser user2 = GreenMailUserUtil.createUser(greenMail.getImap(), "test2@test.com", "pwd2"); GreenMailUser user3 = GreenMailUserUtil.createUser(greenMail.getImap(), "test3@test.com", "pwd3"); // O restante da classe de teste ...


  • Como posso verificar e-mails com o GreenMail?



Você pode verificar e-mails com o GreenMail usando a API do GreenMail ou a interface da web. Por exemplo, você pode usar os seguintes métodos para verificar e-mails:


  • getReceivedMessages(): retorna um array de todas as mensagens recebidas.



  • getReceivedMessagesForDomain(String domain): retorna um array de todas as mensagens recebidas para um determinado domínio.



  • getReceviedMessagesForDomain(String domain, String user): retorna um array de todas as mensagens recebidas para um determinado usuário e domínio.



  • getReceivedMessagesByCriteria(String critérios): retorna uma matriz de todas as mensagens recebidas que correspondem a um determinado critério (por exemplo, assunto, de, para, etc.).



  • waitForIncomingEmail(long timeout, int emailCount): espera que um determinado número de e-mails chegue dentro de um determinado tempo limite.



Você também pode usar a interface da web para visualizar e verificar e-mails acessando o seguinte URL:




Este URL mostrará uma lista de todos os e-mails que foram enviados ou recebidos pelo servidor GreenMail. Você também pode visualizar os detalhes de cada e-mail, como cabeçalhos, corpo e anexos.Você também pode excluir ou baixar os e-mails como desejar. 0517a86e26


 
 
 

Recent Posts

See All

תגובות


bottom of page