【问题标题】:MailKit/MimeKit SMTP connect errorMailKit/MimeKit SMTP 连接错误
【发布时间】:2015-01-13 17:02:27
【问题描述】:

尝试使用MailKitMimeKit 发送电子邮件时,我收到以下错误:

无法从传输连接中读取数据:连接 尝试失败,因为连接方没有正确响应 一段时间后,或建立连接失败,因为 连接的主机未能响应。

我正在使用的 vb.net 代码:

Dim mail As New MimeMessage()
mail.From.Add(New MailboxAddress("John DOE", "john.doe@hotmail.com"))
mail.To.Add(New MailboxAddress("Mary JANE", "mary.jane@yahoo.com"))
mail.Subject = "Hello!"
Dim sText As New TextPart("plain")
sText.SetText("UTF-8", "How are you Jane?")
mail.Body = sText

Using smtp = New SmtpClient()
    smtp.LocalDomain = "XX.XXX.XX.XXX"
    smtp.Connect("server33.somewebhosting.com", 465, False)
    smtp.Authenticate("myusername@somewebhosting.com", "XXXXXXXXXXXXXX")
    smtp.Send(mail)
    smtp.Disconnect(True)
End Using

超时错误发生在这一行:

smtp.Connect("server33.somewebhosting.com", 465, False)

奇怪的是,它可以在我家的电脑上运行,但不能在工作中使用。

您认为问题的原因是什么?

【问题讨论】:

  • “但不在工作” -- 我会与您的工作 IT 部门核实,以确保您可以连接到端口 465 上的 SMTP 服务器。这可能是防火墙或安全系统阻止了连接。
  • Mozilla Thunderbird 使用这些设置在我的工作计算机上工作。
  • 但它可能是一个软件防火墙,允许 Thunderbird 连接但不允许连接 IIS。

标签: vb.net smtp mailkit mimekit


【解决方案1】:

SMTP 端口 465 是 SSL 端口,因此 Connect() 的第三个参数应该是 True,而不是 False。也就是说,把代码改成这样:

smtp.Connect("server33.somewebhosting.com", 465, True)

如果更改后SmtpClient仍然无法连接,则表示服务器无法访问。

诊断问题:

  1. 联系您的管理员,确保主机名和端口正确无误
  2. 确保您没有位于阻止您连接的防火墙后面
  3. 确保 SMTP 服务器确实在线

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2017-11-02
    相关资源
    最近更新 更多