2014-07-08 61 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開發服務器不在該列表中。現在我們添加了它,我可以使用這個功能。

謝謝你們!

相關問題