问题标签 [mailkit]

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 回答
5876 浏览

c# - 在 Mailkit 中回复邮件

我正在为我的项目使用 Mailkit 库(Imap)。

我可以通过 SmtpClient 轻松地发送一条新消息。

目前我正在研究如何回复特定邮件。是否可以向该回复邮件添加更多收件人?

@jstedfast 谢谢你的精彩:)

0 投票
2 回答
8711 浏览

c# - 尝试使用 MailKit 连接到邮件服务器时出现 AuthenticationException

我正在MailKit尝试通过 SMTP 通过交换服务器发送电子邮件,但是当我尝试连接时出现以下错误:

MailKit.dll 中出现“System.Security.Authentication.AuthenticationException”类型的异常,但未在用户代码中处理

附加信息:根据验证程序,远程证书无效。

谷歌搜索这会带来很多关于 Gmail 的内容或作为其他错误消息的一部分(如 FTP 或 Web api 请求等)。我已经和 IT 人员谈过了,它不是自签名证书,我们不需要身份验证(事实上,我管理的 BugZilla 实例设置了相同的设置并且工作正常)。我做错了什么或如何获得更多详细信息以进一步排除故障?

编辑:我已经与 IT 核实,它与 IIS 中使用的证书相同,用于托管mail.address.com domain以及交换。我也将它安装为受信任的根,但仍然得到同样的错误。

编辑2:如果我将代码更新为,Client.Connect("mail.address.com", 587, true);则会收到错误消息:

>System.Private.Networking.dll 中出现“System.IO.IOException”类型的异常,但未在用户代码中处理

附加信息:由于意外的数据包格式,握手失败。

0 投票
1 回答
496 浏览

c# - Exchange MailKit 反应缓慢

当我在 Exchange 服务器上使用 MailKit 时,我从 Exchange 服务器日志中看到以下流程,显示 starttls 和功能之间的时间过长(大约 15 秒),有时这个相同的过程大约需要 20 毫秒,这是一个巨大的差异!

流程如下所示:

在 MailKit 中,我每次都创建一个新的 ImapClient,如下所示:

  1. 使用 NullProtocolLogger() 作为参数创建新的 ImapClient。
  2. 使用(用户名、密码、假)参数调用此客户端的 .Connect()。
  3. 使用新的 NetworkCredentials 调用此客户端的 .Authenticate()。
  4. 获取收件箱文件夹并接收我正在寻找的邮件。
  5. 调用此客户端的 .Disconnect(true)。

我不明白为什么 Exchange 服务器偶尔会偶然发现“starttls”和“capability”之间的相同顺序。

有任何想法吗?是 Exchange 服务器问题,还是 MailKit 问题?

0 投票
2 回答
844 浏览

vb.net - “MimeKit.ParserOptions”的类型初始化程序引发异常

除了使用 MimeKit 的 DkimSigner 和 MailKit 的 Smtp 客户端之外,我正在使用现有的 System.Net.Mail.MailMessage 进行测试,MimeKit 支持直接转换为 MimeMessage。

我收到“'MimeKit.ParserOptions' 的类型初始化程序引发了异常。” 堆栈跟踪提到“在 MimeKit.MimeMessage.CreateFromMailMessage(MailMessage 消息)”

还有一个内部异常:“'MimeKit.Utils.CharsetUtils' 的类型初始化程序引发了异常。” Stacktrace:'在 MimeKit.ParserOptions..ctor() 在 MimeKit.ParserOptions..cctor()

我的开发框没有任何异常,但只执行到转换和签名,而不是实际的 smtp 发送。

0 投票
1 回答
404 浏览

c# - 发送给收件人,同时在收件人列表中列出其他人

我想向一个人发送电子邮件,但“发送给”列表显示了许多人。(我不希望其他人收到电子邮件)。

许多文章(此处此处)建议为 smtp 地址和 mime 地址指定不同的值是完全合法的。

我正在使用 MailKit,这就是我目前所拥有的:

有什么我可以添加的,所以只有 Fidel 收到电子邮件,但看起来它是发送给多个人的?

