SMTP邮件只在内部发送
本文关键字:在内部 SMTP | 更新日期: 2023-09-27 18:07:49
我有一个c#函数,通过SMTP从gmail帐户从win应用程序发送电子邮件给我。
只有在FROM参数是内部的情况下才有效。
当我添加外部地址时,它运行没有错误,但电子邮件从未到达我的邮箱。
我注意到这个网站上有几个帖子有类似的问题,但与大多数帖子不同的是,其他人似乎都得到了某种错误消息。
MailMessage mail = new MailMessage();
using (SmtpClient SmtpServer = new SmtpClient(smtp.gmail.com))
{
mail.From = new MailAddress("you@myGoogleDomain.com"); //This works
//mail.From = new MailAddress("me@somewhere.com"); //This does not work
mail.To.Add("recipient@myGoogleDomain.com");
mail.Subject = "Mail Subject";
mail.Body = mailBody;
mail.ReplyTo = new MailAddress("me@myGoogleDomain.com");
mail.CC.Add(new MailAddress("me@myGoogleDomain.com"));
mail.IsBodyHtml = true;
SmtpServer.Port = 587; //I've also tried 465
//SmtpServer.UseDefaultCredentials = false; //This does not make a difference.
SmtpServer.Credentials = new System.Net.NetworkCredential("myaccount@myGoogleDomain.com", "Pass123");
SmtpServer.EnableSsl = true; //I've also tried false
//Add attachments
...
//Send the mail
SmtpServer.Send(mail);
}
更多信息:我注意到电子邮件位于myaccount@myGoogleDomain.com 'Sent'框中。没有邮件到recipient@myGoogleDomain.com
您代表您在Google的帐户使用Google smtp服务器发送电子邮件。你不能使用谷歌smtp与非谷歌帐户从。即使你在Gmail或其他电子邮件中发送常规电子邮件,你也不能从修改。
问题不在于From参数,而在于ReplyTo参数。因为两个参数都是从同一个变量(而不是字符串)设置的,所以当它被设置为我的域外时,它不起作用。
删除ReplyTo设置解决了问题。