0

Javamail (v.1.5.4) を使用して POP/SMTP メール サーバーにメールを送信および確認する Java アプリケーションがあります。このアプリケーションは、私の要求をブロックするプロキシ (f*ck!) がある企業ネットワークで実行する必要があります。私は可能な解決策をグーグルで検索しました.Javamailは、SOCKS5を使用できると言います:

Q: JavaMail をプロキシ サーバー経由で動作するように設定するにはどうすればよいですか? [更新しました!]

A: JavaMail は現在、Web プロキシ サーバーを介したメール サーバーへのアクセスをサポートしていません。プロキシ サーバーを使用する主な理由の 1 つは、企業ネットワーク内からの HTTP 要求が企業ファイアウォールを通過できるようにすることです。通常、ファイアウォールはインターネットへのほとんどのアクセスをブロックしますが、プロキシ サーバーからの要求は通過させます。さらに、企業ネットワーク内のメール サーバーは電子メールに対して同様の機能を実行し、SMTP 経由でメッセージを受け入れてインターネット上の最終的な宛先に転送し、受信メッセージを受け入れて適切な内部メール サーバーに送信します。

その解決策は私には有効ではないため、新しい代替手段を探す必要があります。カスタムを実装していると言う人もいますが、それでSocketFactory十分かどうかはわかりません。誰か試した?

別の解決策として別のライブラリを使用することもできますが、このプロキシを回避できるものは見つかりません。

誰かがこの問題を治療しましたか? どのように解決しますか?

概要

問題: Java アプリケーションで電子メールを送信して読む必要がありますが、プロキシが要求をブロックします。

私が試したことは何ですか?javamail を使用して、SOCKS5 ソリューションを使用しようとしましたが、効果がありませんでした。

私が探しているものは何ですか?このプロキシを回避する方法。誰かが習慣について語っていますSocketFactory(しかし、これが有効かどうかはわかりません)。Javamail に代わるものはありません。

よろしく!!

4

4 に答える 4

1

実際、JavaMail は SOCKS プロキシをサポートしていますが、認証されたプロキシはサポートしていません。

その解決策は私には有効ではありません

しかし、あなたは理由を説明しません。

独自のソケット ファクトリの構成を必要としない、SOCKS プロキシ (認証されたものであっても) を使用して Java Mail を構成する別の方法があります。Simple Java Mailと呼ばれるオープン ソース ライブラリがあり(完全な開示: 私はそれを維持しています)、これは非常に使いやすいものです。

new Mailer(
        new ServerConfig("smtp.host.com", 587, "user@host.com", "password"),
        TransportStrategy.SMTP_TLS,
        new ProxyConfig("socksproxy.host.com", 1080, "proxy user", "proxy password")
).sendMail(email);

ただし、プロキシが実際に HTTP プロキシである場合は運が悪く、 Corkscrewconnectなどに頼る必要があります。

于 2016-07-07T19:22:35.847 に答える
0

これはプログラムによる解決策ではありませんが、最もクリーンな方法は、会社に社内メール サーバーがあるかどうかを確認し、そのサーバーを使用してメールを送信することです。SOCKS やプロキシを使用する必要はなく、構成のみが必要です。

あなたの会社の名前で送信された電子メールが、あなたの会社からも送信されるという副次的効果が得られる場合があります。メール管理者がSPF レコードを正しく設定していれば、メールが誰かのジャンク/スパム フォルダに入るリスクが大幅に軽減されます。

于 2015-09-24T08:45:21.373 に答える