(链接1中的问题类似,但主要讨论“发件人”地址。我认为我的问题不应该被标记为重复,因为它与“收件人地址”有关,并且会更容易被其他用户找到。毕竟,当我研究我的特定问题时,花了一段时间才找到其他链接)。

0 投票
1 回答
2256 浏览

c# - MailKit SMTPUTF8 错误

我同时使用 MimeKit 和 MailKit 通过 SMTP 服务器发送电子邮件。但是,时不时地,我有一个服务器会向我抛出一个错误:

显然,我想阻止这些错误的发生。MimeKit 中是否有办法禁用 SmtpClient、MimeMessage 或 MimeEntity 上的 SMTPUTF8 扩展?

我担心我问错了问题,或者在错误的地方寻求解决方案。如果有人可以对可能措辞不当的问题进行澄清,请告诉我。

这是我发送的方式:

0 投票
1 回答
1195 浏览

c# - 在生产服务器上使用 SSL 身份验证在 IMAP 上获取链状态“RevocationStatusUnknown”

在我的系统中,客户端告知电子邮件服务的配置,该服务负责在系统内传递和接收日志通信。当我尝试在 ASP.NET 网站内使用 MailKit 从生产 Windows 2008 R2 服务器测试与 SSL IMAP 服务器的连接时,出现此错误:

异常:System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效。 System.Security.Cryptography.X509Certificates.X509ChainStatus 状态:RevocationStatusUnknown -“吊销功能无法检查证书的吊销”

当我尝试从我的电脑或虚拟机 Windows 2008 R2 服务器连接时,连接成功。而且,当我尝试通过命令行从生产服务器连接 OpenSSL.dll 时,连接成功。我使用相同的代码制作了一个控制台应用程序,没有任何更改,并且该应用程序可以连接到 IMAP 服务器,但是,当从网站或服务进行连接时,会引发错误。

这是代码:

有任何想法吗?

0 投票
1 回答
3534 浏览

dll - MailKit + MimeKit dll 下载

我已经彻底寻找答案,但我没有找到答案。我能够下载 c# 项目的项目文件,但我想使用 MailKit 库在 Windev 中接收邮件,因此需要 dll 以便更轻松地集成。谁能给我发个下载链接。我将不胜感激。

0 投票
1 回答
739 浏览

c# - 使用 mailkit 连接邮件时出错?

我的代码是:

Authenticate.eeror 上的错误是:

附加信息:POP3 服务器没有对 AUTH 命令做出 +OK 响应。

我的配置很好。如何修复它?

0 投票
1 回答
1480 浏览

email - 使用 Mailkit 创建 GMail 文件夹

我有一个使用 Mailkit 的 SMTP 和 IMAP 的电子邮件提供商。我目前使用的主要功能是从收件箱中读取消息,根据电子邮件的内容,它们将进入“已处理”或“已忽略”文件夹。在我们使用 Exchange 的现有系统中,这些文件夹作为收件箱的子文件夹存在。如果文件夹不存在,则会创建它们。示例代码片段如下:

这些都使用我自己的提供程序,该提供程序基于我们用于其他提供程序的接口,因此那里有一些对其他提供程序有意义的“奇怪”逻辑。GetInboxFolder 和 GetFolder 返回一个文件夹,但如果找不到,则返回 null。这适用于所有提供程序 - 如果文件夹不存在,则可以创建它们。

创建文件夹时出现问题。如果找不到文件夹,则应在收件箱文件夹下创建它们。如果这不能发生(例如在 Gmail 中),它应该在根文件夹中创建它们。但是,尝试在收件箱文件夹下创建文件夹并没有失败,它只是创建了一个名为“收件箱/文件夹名称”的标签。理想情况下,我希望创建此文件夹的任何尝试都失败,因此可以简单地在根目录上创建它。我想这是从 IMAP 到 GMail 标签系统的转换中的一个问题。

有没有办法阻止“收件箱/文件夹名称”标签,或者在创建它之前识别这个问题?或者有没有办法确定这是一个 gmail 服务器并为其实施特殊条款?

有关一些额外信息,CreateChildFolder 和 CreateFolderOnRoot 代码如下。

IMAPFolder 类

IMAPClient 类