SMTP 邮件仅在内部发送
SMTP mail only sends internally
我有一个 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 服务器发送电子邮件。您不能将 Google smtp 与非 google 帐户一起使用到 From。即使您在 Gmail 或其他电子邮件中发送常规电子邮件,您也无法修改 From。您发布的这段代码中的行为相同。
问题不在于 From 参数,而在于 ReplyTo。由于两个参数都是从同一个变量(而不是字符串)设置的,所以当它被设置到我的域之外时它不起作用。
删除 ReplyTo 设置解决了问题。
我有一个 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 服务器发送电子邮件。您不能将 Google smtp 与非 google 帐户一起使用到 From。即使您在 Gmail 或其他电子邮件中发送常规电子邮件,您也无法修改 From。您发布的这段代码中的行为相同。
问题不在于 From 参数,而在于 ReplyTo。由于两个参数都是从同一个变量(而不是字符串)设置的,所以当它被设置到我的域之外时它不起作用。
删除 ReplyTo 设置解决了问题。