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

1 c# email send winforms

所以在我的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);
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*sen 6

你不能.

使程序在您控制的Web服务器上调用Web服务,然后发送电子邮件.这是一个很大的原因如下更好的主意:

  1. 您不必嵌入密码信息.
  2. 您的电子邮件服务器,密码,地址等都可以更改,而无需重新发布程序.
  3. 你不再在本地发送.一吨的互联网服务供应商将本地阻止SMTP传输,由于垃圾邮件发送者.例如,我不能将SMTP与GMail一起使用,因为Comcast会阻止该端口.我只能使用Comcast的SMTP服务器,这使我能够使用我的Comcast凭据登录.

如果您无法创建Web服务,您还可以打开客户端的默认邮件客户端,让他们以这种方式发送邮件.他们会使用自己的本地邮件服务器和登录信息而不是你的.

可能有一种更正式的方式来做,但你可能只是写下这样的东西:

Process.Start("mailto:mail@mail.com");
Run Code Online (Sandbox Code Playgroud)