服务器迁移后,.NET项目停止发送电子邮件

时间:2019-02-17 01:58:29

标签: c# .net iis smtp windows-server

我将.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:

1 个答案:

答案 0 :(得分:1)

您必须查看通过SMTP发送电子邮件的“内容”。因此,如果您提供实际执行SMTP发送的代码,那么可能是最好的选择。由于您使用的是Google发送电子邮件,因此您无需在IIS中进行任何设置即可使它正常工作。

我的猜测是,从IIS中的API发送电子邮件时,您遇到权限问题。您是否查看过事件日志以查看其中是否有任何消息,或者应用程序是否不发出任何异常等日志记录?

为快速诊断任何网络问题,建议您查看how to configure network tracing in .NET,然后查看其中的任何错误消息。该日志将告诉您应用程序是否存在使其无法通过网络连接和/或连接到Google的问题。