asp.net - ASP.NET 通过 Exchange Server 发送电子邮件使用哪个服务器证书?
问题描述
我在从 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 证书分配给上述所有条目,如果我这样做了,它会破坏任何内部电子邮件设置吗?
任何帮助表示赞赏。
西弗
附录:电子邮件发送代码:
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
解决方案
推荐阅读
- ruby-on-rails - belongs_to 关联上不允许的参数
- c++ - 如何将向量中的可变参数转换为参数持有者?
- symfony4 - 更新 security.yaml 文件的用户密码
- optaplanner - 如何在 optaplanner 中跟踪计划变量分配
- unix - 如何在unix中仅删除特定行之间的空格而不是所有文件
- cmake - cmake 使用错误版本的编译器
- ruby-on-rails - 如何使用 Ruby 抓取动态网站
- c - 如何在 C 中反转数字同时仍然包含零?
- typescript - 如何在不使用 TypeScript 的情况下将类型添加到适用于任何对象键的函数?
- java - Understanding Exception tests in JUnit 5