【问题标题】:Send an email using SMTP and control sender address使用 SMTP 发送电子邮件并控制发件人地址
【发布时间】:2011-09-06 17:45:39
【问题描述】:

我正在尝试使用 c# App 发送电子邮件,下一个代码正在运行。

SmtpClient MailClient = new SmtpClient("smtp.gmail.com");
MailClient.EnableSsl = false;
MailClient.Credentials = new NetworkCredential("Ryan.White", "Password");
MailMessage Msg = new MailMessage();
Msg.From = new MailAddress("Sender.name@gmail.com");
Msg.To.Add(new MailAddress("Ryan.White@gmail.com"));
Msg.Subject = "testSub";
Msg.Body = "testBody";

MailClient.Send(Msg);

但 Gmail 的 SMTP 服务器将 gmail 电子邮件地址 (Ryan.White@gmail.com) 作为发件人,

不管 MSG.FROM 地址 (Sender.name@gmail.com)。

是否可以使用 C#/.NET 发送电子邮件并控制发件人地址?

或者发送一封不经过身份验证的电子邮件?

我知道在 UNIX 中,您可以在“邮件”命令中控制发件人地址。

【问题讨论】:

  • 嘿,我得到了一些东西,它不能回答你的问题,但它是一个替代方案。 trevorrudolph.com/email
  • 嗨 Trevor,这正是我想在我的 C# 应用程序中做的事情。可以用c#完成吗?还是仅仅使用 PHP?
  • 我明白了...我是网络代码专家,对不起。

标签: c# .net smtp


【解决方案1】:

Gmail 这样做是出于安全原因,否则垃圾邮件发送者很容易发送看似来自虚假地址的电子邮件。

您已正确编码,C# 将尝试将发件人地址设置为 Sender.Name@gmail.com,但 SMTP 服务器拥有最终决定权。如果您有权以其他用户的身份发送邮件,这将起作用,例如在 Exchange 服务器环境中您被验证为管理员的情况。但是,Gmail 似乎不允许这样做。您需要以 Sender.name 身份登录才能以该用户身份发送电子邮件。

【讨论】:

  • 谢谢。是否有可能找到一个允许控制 FROM 地址功能的 smtp 服务器(不是 gmail)?
  • 您正在寻找一个开放的 SMTP 中继,这是个坏消息。如果您确实找到了一个,您的电子邮件可能不会到达收件人,因为该中继将被收件人的垃圾邮件过滤器列入黑名单。您确实需要有一个站点,您可以在其中获得代表其他用户发送的访问权限。谷歌在这里谈论他们的选择:mail.google.com/support/bin/answer.py?answer=22370
猜你喜欢
  • 1970-01-01
  • 2016-01-21
  • 2013-02-16
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
  • 2014-09-22
  • 2020-04-25
  • 2011-05-21
相关资源
最近更新 更多