如何在不泄露密码的情况下从C#发送电子邮件?

时间:2011-01-03 08:23:42

标签: c# email credentials

我找到了一种在C#中发送电子邮件的好方法,除了一个问题,我必须显示我的密码。如果有人要反汇编我的程序,或者如果我决定将其打开(我可能会),他们将获得我的Gmail帐户的用户名和密码。有没有办法解决这个问题?

MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

mail.From = new MailAddress("Contact@pandorafreed.com");
mail.To.Add("myemail@gmail.com");
mail.Subject = "Pandora Free-D Message";
mail.Body = "Name: " + C.NameBox.Text + "\n" + "Email: " + C.emailBox.Text + "\n" + C.Message.Text;

SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true;

SmtpServer.Send(mail);

+++++ +++++ EDIT

嗯......本地主机会工作吗?有人知道吗?

3 个答案:

答案 0 :(得分:9)

如果您的邮件服务器需要身份验证,则不会该程序需要知道发送邮件的密码,如果该程序在您不信任的计算机上运行,​​那么您可以认为密码很快就会受到损害。

您应该考虑另一种方法,例如通过Web服务或HTTP调用将邮件提交到您控制的服务器,您可以在其中验证邮件,然后将其发送到邮件服务器。

答案 1 :(得分:1)

您可以创建Web服务,它将向邮件服务器发送电子邮件。

答案 2 :(得分:1)

为什么还有其他人使用您的帐户发送电子邮件?让用户使用他/她自己的邮件服务器和身份验证。让用户在安装程序时输入这些值并将其存储在配置文件中。