2010-11-10 43 views
0

我使用SMTPClient將電子郵件發送到SMTP服務器。但通過Send方法,我可以指定任何錯誤的發件人姓名或電子郵件。我怎樣才能防止這一點?SMTP可以接受帶有虛假髮件人姓名的電子郵件

+2

不涉及編程。閱讀SMTP服務器文檔。 – leppie 2010-11-10 08:58:43

+0

@leppie,是你的權利。但我可以從哪裏開始? – 2010-11-10 09:25:16

+0

technet會很好。 – leppie 2010-11-10 10:33:53

回答

5

郵件服務器的工作就是決定接受什麼作爲發件人的電子郵件地址 - 這只是一個政策問題。

郵件客戶端沒有「真正的」電子郵件地址,所以沒有什麼可以在客戶端強制執行。

2

我認爲這應該是SMTP服務器的角色來決定發件人名稱是否有效。事實上,將它引入您的代碼中會違反DRY規則,因爲您將複製SMTP配置。

正如您在http://msdn.microsoft.com/en-us/library/swas0fwc%28v=VS.90%29.aspx中看到的那樣,您應該只准備捕獲SmtpExceptions並將其正確顯示給您的軟件用戶。

0

你不能在SmtpClient中做任何事情。

你可以在你的應用程序中做些什麼。發送驗證郵件,用戶必須點擊驗證電子郵件。

你可以在你的smtp服務器上做些什麼。根據發件人域/ IP地址檢查MX記錄或定義的SPF策略。

0

SMTP是一個郵件傳送協議(顧名思義)。它不負責驗證發件人。爲了驗證發件人,您需要使用SMTP支持的證書,但同樣也只是作爲transfert的含義。程序本身需要具有用證書認證發件人的邏輯。

您也可以使用身份驗證,但在這種情況下,它將成爲將用戶名/密碼與電子郵件地址相匹配的SMTP服務器。

相關問題