ASP.NET通过Exchange Server发送电子邮件使用哪个服务器证书?

ASP.NET通过Exchange Server发送电子邮件使用哪个服务器证书?,asp.net,vb.net,ssl,Asp.net,Vb.net,Ssl,我从ASP.NET应用程序发送电子邮件时遇到问题。我一直收到错误消息: “根据验证过程,远程证书无效。” 在这里和其他网站上进行研究时,所提供的证书似乎不是我们的公共GoDaddy证书,它在从internet访问Exchange 2013服务器时覆盖了我们的外部域名 查看邮件服务器上的Exchange管理中心,我可以在“证书”部分看到各种条目: Microsoft Exchange Server身份验证证书(分配给SMTP) Microsoft Exchange(已分配给SMTP) Exchan

我从ASP.NET应用程序发送电子邮件时遇到问题。我一直收到错误消息:

“根据验证过程,远程证书无效。”

在这里和其他网站上进行研究时,所提供的证书似乎不是我们的公共GoDaddy证书,它在从internet访问Exchange 2013服务器时覆盖了我们的外部域名

查看邮件服务器上的Exchange管理中心,我可以在“证书”部分看到各种条目:

Microsoft Exchange Server身份验证证书(分配给SMTP)

Microsoft Exchange(已分配给SMTP)

Exchange委派联合身份验证(已分配给SMTP、联合身份验证)

GoDaddy证书(分配给IMAP、POP、IIS、SMTP)

内部传输(分配给IMAP、POP、SMTP)

(除GoDaddy证书外,上述所有证书均为自签名证书)

当我使用System.NET.Mail通过ASP.NET发送电子邮件时,使用的是上述哪个证书。我尝试过使用端口25、465和587,但都得到了相同的错误

是否有一种方法可以将GoDaddy证书分配给上述所有条目,如果我这样做了,它会破坏任何内部电子邮件设置

谢谢你的帮助

Siv

附录:电子邮件发送代码:

    Private Sub CreatePatrolsEmail(ByRef p As Patrols)

    Dim mailto As New MailAddress("external@email.com")
    Dim mailfrom As New MailAddress("internal@domainname.co.uk")
    Dim message As New MailMessage(mailfrom, mailto), Msg As String = ""
    Dim mailClient As New SmtpClient()
    Dim UserAndPass As New NetworkCredential()
    Dim ReplyAddress As String = ""
    Dim Script = ""
    Dim n As Integer = 0
    Dim BodyText As String = ""

    Try
        message.Subject = "Issue relating to " & p.IssueDescription & "."

        'Mail.SubjectEncoding = Text.Encoding.UTF8

        BodyText = "This email is to bring to your attention the following issue:" & NNL
        BodyText += "Building: " & p.Building & NL
        BodyText += "Location: " & p.Location & NL
        BodyText += "Issue:" & p.IssueDescription & NL
        BodyText += "Additional Information:" & NNL
        BodyText += p.AdditionalInfo & NNL
        BodyText += "Sent from the Logging System." & NL
        BodyText += "Date: " & Now.ToShortDateString & NL
        BodyText += "Time: " & Now.ToShortTimeString

        message.Body = BodyText

        'send the message
        mailClient = New SmtpClient("mail.domainname.co.uk", 587) 'specify the mail server address
        mailClient.EnableSsl = True
        mailClient.UseDefaultCredentials = False
        mailClient.Credentials = New Net.NetworkCredential("internal@domainname.co.uk", "passwordtext")

        mailClient.Send(message)

    Catch ex As Exception

        PEH("SendEmail", "frmA1Patrols", ex.Message)

    Finally

        mailClient.Dispose()
        message.Dispose()

    End Try


End Sub

我不是100%确定,但您应该看到每个证书绑定到的机器名/ip地址。然后,根据您的应用程序是否在同一台机器、同一局域网或internet上运行,您必须选择正确的证书,并可能处理防火墙。所有自行颁发的证书的名称均为servername.domainname.local。GoDaddy证书的名称为mail.domainname.co.uk,这是我在代码中使用的服务器名称。因此,我不知道为什么会出现错误?应用程序是否与exchange运行在同一台机器上?不是在同一台机器上,而是在同一个网络上。我们有一个用于文件和打印的主2012r2服务器,它运行IIS网站,我在该网站上运行asp.net应用程序。SQL Server和Exchange 2013在2008 r2服务器上运行,两者都在同一个域中。您将希望使用类似“Exchange.domain.local”的内容,并使用附加到Exchange中的证书。您使用什么方法创建电子邮件并连接到服务器?我不是100%确定,但您应该看到每个证书绑定到什么机器名/ip地址。然后,根据您的应用程序是否在同一台机器、同一局域网或internet上运行,您必须选择正确的证书,并可能处理防火墙。所有自行颁发的证书的名称均为servername.domainname.local。GoDaddy证书的名称为mail.domainname.co.uk,这是我在代码中使用的服务器名称。因此,我不知道为什么会出现错误?应用程序是否与exchange运行在同一台机器上?不是在同一台机器上,而是在同一个网络上。我们有一个用于文件和打印的主2012r2服务器,它运行IIS网站,我在该网站上运行asp.net应用程序。SQL Server和Exchange 2013在2008 r2服务器上运行,两者都在同一个域中。您将希望使用类似“Exchange.domain.local”的内容,并使用附加到Exchange中的证书。您使用什么方法创建电子邮件并连接到服务器?