发送电子邮件支持服务单而无需在源代码中输入我的电子邮件凭据

时间:2014-02-11 18:36:19

标签: c# winforms email send

所以在我的winforms应用程序中,我有一个支持部分,人们可以报告应该发送到我的电子邮件的错误和内容。我想知道如果不在源代码中输入我的电子邮件凭据我怎么能这样做。很多人只是反编译程序,然后他们就可以登录我的帐户了。

MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient();
SmtpServer.Credentials = new Net.NetworkCredential("mail@mail.com", "password123");
SmtpServer.Port = 587;
SmtpServer.Host = "smtp.gmail.com";
SmtpServer.EnableSsl = true;
SmtpServer.EnableSsl = true;
mail.To.Add("mail@mail.com");
mail.From = new MailAddress("lol@gmail.com");
mail.Subject = "Support";
mail.Body = "Name: " + textBox1.Text + Environment.NewLine + "Message: " + textBox2.Text;
SmtpServer.Send(mail);

我想知道是否有其他方法可以做到这一点。 或者,如果有人知道某些一次性电子邮件服务,您可以在不使用电子邮件帐户的情况下发送邮件。

1 个答案:

答案 0 :(得分:6)

你不能。

让程序在您控制的Web服务器上调用Web服务,然后发送电子邮件。由于以下原因,这是很多更好的主意:

  1. 您无需嵌入密码信息。
  2. 您的电子邮件服务器,密码,地址等都可以更改,而无需重新发布程序。
  3. 您不再在本地发送。由于垃圾邮件发送者, ton 的ISP将阻止本地的SMTP流量。例如,我不能将SMTP与GMail一起使用,因为Comcast会阻止该端口。我只能使用Comcast的SMTP服务器,这使我能够使用我的Comcast凭据登录。
  4. 如果您无法创建Web服务,您还可以打开客户端的默认邮件客户端,让他们以这种方式发送邮件。他们会使用自己的本地邮件服务器和登录信息,而不是你的。

    可能有更多的官方方式来做,但你可以写下这样的东西:

    Process.Start("mailto:mail@mail.com");