使用 Java 连接到 SMTP 服务器

SMTP 是一种常用的电子邮件协议,用于将电子邮件从客户端应用程序发送到电子邮件服务器。在与 SMTP 服务器通信之前,您需要建立连接。在本文中,您将学习如何使用 Java 以编程方式连接到 SMTP 服务器。此外,本文还将介绍如何通过 SOCKS 或 HTTP 代理连接到 SMTP 服务器。

Java API 连接到 SMTP 服务器

为了连接到 SMTP 服务器,我们将使用 Aspose.Email for Java。它是一个强大的 API,可让您使用 Java 创建功能丰富的电子邮件客户端应用程序。此外,它还提供了连接到 SMTP 服务器的简化方法。您可以下载 API 的 JAR 或使用以下 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>

使用 Java 连接到 SMTP 服务器

以下是连接到 SMTP 服务器的步骤。

  • 创建一个 SmtpClient 类的对象,并使用主机地址对其进行初始化。
  • 使用 SmtpClient 对象设置用户名、密码、端口和安全选项。
  • 发送电子邮件。

以下代码示例显示了如何使用 Java 连接到 SMTP 服务器。

// 创建一个 SmtpClient 对象
SmtpClient client = new SmtpClient("smtp.gmail.com");

// 设置用户名、密码、端口和安全选项
client.setUsername("your.email@gmail.com");
client.setPassword("your.password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

// 发电子邮件
client.send(new MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Test email"));

使用代理连接到 SMTP 服务器

在各种情况下,使用代理来保护 SMTP 服务器。因此,您必须通过代理服务器连接到 SMTP 服务器。对于这种情况,Aspose.Email for Java 提供了以下方法。

通过 Java 中的 SOCKS 代理连接到 SMTP 服务器

Aspose.Email for Java 提供对 SOCKS 代理协议 4、4a 和 5 版本的支持。以下是通过 SOCKS 代理连接到 SMTP 服务器的步骤。

  • 创建一个 SmtpClient 类的对象,并使用主机、用户名和密码对其进行初始化。
  • 创建一个 SocksProxy 类的对象,并设置服务器的地址、端口和 SOCKS 版本。
  • 使用 SmtpClient.setProxy(SocksProxy) 方法设置代理。
  • 发电子邮件。

以下代码示例显示了如何通过 SOCKS 代理连接到 SMTP 服务器。

// 创建一个 SmtpClient 对象
SmtpClient client = new SmtpClient("smtp.domain.com", "username", "password");

// 设置安全选项
client.setSecurityOptions(SecurityOptions.SSLImplicit);

// 代理设置
String proxyAddress = "192.168.203.142"; // proxy address
int proxyPort = 1080; // proxy port

// 创建和设置代理
SocksProxy proxy = new SocksProxy(proxyAddress, proxyPort, SocksVersion.SocksV5);
client.setProxy(proxy);

// 发送电子邮件
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)"));

通过 Java 中的 HTTP 代理连接到 SMTP 服务器

以下是通过 HTTP 代理连接到 SMTP 服务器的步骤。

以下代码示例显示了如何通过 HTTP 代理连接到 SMTP 服务器。

// 创建一个HttpProxy的对象
HttpProxy proxy = new HttpProxy("18.222.124.59", 8080);

// 创建 SMTP 客户端
try (SmtpClient client = new SmtpClient("host", 587, "username", "password")) {
  
    // 设置代理
    client.setProxy(proxy);
  
    // 发电子邮件
    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)"));
}

获取免费 API 许可证

你可以获得一个免费的临时许可证 以便在没有评估限制的情况下使用 Aspose.Email for Java。

结论

在本文中,您学习了如何使用 Java 以编程方式连接到 SMTP 服务器。此外,您还了解了如何使用 SOCKS 和 HTTP 代理连接到 SMTP 服务器。您可以使用 文档 探索更多关于 Aspose.Email for Java 的信息。此外,您可以通过我们的 论坛 提交您的查询。

也可以看看