DKIM在vb.net中使用MimeKit签署电子邮件

DKIM在vb.net中使用MimeKit签署电子邮件,vb.net,smtp,dkim,mimekit,Vb.net,Smtp,Dkim,Mimekit,我试图让我的网站发送的电子邮件是dkim签名。我找到了mimekit,并尝试实现该逻辑。我使用了几个dkim检查器(和)来验证我的dns记录,它通过的很好,但是google和outlook在标题或页面中显示dkim在电子邮件中失败。上面的dkim验证器说明: 验证签名 结果=无效 详细信息:坏身份 我正在使用的子程序: Private Shared Sub DKIMSignAndSend(mailMessage As System.Net.Mail.MailMessage) Dim mes

我试图让我的网站发送的电子邮件是dkim签名。我找到了mimekit,并尝试实现该逻辑。我使用了几个dkim检查器(和)来验证我的dns记录,它通过的很好,但是google和outlook在标题或页面中显示dkim在电子邮件中失败。上面的dkim验证器说明:

验证签名

结果=无效

详细信息:坏身份

我正在使用的子程序:

Private Shared Sub DKIMSignAndSend(mailMessage As System.Net.Mail.MailMessage)
   Dim message As MimeMessage = MimeMessage.CreateFromMailMessage(mailMessage)
   Dim headersToSign() As HeaderId = New HeaderId() {HeaderId.From, HeaderId.Subject, HeaderId.Date}
   Dim domain As String = "domain.com"
   Dim selector As String = "1559659173.domain"
   Dim signer As DkimSigner = New DkimSigner(String.Format("{0}\Administration\dkim.pem", System.Web.Configuration.WebConfigurationManager.AppSettings("WebsiteDirectory")), domain, selector)
   signer.SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1
   signer.AgentOrUserIdentifier = "domain.com"
   signer.QueryMethod = "dns/txt"
   message.Prepare(EncodingConstraint.SevenBit)
   message.Sign(signer, headersToSign, DkimCanonicalizationAlgorithm.Relaxed, DkimCanonicalizationAlgorithm.Simple)

   Using client As New MailKit.Net.Smtp.SmtpClient()
      With CType(ConfigurationManager.GetSection("system.net/mailSettings/smtp"), SmtpSection)
         client.Connect(.Network.Host, .Network.Port, .Network.EnableSsl)
         client.Authenticate(.Network.UserName, .Network.Password)
      End With
      client.Send(message)
      client.Disconnect(True)
   End Using
End Sub
我传入一个System.Net.Mail.MailMessage,其中包含html文本替代视图和附件


有人能帮我解决我做错了什么吗?

听起来你的选择器或代理用户标识符错了


尝试signer.AgentOrUserIdentifier=“@domain.com”

如果我错了,请阻止我,但是在SMTP服务器上设置您的密钥不是比执行这个繁琐的操作容易得多吗?也许我的想法是错误的,但似乎服务器应该处理这个问题,而不是客户端应用程序。我无法控制smtp(它使用1和1),在dkim的帮助中搜索只能得到很少的帮助。另外,我希望能弄明白这一点,这样我就可以更新其他一些在自己的域名上也使用电子邮件的网站来使用dkim。我想说这不是一个很好的服务器,否则你会怎么做?例如outlook,或在应用程序之外发送的任何其他邮件?我对运行stmp服务器或服务没有兴趣。我只想让mimekit正常工作,这样我就可以更新我的网站了。:)对项目的捐赠。:)