如何使用C#SMTP客户端进行DomainkeysDKIM电子邮件签名?

如何使用C#SMTP客户端进行DomainkeysDKIM电子邮件签名?,第1张

概述我在C#中编写了一个发送电子邮件的程序.现在我有一个要求,使用Dominkeys / DKIM签署出站电子邮件,但我不知道该怎么做. 我已经设置了所有的键,但我不知道如何让这些和hwo将它们包括在电子邮件头. 尝试使用System.Net.Mail.MailMessage和System.Net.Mail.SmtpClient执行DKIM签名有一个根本的问题,即为了签署消息,您需要戳出SmtpCli 我在C#中编写了一个发送电子邮件的程序.现在我有一个要求,使用Dominkeys / DKIM签署出站电子邮件,但我不知道该怎么做.

我已经设置了所有的键,但我不知道如何让这些和hwo将它们包括在电子邮件头.

解决方法 尝试使用System.Net.Mail.MailMessage和System.Net.Mail.SmtpClIEnt执行DKIM签名有一个根本的问题,即为了签署消息,您需要戳出SmtpClIEnt的内部以便将消息体作为生成DKIM-Signature标题的步骤之一.当您有备用视图或附件时,问题出现,因为SmtpClIEnt会在每次写出断开主体散列的消息并因此产生DKIM签名有效性时生成新的多边形边界.

为了解决这个问题,您可以使用MimeKit和MailKit开源库作为使用System.Net.Mail的替代框架.

要在MimeKit中的邮件中添加DKIM签名,您可以执行以下 *** 作:

var message = CreateMyMessage ();var @R_419_5548@sToSign = new [] { @R_419_5548@ID.From,@R_419_5548@ID.To,@R_419_5548@ID.Subject,@R_419_5548@ID.Date };var signer = new Dkimsigner ("C:\my-dkim-key.pem") {   AgentOrUserIDentifIEr = "@eng.example.net",Domain = "example.net",Selector = "brisbane",};// Prepare the message body to be sent over a 7bit transport (such as // older versions of SMTP). This is VERY important because the message// cannot be modifIEd once we DKIM-sign our message!//// Note: If the SMTP server you will be sending the message over // supports the 8BITMIME extension,then you can use// `EnCodingConstraint.EightBit` instead.message.Prepare (EnCodingConstraint.SevenBit);message.Sign (signer,@R_419_5548@sToSign,DkimCanonicalizationAlgorithm.Relaxed,DkimCanonicalizationAlgorithm.Simple);

要使用MailKit发送消息,您将执行以下 *** 作:

using (var clIEnt = new SmtpClIEnt ()) {    clIEnt.Connect ("smtp.gmail.com",465,true);    clIEnt.Authenticate ("username","password");    clIEnt.Send (message);    clIEnt.disconnect (true);}

希望有帮助.

总结

以上是内存溢出为你收集整理的如何使用C#SMTP客户端进行Domainkeys / DKIM电子邮件签名?全部内容,希望文章能够帮你解决如何使用C#SMTP客户端进行Domainkeys / DKIM电子邮件签名?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1233050.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存