发送匿名电子邮件 C#

4

你好,我希望使用C#向我的用户发送密码验证,并且希望保护我的邮箱不受垃圾邮件的骚扰。请问该怎么做?

我一直在尝试但是没有成功:

SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
smtpClient.EnableSsl = true;

smtpClient.Timeout = 10000;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential("login", "password");

MailMessage mailMsg = new MailMessage();
mailMsg.From = new MailAddress("noreply@mysite.com");
mailMsg.To.Add("user");
mailMsg.CC.Add("cc@ccServer.com");
mailMsg.Bcc.Add("bcc@bccServer.com");
mailMsg.Subject = "Subject";
mailMsg.Body = "BodyOfTheMailString";
smtpClient.Send(mailMsg); 
Console.WriteLine("Mail sent");

我将翻译这封邮件的收件人将看到我的Gmail账户作为发件人。

您可以选择任何发件人电子邮件。 - Magnus
你不必使用匿名电子邮件来避免接收垃圾邮件。 - CodesInChaos
2个回答

7
这不是C#的任务,也不是你所发送消息的正文内容:而是你的邮箱配置问题。
如果只是用于电子邮件验证,您可以随时创建新的电子邮件,例如“service@domain.com”或“noreply@domain.com”来发送这些验证消息,然后将此邮箱设置为忽略传入的消息。
此外,如果您尝试使用未注册到您的服务器的电子邮件发送消息,则服务器可能会拒绝您的请求。

2

更新:

你最开始应该提到你正在使用gmail的smtp。为了防止人们发送垃圾邮件,gmail始终将发件人设置为你的电子邮件地址,而不管你在“From”属性中写什么。

将MailMessage的发件人地址设置为“noreply@mysite.com”。

MailMessage mailMsg = new MailMessage();
mailMsg .From = "noreply@mysite.com";
mailMsg .To = "to@toServer.com";
mailMsg .Cc = "cc@ccServer.com"";
mailMsg .Bcc = "bcc@bccServer.com";
mailMsg .Subject = "Subject";
mailMsg .Body = "BodyOfTheMailString";
SmtpMail.Send(mailMsg ); 

如果这不起作用,答案可能是配置您的SMTP服务器以适当地为用户“noreply”提供服务。这取决于您的设置。 - Corey Ogburn
它将我的 Gmail 帐户设置为邮件发送方的帐户。 - Ilya Gazman
是的,我知道。正如我在更新的答案中所写的那样,如果您正在使用Gmail的SMTP,则无法更改发件人地址。 - Per Kastman
MailAddress ma = new MailAddress("noreply@mysite.com"); MailAddressCollection mac = new MailAddressCollection(); mac.Add("noreply@mysite.com"); 这段代码是有效的。 - Ashish Kamble

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接