2014-07-08 26 views
1

我目前正面临一个隐晦的问题,我希望有人可能知道这个答案。用不存在的mailaccount作为发件人发送邮件

过去,我的公司正在与Delphi 5合作。电子邮件发送由一个名为TNMSMTP的组件处理。这些应用程序使用假邮件地址作为附加信息来源是自定义的。例如,如果服务器sv102上的服务“ReceiveDelivery”会遇到问题,则邮件地址将为ReceiveDelivery @ sv102

我在这里颇为新颖,并试图说服管理层向.net编程迈出一步。为此,我需要使用system.net.mail框架来模拟上述行为。 但是,每当我尝试使用虚假邮件地址时,我都会收到5.7.1“客户端无权作为此发件人发送”异常。 新程序在同一个用户下的同一台服务器上运行,并尝试访问与旧的delphi程序相同的smtp服务器。

我的问题是:我可以以某种方式绕过这个,还是我需要回到德尔福为此工作?

回答

4

您收到的错误来自您的smtp服务器,这表明您没有像以前一样使用服务器进行身份验证。

你确定你已经正确地配置了smtp客户端吗?您可以在.config文件或runtime programmatically中使用smtp configuration element

此外,您可以尝试使用服务器的完全限定的域名(FQDN)。例如,发件人的电子邮件地址应为:[email protected]。您可以使用以下.NET代码获得FQDN:How to find FQDN of local machine in C#/.NET ?

+0

不幸的是,这并没有解决问题。 – user3801860

+0

您提到该程序在“同一用户下”运行。您的.NET代码是否使用网络凭证(例如,配置的用户名和密码)与SMTP服务器进行身份验证,或者您是否依赖基于当前用户的某种形式的隐式身份验证?请参阅有关身份验证的备注:http://msdn.microsoft.com/zh-cn/library/ms164242(v=vs.110).aspx –

0

所以我们终于找到了解决这个问题的方法。 看起来,发送带有可变发件人地址的邮件的权限不是绑定到特定的用户,而是绑定到运行该应用程序的服务器上。

在我的情况下,.net开发服务器不在该列表中。现在我们添加了它,我可以使用这个功能。

谢谢你们!

相关问题