Windows服务此邮件服务器在尝试发送到非本地电子邮件地址时需要身份验证

本文关键字:电子邮件地址 身份验证 邮件服务器 服务 Windows | 更新日期: 2023-09-27 17:49:49

我有一个窗口服务(Asp.net c#)发送电子邮件(使用SMTP)给用户一段时间后。它的工作很好从一段时间,但当它遇到电子邮件"@gmail.com"它打破了以下错误:

window service this mail server requires authentication when attempting 
to send to a non-local e-mail address. 
Please check your mail server client settings or contact your 
administrator to verify that the domain or address is defined for this server.

但凭据相同&代码,它发送电子邮件(到相同的电子邮件地址),当它被触发的网站托管在IIS上的同一服务器(系统)。

我在网上搜索,但无法理解为什么它从Asp.net网站代码发送电子邮件,而不是从。net Windows服务代码(虽然这个问题不会发生时发送电子邮件到同一域ie。

有什么想法或建议吗?

谢谢

Windows服务此邮件服务器在尝试发送到非本地电子邮件地址时需要身份验证

在我的例子中,罪魁祸首是下面这行代码:

smtp。

请参阅下面的代码(在注释之后,电子邮件发送无误):

using (mmMessage)
        {
            mmMessage.Subject = strSubject;
            mmMessage.Body = strBody;
            mmMessage.IsBodyHtml = blnIsBodyHTML;
            mmMessage.Headers.Add("Reply-To", FromEmailAddress);
            SmtpClient smtp = new SmtpClient();
            using (smtp)
            {
                smtp.Host = SMTPServer;
                smtp.Credentials = new System.Net.NetworkCredential(SMTPUser, SMTPPwd);
                smtp.Port = Port;
                //smtp.UseDefaultCredentials = false;
                smtp.EnableSsl = IsEnableSsl;
                smtp.Send(mmMessage);
            }
        }