如何从ASP.NET中的* any *电子邮件地址发送电子邮件?

时间:2017-06-04 18:08:45

标签: c# asp.net-mvc smtp

我有一个基本的SmtpClient,我用它来发送电子邮件。

using (var client = new SmtpClient())
using (var mail = new MailMessage())
{
    mail.From = new MailAddress(fromEmailAddress);
    mail.Body = "body text";
    mail.To.Add(new MailAddress(myEmailAddress));
    client.Send(mail);
}

如果我将fromEmailAddress设置为真实的电子邮件地址,则此代码很有效。如果我将其设置为假的电子邮件地址,让我们说 test@test.com ,代码发送消息,但我没有收到< / strong>电子邮件。

我在联系表单上使用它,其中有一个用于发送电子邮件的字段和一个用于显示其消息的字段。

无论电子邮件是否有效,都有办法发送电子邮件吗? (在PHP的mail方法中,它是可能的)

或者,是否可以检查我是否收到了电子邮件? (向用户显示错误)

2 个答案:

答案 0 :(得分:2)

你认为你的结局很重要是错误的。

重要的是多么愚蠢 - 在这些日子里你可以指望不是 - 接收电子邮件服务器与垃圾邮件有关。

您的电子邮件只是因为垃圾邮件而被丢弃,而且可能很明显 - 例如您发送的“来自”(虚假地址)的域名要么不存在,要么有SPF或其他记录列出允许的发件人 - 您不是其中一个。

这样简单。互联网是一个糟糕的地方,每个系统管理员都不是一个完全白痴部署反垃圾邮件机制。

现在,如果你提出这样或那样的形式,它需要修复。看了很多次。你不能那样做 - 因为域名受到保护。这意味着你不能只假装你被允许代表另一个域发送。我有时会用联系表单看到这种类型 - 程序员不理解我的域名有SPF记录是错误的。

答案 1 :(得分:1)

除了C#之外,如果你能避免它,这不是一个好主意。设置“发件人”字段实际上并不是从该地址发送的 - 例如,这意味着任何人都可以冒充您的银行。

大多数邮件提供商都会认为垃圾邮件得分非常差 - 这意味着如果您从无权发送的域发送邮件,则可能会出现交付问题 - 这至少是一个可能的原因您遇到虚假地址问题。

以下是有关为什么会这么糟糕的更多信息(请参阅第4点),以及其他一些有用的提示 - https://www.campaignmonitor.com/blog/email-marketing/2015/09/9-things-that-are-killing-your-email-deliverability/