【问题标题】:I'm getting an smtp error in vb.net project away from home我在离家的 vb.net 项目中遇到 smtp 错误
【发布时间】:2020-08-28 23:35:48
【问题描述】:

我在一个运行良好的 vb.net 项目中有一个 sendmail 功能。直到我把它给别人试试。我正在从我的个人 gmail 电子邮件地址向我的工作电子邮件地址发送电子邮件。我在代码中使用端口 587,就像我说的,在家里可以正常工作。换句话说,它在我家可以正常工作,但在其他任何地方我都会收到以下错误:

任何指导,一如既往,将不胜感激!

这是我正在使用的代码:

    Try
            Dim Smtp_Server As New SmtpClient
            Dim e_mail As New MailMessage()
            Smtp_Server.UseDefaultCredentials = False
            Smtp_Server.Credentials = New Net.NetworkCredential(My.Resources.email, My.Resources.pass)



            Smtp_Server.Port = 587
            Smtp_Server.EnableSsl = True
            Smtp_Server.Host = "smtp.gmail.com"

            e_mail = New MailMessage()
            e_mail.From = New MailAddress("xxxxxxx@gmail.com")
            e_mail.To.Add("xxxxxxx@jobxxxxx.org")
            e_mail.Subject = "A Student Has Just Been Counseled by " & cmbReferredBy.SelectedItem.ToString
            e_mail.IsBodyHtml = False
            e_mail.Body = "A Notification was just created by " & sender & " Stating: " & vbNewLine & vbNewLine & txtDescriptionR.Text & vbNewLine & vbNewLine & Date.Now
            Smtp_Server.Send(e_mail)
            MsgBox("All Required Counseling Notifications Sent Successfully", vbSystemModal)

        Catch error_t As Exception
            MsgBox(error_t.ToString)
        End Try

就像我之前所说的,当我在家时,代码会按预期工作。当我将它带到其他地方(在我的笔记本电脑上),或将应用程序发送给其他人使用时,它会引发该错误。这对我来说表明端口、凭据等都很好。

【问题讨论】:

  • 错误消息是文本。将它们作为文本而不是图片发布,并适当地格式化它们。此外,不要在本来应该在问题中出现的评论中添加信息。编辑问题并添加所有相关信息。没有人必须阅读 cmets 才能理解问题。
  • 谢谢。我按照您的建议将评论移到了操作中,但错误是图像,因为我没有将它作为文本。据我所知,它读起来与文本完全相同,因为它是文本的图片。无论如何,您是否有任何帮助,或者只是需要展示一些肌肉并保持批评?
  • 如果你不想被批评,那就不要再让人们更难回答你的问题了。该站点应该以某种方式使用,而您没有这样做。如果您不打算自己阅读如何使用它,那么当有人告诉您时不要抱怨。我在这里回答了很多问题,我希望我和其他人不必浪费时间试图获取我们需要的所有信息,以便自愿抽出时间来帮助您。如果您没有文本形式的错误消息,请获取它。例如,如果我们想在线搜索错误消息,我们无法复制图片。
  • @jmcilhinney 另外,只是为了弄清楚我为什么发布这张图片。由于代码有效,我无法在家中重现该错误。当我和其他几个人在工作中使用它时引发了错误。我没有在 Visual Studio 中运行它,所以我无法访问错误的文本版本。我希望这能填补我留下的一些空白。我理解为什么文本更好,但当它发生时我无法访问它。
  • 当显示消息框时,您只需按 Crtl+C 即可将文本复制到剪贴板。它不仅复制了消息,还复制了几秒钟以删除无关的内容,并且您将堆栈跟踪作为文本。

标签: vb.net smtp sendmail


【解决方案1】:

错误消息显示“需要安全连接”或“客户端未通过身份验证”,但您没有显示您的代码供我们检查。

确保您已将 .EnableSSL 设置为 True 并且端口号正确,但我怀疑它是身份验证。你是如何传递你的凭据的?

尝试将“UseDefaultCredentials”设置为 false 并将凭据提供为:

New NetworkCredential(SMTPUserName, SMTPPassword)

其中 SMTPUserName name 是您的 Gmail 地址,SMTPPassword 是您的电子邮件密码。

但是,正如我所说,没有看到您的代码,这只是一个猜测。

【讨论】:

  • 谢谢乔恩。不过,代码已经可以工作了。我只是想弄清楚为什么当别人使用它时它不起作用,或者当我把它带到自己家外面时。似乎发送邮件的尝试被阻止了,也许是被其他网络阻止了,但我不确定为什么,而且这个错误并没有透露太多。
  • 检查网络凭据的配置方式,因为如果未明确设置它们,它们在不同的 PC 上可能会有所不同。如果您确定设置正确,请使用相同的设置在远程 PC 上设置电子邮件客户端并尝试发送电子邮件。如果失败,请跟踪该故障。如果可行,它一定在你的代码中。
  • 对不起,我还没有回复伙计们。我刚在医院住了8天。我会尽快重新审视它。再次感谢您的所有意见!
  • 好的...所以这就是问题所在。它位于 Intranet 上,因此不需要凭据/SSL/等。一旦我删除了端口等,它就都起作用了。再次感谢所有回复!
猜你喜欢
  • 2022-07-15
  • 1970-01-01
  • 2021-11-26
  • 2016-12-03
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2021-06-08
相关资源
最近更新 更多