【发布时间】:2023-03-26 03:00:02
【问题描述】:
我所做的只是这个 -
SMTPClient smtpClient = new SMTPClient();
smtpClient.connect(host);
int reply = smtpClient.getReplyCode();
if (!SMTPReply.isPositiveCompletion(reply)) {
closeConnection(host);
return false;
}
if (!smtpClient.login(SMTP_LOGIN)) {
closeConnection(host);
return false;
}
这是连接调用中的超时。在这种特定情况下,主机是“gmail.com”。
我做错了吗?是否需要其他东西才能使连接工作?
【问题讨论】:
-
我可能遗漏了什么,但您不需要提供
smtpClient对象的用户名和密码以进行连接吗? -
我尝试使用 telnet 打开与 gmail.com(而不是 gmail-smtp-in.l.google.com)端口 25 的连接。这行得通。无论如何,我只想在此连接上调用 vreify(some mail id),以验证 gmail id 是否有效。
-
如果是 gmail,您需要使用 ssl 或 tsl,这意味着还要验证端口(我相信 25 未打开)
-
我的错误,只是检查了一些示例代码,您不必在连接之前提供用户名/密码 - 如果我发现任何其他内容,我会再次发布。
-
@user3802077 正如我在评论中提到的,我不知道如何使用 SMTPClient 连接到 gmail。正如您所提到的,我还在执行 nslookup -q=mx gmail.com,然后连接到 25 端口上的非权威客户端之一。不确定如何使用标准库完成所有这些操作。
标签: java smtp apache-commons apache-commons-net