2011-10-01 62 views
1

我們有一個應用程序提示用戶使用他的ldap用戶名和密碼登錄,從中我可以獲取用戶電子郵件但不能電子郵件密碼,我的目標是從這個用戶的郵件發送電子郵件,而不需要提示用戶輸入他的電子郵件密碼。從某個電子郵件發送來自SMTP服務器的電子郵件,但使其看起來好像來自另一封電子郵件

我使用下面的代碼來發送電子郵件

NetworkCredential loginInfo = new NetworkCredential("[email protected]","mypassword"); 
MailMessage msg = new MailMessage(); 
sg.From = new MailAddress("[email protected]"); 
msg.To.Add(new MailAddress("[email protected]")); 
msg.Subject = "test"; 

SmtpClient client = new SmtpClient("smtp.mydomain.com"); 
client.EnableSsl = true; 
client.UseDefaultCredentials = true; 
client.Credentials = loginInfo; 
client.Send(msg); 

是否有可能僞造它,就像發送的所有電子郵件形成一個電子郵件,但使電子郵件看起來好像是從登錄的用戶的未來電子郵件?這只是改變「From」字段,使電子郵件看起來像:「From:[email protected]」,但實際上它來自「[email protected]

注意:我們有義務通過SMTP服務器設置在網絡憑據輸入密碼

感謝

+0

您是否嘗試過使用'UseDefaultCredentials = true'而不手動提供憑據? –

回答

1

你可以將其設置爲任何你喜歡的;如果它拒絕了由smtp服務器根據其安全配置做出的決定 - 那就需要進行更改,而不是在您的客戶端代碼中。

+0

不是。他應該傳遞登錄用戶的憑據。 –