我有一个基本的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
方法中,它是可能的)
或者,是否可以检查我是否收到了电子邮件? (向用户显示错误)
答案 0 :(得分:2)
你认为你的结局很重要是错误的。
重要的是多么愚蠢 - 在这些日子里你可以指望不是 - 接收电子邮件服务器与垃圾邮件有关。
您的电子邮件只是因为垃圾邮件而被丢弃,而且可能很明显 - 例如您发送的“来自”(虚假地址)的域名要么不存在,要么有SPF或其他记录列出允许的发件人 - 您不是其中一个。
这样简单。互联网是一个糟糕的地方,每个系统管理员都不是一个完全白痴部署反垃圾邮件机制。
现在,如果你提出这样或那样的形式,它需要修复。看了很多次。你不能那样做 - 因为域名受到保护。这意味着你不能只假装你被允许代表另一个域发送。我有时会用联系表单看到这种类型 - 程序员不理解我的域名有SPF记录是错误的。
答案 1 :(得分:1)
大多数邮件提供商都会认为垃圾邮件得分非常差 - 这意味着如果您从无权发送的域发送邮件,则可能会出现交付问题 - 这至少是一个可能的原因您遇到虚假地址问题。
以下是有关为什么会这么糟糕的更多信息(请参阅第4点),以及其他一些有用的提示 - https://www.campaignmonitor.com/blog/email-marketing/2015/09/9-things-that-are-killing-your-email-deliverability/