我刚刚听到Joel和Jeff在他们的播客编号83中谈论发件人ID,而我发现这正是我正在努力的网站所需要的.
从服务器发送的所有电子邮件中大约90%被退回或类似,可能是因为服务器没有"验证".
我有一个服务器的SPF记录,但也是如此.
因此,由于StackOverflow已经解决了这些问题,我猜发件人ID必须成为可行的方法.
据我所知,维基百科需要您在发送邮件时修改邮件标题 - 我将如何从C#中执行此操作?
另外,我需要设置DNS智能等等才能使其工作?
或者我在这里走错了轨道?
编辑:我在C#中使用标准的SmtpClient类来发送邮件,我确实包括明文和邮件的HTML版本.
如果您代表其他用户发送邮件并希望它被接受,您可能需要执行以下操作:
在您的 MailMessage 对象中:
mail.To = new MailAddress("email@tosomeone.com", "To Someone");
mail.From = new MailAddress("sendinguser@fromsomeone.com", "Sending User");
mail.Sender = new MailAddress("serveraddress@your-domain-with-spf.com", "Your Server");
mail.ReplyTo = new MailAddress("sendinguser@fromsomeone.com", "Sending User");
Run Code Online (Sandbox Code Playgroud)
这将生成 SPF 验证工作所需的适当标头(假设服务器将其设置为默认值,他们可以选择要验证的部分)。这将使电子邮件看起来像(在 Outlook 中)
从:您的服务器代表发送用户
至:给某人
大多数 SPF 协议将验证Sender:标头以确定发送域是允许还是拒绝它,因此无论您“从”谁发送它,这都需要来自您的域。
此外,您可能需要仔细检查您的 SPF 记录设置是否正确,以及您的 IP 地址是否不在诸如 spamhaus 之类的黑名单中。检查调用的实际返回文本通常会告诉您为什么它会因 5.something 错误而被阻止。