Anslut till SMTP-server med Java

SMTP är ett vanligt använt e-postprotokoll för att skicka e-postmeddelanden från klientapplikationerna till e-postservrarna. Innan du kommunicerar med en SMTP-server måste du upprätta en anslutning. I den här artikeln kommer du att lära dig hur du ansluter till en SMTP-server programmatiskt med hjälp av Java. Dessutom kommer artikeln att täcka hur man ansluter till SMTP-servrarna via SOCKS eller HTTP-proxyer.

Java API för att ansluta till SMTP-server

För att ansluta till en SMTP-server kommer vi att använda Aspose.Email for Java. Det är ett kraftfullt API som låter dig skapa funktionsrika e-postklientapplikationer med Java. Dessutom ger det förenklade sätt att ansluta till SMTP-servrarna. Du kan antingen ladda ner API:s JAR eller installera den med hjälp av följande Maven-konfigurationer.

<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>

Anslut till en SMTP-server med Java

Följande är stegen för att ansluta till en SMTP-server.

  • Skapa ett objekt av klassen SmtpClient och initiera det med värdens adress.
  • Ställ in användarnamn, lösenord, port och säkerhetsalternativ med SmtpClient-objektet.
  • Skicka mejlet.

Följande kodexempel visar hur du ansluter till en SMTP-server med Java.

// Skapa ett objekt av SmtpClient
SmtpClient client = new SmtpClient("smtp.gmail.com");

// Ställ in användarnamn, lösenord, port och säkerhetsalternativ
client.setUsername("your.email@gmail.com");
client.setPassword("your.password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

// Skicka e-mail
client.send(new MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Test email"));

Använd proxy för att ansluta till en SMTP-server

I olika fall är SMTP-servrarna säkrade med proxyn. Därför måste du ansluta till SMTP-servern via proxyservern. För sådana fall tillhandahåller Aspose.Email för Java följande metoder.

Anslut till SMTP-servrar via SOCKS Proxy i Java

Aspose.Email för Java tillhandahåller stöd för version 4, 4a och 5 av SOCKS proxyprotokoll. Följande är stegen för att ansluta till en SMTP-server via SOCKS-proxy.

  • Skapa ett objekt av klassen SmtpClient och initiera det med värden, användarnamnet och lösenordet.
  • Skapa ett objekt av klassen SocksProxy och ställ in serverns adress, port och SOCKS-version.
  • Ställ in proxy med metoden SmtpClient.setProxy(SocksProxy).
  • Skicka e-mail.

Följande kodexempel visar hur man ansluter till en SMTP-server via SOCKS-proxy.

// Skapa ett objekt av SmtpClient
SmtpClient client = new SmtpClient("smtp.domain.com", "username", "password");

// Ställ in säkerhetsalternativ
client.setSecurityOptions(SecurityOptions.SSLImplicit);

// Proxyinställningar
String proxyAddress = "192.168.203.142"; // proxy address
int proxyPort = 1080; // proxy port

// Skapa och ställ in proxy
SocksProxy proxy = new SocksProxy(proxyAddress, proxyPort, SocksVersion.SocksV5);
client.setProxy(proxy);

// Skicka epost
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)"));

Anslut till en SMTP-servrar via HTTP-proxy i Java

Följande är stegen för att ansluta till en SMTP-server via HTTP-proxy.

  • Skapa ett objekt av klassen HttpProxy och initiera det med värden och portnumret.
  • Skapa ett objekt av klassen SmtpClient och ställ in värd, användarnamn, lösenord och port.
  • Ställ in proxy med metoden SmtpClient.setProxy(HttpProxy).
  • Skicka e-mail.

Följande kodexempel visar hur man ansluter till en SMTP-server via HTTP-proxy.

// Skapa ett objekt av HttpProxy
HttpProxy proxy = new HttpProxy("18.222.124.59", 8080);

// Skapa SMTP-klient
try (SmtpClient client = new SmtpClient("host", 587, "username", "password")) {
  
    // Ställ in proxy
    client.setProxy(proxy);
  
    // Skicka e-mail
    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)"));
}

Skaffa en gratis API-licens

Du kan få en gratis tillfällig licens för att använda Aspose.Email för Java utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du ansluter till en SMTP-server programmatiskt med Java. Dessutom har du sett hur du använder SOCKS och HTTP-proxyer för att ansluta till en SMTP-server. Du kan utforska mer om Aspose.Email för Java med hjälp av dokumentation. Dessutom kan du skicka in dina frågor via vårt forum.

Se även