问题标签 [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 回答
4301 浏览

mimekit - 在 MimeKit 上签名和加密

我被要求向我们的客户发送签名和加密的邮件,然而,这是我第一次与签名和加密的斗争(我想强调这一点)。

我尝试过使用 OpaqueMail 和 MimeKit。因为我对 OpaqueMail 的理解并不深入,而且我有自己的客户端来检索电子邮件,所以我发现理解和实施 MimeKit 要好得多。

我知道这是我在以下几行中所做的基本实现,但这只是第一次接触它,只是一个测试。我可以发送带有加密正文的签名电子邮件,问题来自附件(我们只是发送了带有附件文件的空正文,来自数据库)。

那么这里的问题:

签名和正文加密工作。但是当我尝试添加附件时,我可以打开它,但总是出现 BOM () 我可以看到附件,但是 Thunderbird 并没有告诉我它是一个附件,它就像电子邮件的正文一样。我不知道这是否是我实施的 ToStream() 的问题。此外,Thunderbird 无法显示正确的德语字符 (ÜüÖöÄäß),西班牙语 ñ

编辑 MimeKit.Decryption 方法也工作得很好,而且我得到了没有 BOM 的消息的正确编码并且附件在那里。对于 Thunderbird 客户端来说,这可能是个问题。


与 SecureMimeContext 相关,我们正在使用 HanaDB,我们希望将证书存储在那里、检索和使用它们,但我无法找到 IX509CertificateDatabase 的正确转换,所以暂时使用 WindowsStore。

编辑,我解决了数据库创建 WindowsSecureMimeContext 并覆盖导入以从数据库获取证书的问题。又快又脏。

编辑 2,这很难实现,因为我们使用 DAO 模板实现,我从 SecureMimeContext 创建了子类,我查看 WindowsSecureMimeContext 以了解这些方法的确切作用,并更改代码以适应我们的 DAO 内容。


我如何将 X509Certificate2 转换为 X509Certificate(BouncyCastle),就像参数 CmsRecipient 一样?

编辑,DotNetUtilities.FromX509Certificate 完成了这项工作。


是否可以制作“三重包裹”?签名,加密,再次签名。

编辑,是的

0 投票
2 回答
16952 浏览

c# - MimeKit:如何嵌入图像?

我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。

我尝试按照API 文档中的示例(“使用 BodyBuilder”部分)在电子邮件的 HTML 正文中嵌入图像。

我当前的代码如下所示:

我可以发送这封电子邮件,实际上图像附加到电子邮件中。但它不是嵌入式的。

我错过了什么吗?还是这是 Apple Mail 的错(这是我用来接收电子邮件的电子邮件客户端)?

我很感激任何想法(非常感谢 Jeffrey Stedfast 提供了如此出色的工具集!!)。

英格玛

0 投票
1 回答
4727 浏览

c# - MimeKit.MimeMessage 到浏览器可呈现的 HTML

有没有办法将 MimeKit.MimeMessage 转换为可以在 Web 浏览器中呈现的 HTML?我不关心邮件附件,但希望能够在浏览器中显示包含嵌入图像的邮件正文。我是 MimeKit 的新手,因此在 API 文档中找不到任何内容。任何信息表示赞赏。

编辑:我没有找到使用 MimeKit 本地执行此操作的方法,但我将它与 HtmlAgilityPack 结合以解析 MimeMessage.HtmBody 并修复内联图像。这似乎可行,除非有人有更好的主意,否则我会继续使用它。作为参考,下面是代码:

0 投票
1 回答
2688 浏览

c# - 如何访问嵌入式附件?

我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。

我正在使用 ImapClient 接收可以包含不同附件(图像、文本文件、二进制文件等)的电子邮件。

MimeMessage 的Attachment属性帮助我访问所有这些附件 --- 除非电子邮件是通过 Apple Mail 发送包含图像(Apple Mail 似乎没有附加带有 Content-Disposition“附件”的图像(阅读此处......来自 Jeffrey Stedfast 的评论)在最底部)。

嵌入的图像不是列出

我有哪些选择?真的要一个一个地遍历身体部位,看看里面是什么吗?还是有更简单的解决方案?

0 投票
1 回答
1298 浏览

c# - 如何保存附件?

我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。

我一直在阅读 API 文档和有关 stackoverflow 的几篇文章。但我仍然无法成功将电子邮件附件保存为文件。

这是我当前的代码:

我一直在用不同类型的附件尝试这段代码。我的光盘上创建的文件总是空的。

我错过了什么?

0 投票
1 回答
2796 浏览

c# - MimeKit:如何通过 MessageId 删除电子邮件?

我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。

使用 ImapClient 删除电子邮件非常简单......

...如果您知道电子邮件 UniqueId 或其索引。

就我而言,我不知道其中之一。我所拥有的只是消息本身 (MimeMessage) 和它的 MessageId。

我希望 MessageId == UniqueId,但显然情况并非如此。

我是否有机会通过拥有相应的 MimeMessage/MessageId 来删除电子邮件?

0 投票
1 回答
1120 浏览

c# - 使用 mailkit 在回复中引用原始消息

有什么方法可以在回复中引用原始消息?

例如:

嗨,我很好。

于 2015 年 7 月 16 日从:user@mail.com 发送至:我

嘿,杰夫,你好吗?

我知道我可以在新消息中“附加”原始消息,但我真的想引用原始消息。

0 投票
1 回答
847 浏览

c# - Mimekit:将过滤后的 Mbox 结果解析为新的 Mbox

在解析 Mbox、按条件过滤消息​​并将这些消息写入新流 => 文件后,生成的 Mbox 缺少 FROM 行。你能告诉我我是否犯了代码错误或者 MimeParser 函数中是否存在错误?

示例代码:

结果开始于:

送到了(送去了:

0 投票
1 回答
758 浏览

c# - 如何验证 dncrypted 的 MimeEntity,以及使用“”application/pkcs7-mime 签名的 fomart

当我解密签名和加密的消息时,我成功解密并得到一个“MimeEntity”,他的 smime-type 是“signed-data”。

但签名格式不是“multipart/signed”,格式是“application/pkcs7-mime”。

我将它转换为“ApplicationPkcs7Mime”、“multipart”、“textpart”、“messagepart”,但我得到“null”值。

但是我可以在outlook中正常打开这条消息,我使用outlook发送这条消息,内容不是“mimikit”生成的。

我只会将“message.body”转换为“ApplicationPkcs7Mime”,但关于“解密的 MimeEntity”我该怎么办?

代码:

0 投票
1 回答
6073 浏览

c# - Mimekit/mailkit 下载邮件正文?

我最近一直在制作自己的邮件客户端并添加了一个接收选项,我使用 mimekit 和 mailkit 作为插件,并且能够使用应该显示内容的阅读器下载我的大部分邮件(现在它显示主题、收件人、来自, 日期)

我将主题下载到...的方式是 msg.envelope.subject, msg.envelope.to 但我不能像这样下载正文:(当执行 msg.body、msg.textbody、msg.bodyparts 时。 ..它们都没有结果,它应该是空的地方,我无法下载它:(

谁能帮我?