我已经写了一个程序在C#其发送电子邮件。现在我有一个要求签署出境的电子邮件使用Dominkeys/器,但我不知道该如何做到这一点。

我已经设置了所有的钥匙,但是我不知道如何获得这些和hwo,包括他们在电子邮件标题。

有帮助吗?

解决方案 6

我没有找到关于这个问题有很大帮助,但我的问题得到了通过配置SMTP服务器解决。 由于我使用第三方SMTP服务器和每个服务器都有自己的配置,我不能公布这些步骤。适当的配置后,我的SMTP自动添加DM / DKIM签名。

其他提示

有与试图做System.Net.Mail.MailMessage和System.Net.Mail.SmtpClient这是DKIM签名的一个根本问题是,为了对消息进行签名,则需要拨开SmtpClient的内部,以到散列消息体作为在生成DKIM签名报头中的步骤之一。问题是当你有不同的观点或附件因为SmtpClient将产生新的多边界每次写出打破了主体的散列并且因此DKIM签名有效性消息时间英寸

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

要的DKIM签名添加到MimeKit一个消息,你会做这样的事情:

MimeMessage message = MimeMessage.CreateFromMailMessage(mailMessage);
HeaderId[] headersToSign =  new HeaderId[] { HeaderId.From, HeaderId.Subject, HeaderId.Date };

string domain = "example.net";
string selector = "brisbane";

DkimSigner signer = new DkimSigner ("C:\my-dkim-key.pem", domain, selector) 
{
   SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1,
   AgentOrUserIdentifier = "@eng.example.com",
   QueryMethod = "dns/txt",      
};

// 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, headersToSign, 
    DkimCanonicalizationAlgorithm.Relaxed, 
    DkimCanonicalizationAlgorithm.Simple);

要发送使用MailKit的消息,你会做这样的事情:

using (var client = new MailKit.Net.Smtp.SmtpClient ()) {
    client.Connect ("smtp.gmail.com", 465, true);
    client.Authenticate ("username", "password");
    client.Send (message);
    client.Disconnect (true);
}

希望有所帮助。

https://github.com/dmcgiv/DKIM.Net 它的标识的域关键字邮件(DKIM)实现净C#编写的 - 它使您能够MAILMESSAGE签名对象

我想也能知道 我只是找到了DKIM实现,但我不能运行SUCESSFUL -_- http://tinisles.blogspot.com/2009/ 09 /送DKIM的电子邮件从 - c.html

使用 http://www.mimekit.org

它不仅允许使用DKIM进行签名,也可以包括S / MIME证书,PGP证书等。 此外,它的一个非常成熟的LIB - 唯一一个我发现,把手外语(除了英语)正确,因为其完全彻底地与心中的Unicode编码

其游离和开源。

如果你是在寻找器签署的身体然后邮DKIM.NET 是伟大的。如果你是在寻找替代的风景你的消息然后我没能找到一个解决方案,并写我自己的(开放源码与通常的免责声明),可以发现在 https://github.com/yannispsarras/DKIM-AlternativeViews

我理解这是一个很老的螺纹,但是我认为它可以帮助别人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top