所以在我的 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);
请问有没有其他办法。 或者,如果有人知道一些一次性电子邮件服务,您可以从中发送邮件而无需创建电子邮件帐户。
请您参考如下方法:
你不能。
让程序调用您控制的网络服务器上的网络服务,然后由该服务器发送电子邮件。这是一个好得多的想法,原因如下:
- 您不必嵌入密码信息。
- 您的电子邮件服务器、密码、地址等都可以更改,而无需重新发布程序。
- 您不再在本地发送。由于垃圾邮件发送者,吨 的 ISP 将在本地阻止 SMTP 流量。例如,我无法将 SMTP 与 GMail 一起使用,因为 Comcast 会阻止该端口。我只能使用 Comcast 的 SMTP 服务器,这让我可以使用我的 Comcast 凭据登录。
如果您无法创建 Web 服务,您也可以打开客户端的默认邮件客户端,让他们以这种方式发送邮件。他们会使用他们自己的本地邮件服务器和登录信息,而不是您的。
可能有更官方的方式来做到这一点,但你可能只写这样的东西:
Process.Start("mailto:mail@mail.com");
