【问题标题】:Why isn't this this email sending/arriving?为什么这封电子邮件没有发送/到达?
【发布时间】:2013-10-27 10:41:45
【问题描述】:

我是 VB 新手,但我在网上找了一些 sn-ps。这就是我发现的,一切都编译好了,并且电子邮件地址是正确的,但我得到“服务不可用,正在关闭传输通道。服务器响应是:(空白)”。 注意:我在那里放了一个虚拟电子邮件。

    'Check the humanity of the submitter 
    If strhumanity = "Aggies" Then
        ' Send Email
        Using message As New MailMessage()
            message.From = New MailAddress(ourEmail.ToString())
            message.[To].Add(New MailAddress("sephoroth@yahoo.com"))    'Change back to gerald's email
            message.Subject = "Ecampus Isses"
            message.Body = body
            Dim client As New SmtpClient()
            client.Host = "eforms.tamug.edu"   'Change back
            client.Send(message)
            Server.Transfer("ThankYou.aspx", True)
        End Using

    Else
        Response.Write("You do not seem to be human. Try again.")
        'exit
    End If

【问题讨论】:

  • SMTP 服务器是否需要身份验证?它有允许服务器的白名单吗?您的服务器在该列表中吗?
  • 您的 Using 应该在 smtp 客户端而不是邮件消息上。您还没有将凭据传递给该主机,它是允许匿名邮件的内部 Exchange 设置吗?您还应该在 smtp 客户端上设置 Delivery Method 属性。

标签: asp.net vb.net visual-studio visual-studio-2012


【解决方案1】:

可能是:

  • 您的进程未通过邮件服务器的身份验证
  • 25 端口未打开

【讨论】:

    【解决方案2】:

    您的 SmtpClient() 需要这样的东西。 编辑:端口也需要指定。

    client.Credentials = New Net.NetworkCredential("foo@bar.com", "this_is_a_password")
    client.Port = 25
    

    【讨论】:

      【解决方案3】:

      如果MailMessage 对象上没有Sender,则有些不会交付。您还需要在SmtpClient 对象上指定PortCredencials

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        • 1970-01-01
        • 2014-12-14
        • 2011-11-29
        • 2012-11-03
        • 2023-04-06
        • 2011-02-08
        相关资源
        最近更新 更多