Javaを使用してSMTPサーバーに接続する

SMTPは、クライアントアプリケーションから電子メールサーバーに電子メールを送信するために一般的に使用される電子メールプロトコルです。 SMTPサーバーと通信する前に、接続を確立する必要があります。この記事では、Javaを使用してプログラムでSMTPサーバーに接続する方法を学習します。さらに、この記事では、SOCKSまたはHTTPプロキシを介してSMTPサーバーに接続する方法について説明します。

SMTPサーバーに接続するためのJavaAPI

SMTPサーバーに接続するには、Aspose.Email for Javaを使用します。これは、Javaを使用して機能豊富な電子メールクライアントアプリケーションを作成できる強力なAPIです。さらに、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サーバーに接続する手順は次のとおりです。

  • HttpProxyクラスのオブジェクトを作成し、ホストとポート番号で初期化します。
  • SmtpClientクラスのオブジェクトを作成し、ホスト、ユーザー名、パスワード、およびポートを設定します。
  • SmtpClient.setProxy(HttpProxy)メソッドを使用してプロキシを設定します。
  • メールを送る。

次のコードサンプルは、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の詳細を調べることができます。さらに、フォーラムからクエリを送信できます。

関連項目