问题标签 [mimekit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1685 浏览

c# - 无法使用 MimeKit 解密 p7m

smime.p7m从我的电子邮件中找到了我,我将其作为流读取并尝试使用 MimeKit 对其进行解密,但它失败了Operation is not valid due to the current state of the object.

遵循https://github.com/jstedfast/MimeKit上的示例也无济于事。任何熟悉 MimeKit 的人都可以插话吗?

编辑:

解密 p7m 后,我应该使用MimeParser来解析内容吗?我从解密中得到以下信息:

但是当用 解析时MimeParser

更新:

啊,原来如此,调用Decrypt只给了我SignedData,然后我需要调用验证来提取原始数据......这有点误导,我以为Verify只是验证它......这就是为什么我没有打扰调用它,因为我真的不需要验证它......也许应该Decode改为调用它?这就是我最初尝试做的,((MimePart) signedData).Content.DecodeTo(...).

所以最后,我不得不做这样的事情来提取数据。

0 投票
1 回答
995 浏览

c# - 将 RSASSA-PSS 和 RSAES-OAEP 与 MailKit 一起使用

我必须与一些商业伙伴交换加密和签名的电子邮件。需要特定的算法,例如:

  • 对于签名,RSASSA-PSS 作为签名算法,
  • 用于加密,RSAES-OAEP 用于密钥加密,AES-128 CBC 用于内容加密

我在使用 Mailkit 进行设置时遇到了麻烦,实际上在它背后是 MailKit 和 BouncyCastle。这是我到目前为止的位置:

用于解密和签名验证

解密正文是可以的,我在 Windows 商店中设置我的私钥后,使用 WindowsSecureMimeContext 进行解密

验证签名不行

发件人的证书由通用 CA 签名,因此我再次使用 WindowsSecureMimeContext,但 verifyData.All(o => o.Verify()) 抛出 DigitalSignatureVerifyException(“无法验证数字签名:未知错误”-1073700864 “。”)

用于签名和加密

嗯,这看起来很难...

对于签名,似乎我需要一个 BouncyCastle 的 PssSigner,我可以通过覆盖 DkimSigner 来获得它,尤其是 DigestSigner 属性

但是我不知道在哪里使用它。也许在使用 MimeMessage.Sign() 时,但是我对方法签名中所需的参数有点迷失了

对于加密,我可以在 BouncyCastle 的库中找到 RsaesOaepParameters,但我不知道如何使用它。

邮件专家的任何帮助将不胜感激!

0 投票
1 回答
1440 浏览

c# - 您如何使用 mimekit 解析电子邮件地址的集合?

使用 .NET MailAddressCollection,您可以调用.Add(addresses)其中地址是逗号分隔的电子邮件地址列表。Mimekit 是否有等价物?

我不想打电话String.Split,因为这没有考虑引号内的逗号。

0 投票
2 回答
129 浏览

c# - 使用 MimeKit 转换 CDATA 格式字符串

我有 CDATA 格式的字符串数据。如何在 C# 中将其转换为 Html 或普通视图文本?我应该使用 mimeKit 还是其他东西?

0 投票
1 回答
638 浏览

vb.net - DKIM Signing an email using MimeKit in a vb.net project

I'm using MimeKit to send emails and the use of DKIM to sign them has been broached. I've looked at the example on the MimKit site, and googled the terms but found no answers.

When instantiating the signer it requires a filename, domain and selector. If I'm sending an email from "bob@website.com" I would assume that the physical file would be placed on the root of the site and the instantiation would look something like this:

But not sure the format/reason for the AgentOrUserIdentifier ... can anyone edify me or correct me if my assumptions are wrong?

0 投票
1 回答
593 浏览

c# - 如何从流中创建 BsonDocument (c#)

我想将从服务器读取的电子邮件插入到 MongoDB。我使用 MimeKit 从服务器获取电子邮件。尝试直接插入mimeMessage.ToBsonDocument()我得到System.InvalidOperationException: 'Timeouts are not supported on this stream.'所以我猜测消息对象使用内部流从服务器读取数据。

我现在想使用内存流首先将数据写入流,然后从该流创建 BsonDocument。

我在这里读到,最好的方法是使用BsonDocument.ReadFrom(ms);但编译器在 BsonDocument 中找不到方法“ReadFrom”。

此方法是否已在较新版本中替换?什么?或者从流中创建 BsonDocument 的最佳方法是什么?

谢谢

0 投票
0 回答
308 浏览

.net - Mailkit / Mimekit、七位编码和点填充问题

我最近在一个 .net Web 项目中使用 Mailkit / Mimekit 实现了 DKIM。以前我发送纯 HTML 电子邮件,一切都很好。现在我正在使用 7 位编码准备消息,我一直在丢失句点(句号)。

我唯一能想到的就是我对点填充感到不满(句点始终在同一个地方丢失),但我不知道如何解决这个问题。应该注意的是,由于内容不匹配(即缺少句点),客户端中的 DKIM 失败

引用点填充(参见 4.5.2 下的第二个要点):https ://www.rfc-editor.org/rfc/rfc5321#section-4.5.2

注意:如果我使用签名功能在没有 DKIM 的情况下发送完全相同的电子邮件,则内容是 100% 正确的(没有遗漏)。

任何人都可以提供任何建议,或者告诉我我是否在这里有点厚?

非常感谢!

0 投票
0 回答
655 浏览

c# - 使用 MAILKIT c# 以降序/倒序检索电子邮件

mailkit目前正在使用检索电子邮件。我正在使用这段代码:

问题是,因为我只是在检索Dates,我可以看到电子邮件是以相反的顺序检索的。我的意思是,Mailkit将电子邮件从最后一封电子邮件中提取到它应该从第一封到最后一封的地方。例如,我邮箱中的最后一封电子邮件是 2014 年 2 月 3 日,第一封邮件是 2018 年 1 月 1 日。

现在Mailkit首先加载最后一个并最终到达第一个,以正确的降序检索的任何方式 - 从第一封到最后一封电子邮件?

另外,有没有办法Unique Id为每条消息获取一个我可以找到/过滤消息的方法?

我试过这个:

但它甚至不返回一条消息

0 投票
1 回答
711 浏览

vb.net - Mailkit POP3:获取没有标题的附件文本

我下载带有 CSV 文件的 POP3 消息。我需要在附件中获取纯文本,我这样做:

这项工作如果

但是,例如,如果MediaType = application我无法投射BodyPartTextPart并访问该.Text属性。

我可以使用完整的附件文本,BP.ToString但它会返回所有内容,包括。标题:

1:无论中的值如何,如何获取正文部分的附件文本ContentType..

2:我在进行过滤之前下载了整个邮件/附件。如何仅下载要在过滤中使用的附件标头?

0 投票
1 回答
1315 浏览

c# - 从加密/签名邮件下载附件

我正在尝试处理签名和加密的电子邮件。更准确地说,我想下载一个附加的 Excel 文件。

据我目前所知,我拥有一个 pfx 文件(带有密码),它是一个包含用于解密的私钥和用于验证邮件发件人的证书(公钥)的存档。

编辑

在jstedfast的帮助下,我现在展示了一个最小的工作示例。