【问题标题】:Apache SMTPClient connect times with gmailApache SMTPClient 与 gmail 的连接时间
【发布时间】: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


【解决方案1】:

解决方案是首先进行 MX 查找(就像我使用 telnet 所做的那样)。

这给了一个很好的code sample

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 1970-01-01
    • 2012-04-05
    • 2018-06-19
    • 1970-01-01
    • 2013-08-01
    • 2011-04-26
    • 1970-01-01
    • 2016-05-28
    相关资源
    最近更新 更多