java - 无法使用 java 连接到 gmail smtp 套接字,但 telnet 可以访问套接字
问题描述
我正在尝试使用 smtp.gmail.com:587 或 smtp.gmail.com:465 使用以下代码访问 gmail smtp 套接字。它给了我“java.net.ConnectException:连接被拒绝:连接”错误。当我尝试通过 Windows telnet 客户端访问端口时。Windows telnet 客户端已成功连接到套接字。我对此感到困惑。你知道原因吗?
我试图用两种不同的方式连接到互联网。其中一个是adsl调制解调器,另一个是4g调制解调器。他们都给出了同样的错误
提前感谢您的帮助。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class EchoClient {
public static void main(String[] args) throws IOException {
Socket pingSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
pingSocket = new Socket("smtp.gmail.com", 465);
out = new PrintWriter(pingSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(pingSocket.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
return;
}
out.println("ping");
System.out.println(in.readLine());
out.close();
in.close();
pingSocket.close();
}
}
java.net.ConnectException: Connection refused: connect
at java.base/java.net.PlainSocketImpl.connect0(Native Method)
at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:591)
at java.base/java.net.Socket.connect(Socket.java:540)
at java.base/java.net.Socket.<init>(Socket.java:436)
at java.base/java.net.Socket.<init>(Socket.java:213)
at EchoClient.main(EchoClient.java:15)
解决方案
推荐阅读
- c# - 如何在 VSTS 上配置单元测试名称/描述?
- log4j2 - Log4j2,如何处理访问被拒绝异常
- active-directory - 搜索过滤器中具有通配符模式的嵌套组的 Active Directory 搜索查询
- android - 无法获取 ttc 文件适用于 android 中的字体
- django - 按 id 批量删除 Django
- javascript - 用猫鼬更新值
- reactjs - 当我打开一个模式时,道具是空的 - React
- laravel - Laravel 中的查询生成器无法正常工作
- c# - c# 使用 MySQL 数据库中的后台工作人员每 5 秒更新一次数据网格视图
- html - 是否可以在下拉列表中显示一定数量的对象?(但保持休息可供搜索)