簡體   English   中英

從客戶端應用程序發送電子郵件而不存儲密碼

[英]Sending e-mail out of client application without storing password

我的目標:從C#Windows表單應用程序發送電子郵件(例如,支持請求,錯誤報告)。 我知道該怎么做,但是要注意的是:

為了在郵件服務器(例如gmx,yahoo,自己的網站)上對自己進行身份驗證,我需要將登錄詳細信息存儲在應用程序(在客戶端系統上運行)中。 如果有人提取它或嗅探網絡流量,他將可以訪問我的電子郵件帳戶。 也許可以使用安全連接消除第二種威脅。 但是,無論密碼是否被混淆,仍然有可能從應用程序中獲取密碼。

那么,是否存在“安全”概念使我能夠從程序中發送電子郵件,而該程序可以在客戶端PC上運行,而無需以可訪問的形式存儲密碼,並且不需要特殊的Web服務?

過去我有這樣的要求,我們通過使用Web服務發布消息來解決。

例如,如果用戶想要提交錯誤報告,它將變成對我們的Web服務器的Web服務調用,然后將其相應轉發。

要回答您的問題:無法隱藏郵件服務器。 如果您的程序可以發送電子郵件,則另一個程序的用戶也可以發送電子郵件。 (Web服務也是如此。)您可以使用開放的smtp服務器(smtp中繼)進行操作,但這只是在麻煩。

如果要將消息發送到域,表明郵件服務器是最終目的地,則不需要驗證發件人,則僅在將郵件中繼到另一個域時才需要執行此操作。

您可以允許電子郵件僅由經過Active Directory身份驗證的用戶發送。 這樣,您便可以在您的應用程序能夠發送郵件之前,檢查用戶是否具有有效的帳戶並且是否在有效的組“ domain \\ MyMailSendUsers”中。

如果您使用的是本地郵件服務器,則還可以將其配置為僅允許來自某些資源的連接。 如果您使用的是來自外部供應商(雅虎,谷歌等)的郵件,那么您將不得不存儲用戶名和密碼,除了要求用戶在每次發送時都鍵入用戶名和密碼外,沒有其他解決辦法然后可以將它們存儲在運行時變量中(並對其進行加密),以確保它們的安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM