自定义Windows服务-通过SMTP发送电子邮件

德蒙丹

会员
已加入
2018年5月24日
留言内容
17
编程经验
1-3
你好
我已经开发了Windows服务,该服务接收通过SQL数据库发送电子邮件的请求。其他应用程序将填充数据库,而Windows服务将检查数据库并处理信息以发送电子邮件。我正在努力理解指定凭据的工作方式。我希望它使用特定的域用户名/密码,但我认为它可以正常工作,但是我注意到无论我设置为用户名和密码如何,它都会发送电子邮件。关于凭据,我有以下代码:

smtp.UseDefaultCredentials = false;
smtp.Credentials =新的System.Net.NetworkCredential("test", "fail");

因此,在这种情况下,用户名是test,密码失败-我本以为这不起作用。但是它有效!为什么不失败?

谢谢!
 

德蒙丹

会员
已加入
2018年5月24日
留言内容
17
编程经验
1-3
你好
抱歉,周末银行假期,所以我没去上班。我刚刚向服务器管理员提出了问题。有趣的是,如果我输入正确的用户名和密码,它将失败。但是,如果我输入了正确的用户名和应该失败的密码,它将起作用。我只是不明白代码所经过的逻辑?为什么输入正确的用户名/密码失败,但是我输入了不存在的凭据并且可以使用?无论我们是否启用了必需的凭据,我都无法理解代码所经历的过程?
谢谢
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,499
地点
弗吉尼亚州切萨皮克
编程经验
10+
SMTP服务器返回给您的失败代码是什么? SMTP服务器的管理员能否为您提供失败(以及意外成功尝试)的日志条目?
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,499
地点
弗吉尼亚州切萨皮克
编程经验
10+
现在,这听起来像是在某些地方出现错别字,他们颠倒了布尔值的真假检验。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,923
地点
英国
编程经验
10+
确保设置 SmtpClient.Credentials 设定后 SmtpClient.UseDefaultCredentials =否 因为必须正确执行订单。布尔值的设置将重置您的凭据。如果您仍然可以使用任何用户/密码访问SMTP,我将请您的网络管理员来确保安全性。
 

德蒙丹

会员
已加入
2018年5月24日
留言内容
17
编程经验
1-3
你好
经过更多测试后,如果我将指定的发件人地址与特定的用户名/密码匹配,就会被告知要使用它。我需要适当地与我的网络管理员交谈,到目前为止,他很难被发现。感谢您的答复,我认为与网络管理员交谈可能是最好的方法。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,499
地点
弗吉尼亚州切萨皮克
编程经验
10+
啊!听起来您的SMTP服务器管理员正在应用一些基本的反垃圾邮件技术。如果您需要使用无回复地址,则他/她还可能需要您为“发件人”字段使用特定的模式。 (我的公司大约在4年前抛出了此开关,其中发送机的IP需要列入白名单,“发件人”字段必须是合法地址或特殊的不答复地址, 活性 广告帐户可以发送。)
 

德蒙丹

会员
已加入
2018年5月24日
留言内容
17
编程经验
1-3
啊!听起来您的SMTP服务器管理员正在应用一些基本的反垃圾邮件技术。如果您需要使用无回复地址,则他/她还可能需要您为“发件人”字段使用特定的模式。 (我的公司大约在4年前抛出了此开关,其中发送机的IP需要列入白名单,“发件人”字段必须是合法地址或特殊的不答复地址, 活性 广告帐户可以发送。)
听起来确实正在发生....我将进一步调查-谢谢!
 
最佳 底部