提问人:MAK 提问时间:11/22/2010 最后编辑:abatishchevMAK 更新时间:7/29/2019 访问量:4504
使用 C 为通过 Gmail 发送的邮件设置不同的“发件人”地址#
Setting a different "From" address for mail sent via Gmail using C#
问:
我正在使用一个简单的邮件发件人类,该类使用 .我需要更新我的应用程序,以便不同的用户可以通过它发送电子邮件(使用相同的 smtp 帐户),但“发件人”地址应该是导致发送它的用户的地址。我尝试设置 的属性,并将 from 地址发送到 but nose 的构造函数中。我确定我遗漏了一些简单的东西,或者不了解邮件 API 的工作原理。谁能帮忙?System.Net.Mail
From
MailMessage
MailMessage
在这里,我的 MailSender 类基本上包装了 ,并提供了一个简单的邮件发送接口。MailMessage
NetworkCredential
SmtpClient
class MailSender
{
private NetworkCredential credential;
private String SenderAddress;
private SmtpClient client;
public MailSender(String ServerURL, String account, String password, String FromAddress = null, int port = -1, bool UseSSL = true)
{
if (port > 0)
{
client = new SmtpClient(ServerURL, port);
}
else
{
client = new SmtpClient(ServerURL);
}
credential = new NetworkCredential(account, password);
client.UseDefaultCredentials = false;
client.EnableSsl = UseSSL;
client.Credentials = credential;
if (FromAddress != null)
{
SenderAddress = FromAddress;
}
else
{
SenderAddress = account;
}
}
public bool SendMessage(String to, String subject, String body)
{
try
{
MailMessage message = new MailMessage(SenderAddress, to, subject, body);
message.From = new MailAddress(SenderAddress, "tester");
message.IsBodyHtml = true;
client.Send(message);
}
catch
{
return false;
}
return true;
}
}
答:
我刚刚通过使用另一台SMTP服务器进行测试找到了答案。这实际上是由于 GMail 不允许任何其他来自地址引起的。这适用于其他 SMTP 服务器。
感谢 leppie、Mikael Svenson 和 smirkingman 的建议。
评论
From
SPF
Gmail 不允许任何其他发件人地址。 它可能会对您有所帮助,您可以通过以下方式更改重播:
邮件。ReplyTo = 新 MailAddress ( “[email protected]");
这个线程有点旧,但我刚刚发现,为了能够在使用 Google 服务器从脚本发送电子邮件的 from 字段中拥有不同的地址,您必须将该地址添加到用于身份验证的 Gmail 帐户中的“代理发送”列表中。 因此,登录到您用于对 Google 服务器进行身份验证的用户的 Gmail 帐户,转到“配置”、“帐户”,然后按照提供的 3 个简单步骤将所需的发件人地址添加到“代理发送”列表中。 这解决了我的问题 希望它对某人有所帮助 乔苏
评论