Conecte-se ao servidor SMTP usando Java

O SMTP é um protocolo de e-mail comumente usado para enviar e-mails dos aplicativos clientes para os servidores de e-mail. Antes de se comunicar com um servidor SMTP, você precisa estabelecer uma conexão. Neste artigo, você aprenderá como se conectar a um servidor SMTP programaticamente usando Java. Além disso, o artigo abordará como se conectar aos servidores SMTP via SOCKS ou proxies HTTP.

API Java para conectar ao servidor SMTP

Para conectar a um servidor SMTP, usaremos Aspose.Email for Java. É uma API poderosa que permite criar aplicativos de cliente de e-mail ricos em recursos usando Java. Além disso, fornece maneiras simplificadas de se conectar aos servidores SMTP. Você pode baixar o JAR da API ou instalá-lo usando as seguintes configurações do Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>21.3</version>
    <classifier>jdk16</classifier>
</dependency>

Conecte-se a um servidor SMTP usando Java

A seguir estão as etapas para se conectar a um servidor SMTP.

  • Crie um objeto da classe SmtpClient e inicialize-o com o endereço do host.
  • Defina as opções de nome de usuário, senha, porta e segurança usando o objeto SmtpClient.
  • Envie o e-mail.

O exemplo de código a seguir mostra como se conectar a um servidor SMTP usando Java.

// Crie um objeto de SmtpClient
SmtpClient client = new SmtpClient("smtp.gmail.com");

// Definir nome de usuário, senha, porta e opções de segurança
client.setUsername("your.email@gmail.com");
client.setPassword("your.password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

// Mande emails
client.send(new MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Test email"));

Usar proxy para conectar-se a um servidor SMTP

Em vários casos, os servidores SMTP são protegidos usando o proxy. Portanto, você deve se conectar ao servidor SMTP por meio do servidor proxy. Para esses casos, Aspose.Email para Java fornece os seguintes métodos.

Conecte-se a servidores SMTP via proxy SOCKS em Java

Aspose.Email para Java fornece suporte para as versões 4, 4a e 5 do protocolo proxy SOCKS. A seguir estão as etapas para se conectar a um servidor SMTP via proxy SOCKS.

  • Crie um objeto da classe SmtpClient e inicialize-o com o host, nome de usuário e senha.
  • Crie um objeto da classe SocksProxy e defina o endereço do servidor, porta e versão SOCKS.
  • Defina o proxy usando o método SmtpClient.setProxy(SocksProxy).
  • Mande emails.

O exemplo de código a seguir mostra como se conectar a um servidor SMTP por meio do proxy SOCKS.

// Crie um objeto de SmtpClient
SmtpClient client = new SmtpClient("smtp.domain.com", "username", "password");

// Definir opções de segurança
client.setSecurityOptions(SecurityOptions.SSLImplicit);

// Configurações de proxy
String proxyAddress = "192.168.203.142"; // proxy address
int proxyPort = 1080; // proxy port

// Criar e definir proxy
SocksProxy proxy = new SocksProxy(proxyAddress, proxyPort, SocksVersion.SocksV5);
client.setProxy(proxy);

// Enviar email
client.send(new MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy",
        "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"));

Conecte-se a um servidor SMTP via proxy HTTP em Java

A seguir estão as etapas para se conectar a um servidor SMTP via proxy HTTP.

  • Crie um objeto da classe HttpProxy e inicialize-o com o host e o número da porta.
  • Crie um objeto da classe SmtpClient e defina host, nome de usuário, senha e porta.
  • Defina o proxy usando o método SmtpClient.setProxy(HttpProxy).
  • Mande emails.

O exemplo de código a seguir mostra como se conectar a um servidor SMTP por meio de proxy HTTP.

// Crie um objeto de HttpProxy
HttpProxy proxy = new HttpProxy("18.222.124.59", 8080);

// Criar cliente SMTP
try (SmtpClient client = new SmtpClient("host", 587, "username", "password")) {
  
    // Definir proxy
    client.setProxy(proxy);
  
    // Mande emails
    client.send(new MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy",
            "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"));
}

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar o Aspose.Email for Java sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como se conectar a um servidor SMTP programaticamente usando Java. Além disso, você viu como usar SOCKS e proxies HTTP para se conectar a um servidor SMTP. Você pode explorar mais sobre o Aspose.Email para Java usando documentação. Além disso, você pode enviar suas dúvidas através do nosso fórum.

Veja também