我将.NET Framework REST API项目迁移到了新服务器和新域中。先前服务器和新服务器上的操作系统均为Windows Server2016。我正在通过SSL / TLS使用gmail smtp服务器。相关端口在我迁移到的AWS中打开。
我能够使用Powershell手动发送电子邮件,但是在调用API时没有任何反应。 相同的smtp配置可在旧服务器上使用-因此,此部分很好。
对于Windows Server和/或.NET,我有点笨拙,我可能错过了一些显而易见的东西。例如,我不确定使用gmail smtp时是否需要在IIS上设置SMTP服务器。
更新:
遵循@TheEdge建议,我在事件日志中四处张望,好像我遇到了审计失败。但是我无法理解。
An account failed to log on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: USER4
Account Domain:
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xC000006D
Sub Status: 0xC0000064
Process Information:
Caller Process ID: 0x0
Caller Process Name: -
Network Information:
Workstation Name: -
Source Network Address: __.___.___.___
Source Port: 0
Detailed Authentication Information:
Logon Process: NtLmSsp
Authentication Package: NTLM
Transited Services: -
Package Name (NTLM only): -
Key Length:
答案 0 :(得分:1)
您必须查看通过SMTP发送电子邮件的“内容”。因此,如果您提供实际执行SMTP发送的代码,那么可能是最好的选择。由于您使用的是Google发送电子邮件,因此您无需在IIS中进行任何设置即可使它正常工作。
我的猜测是,从IIS中的API发送电子邮件时,您遇到权限问题。您是否查看过事件日志以查看其中是否有任何消息,或者应用程序是否不发出任何异常等日志记录?
为快速诊断任何网络问题,建议您查看how to configure network tracing in .NET,然后查看其中的任何错误消息。该日志将告诉您应用程序是否存在使其无法通过网络连接和/或连接到Google的问题。