2011-10-01 87 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

不是。他应该传递登录用户的凭据。 –