注册并使用用户的电子邮件域

时间:2016-01-22 05:12:20

标签: c# asp.net email asp.net-web-api email-integration

在我目前的应用程序中,我想添加一项新功能,客户可以注册自己的电子邮件域名服务器(如果有的话)。目前,我正在使用自己的应用程序域发送所有电子邮件。

我想知道如何使用 ASP.NET WebApi& amp; C#该用户将允许验证和注册自己的电子邮件域,而不是使用默认的域。

我们是否需要用户的 DKIM SPF 记录?

1 个答案:

答案 0 :(得分:0)

如果用户将凭据提供给他们自己的电子邮件服务

然后你不需要查看DKIM和SPF记录。用户应该自己做。

您必须向用户收集:

  • 电子邮件服务类型(smtp,mandrill,postmarkapp ...)
  • 电子邮件服务主机名(如果是smtp)
  • 凭证或api密钥
  • 可能是特定于服务的选项

如果您使用自己的服务发送电子邮件

然后,用户必须添加DKIM条目并更新其域名上的SPF条目。您必须根据您的电子邮件服务向用户提供值。

您可以从允许使用相同功能的所有服务中获取灵感(mailchimpmandrillpostmarkappzoho ...)。

检查DNS电子邮件记录

在这两种情况下,您都可以使用DNS client来验证DNS记录是否正常。您将能够告诉用户是否缺少记录。

这是一个示例代码,用ARSoft.Tools.Net开始检查SPF记录。

var client = new DnsClient(servers, 10000);
var spfRecords = client.Resolve(item.Name, RecordType.Txt);
if (result.AnswerRecords == null || result.AnswerRecords.Count == 0 || result.ReturnCode == ReturnCode.NxDomain)
{
    // spf record is missing
}
else if (result.AnswerRecords.Count == 1)
{
    // check the record value with SpfRecord.TryParse(item.ActualValue, out spf)
}
else
{
    // too many spf records
}