- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 C# 代码轮询一个 gmail 帐户。我正在使用 Mailkit 库 ( https://github.com/jstedfast/MailKit )。当我告诉客户端使用 SSL 时,我可以成功连接:
using (var client = new ImapClient ())
{
client.Connect ("imap.friends.com", 993, true);
client.Authenticate ("joey", "password");
client.Disconnect (true);
}
但我的理解(可能是错误的)SSL 是不安全的,我们不应该使用它。所以我试图强制 TLS 连接:
using (var client = new ImapClient ())
{
client.Connect ("imap.friends.com", 993, SecureSocketOptions.StartTls);
client.Authenticate ("joey", "password");
client.Disconnect (true);
}
但是 client.connect
行的错误:
Message: The IMAP Server has unexpectedly disconnected
Stack Trace:
at MailKit.Net.Imap.ImapStream.<ReadAheadAsync>d__54.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MailKit.Net.Imap.ImapStream.<ReadTokenAsync>d__69.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MailKit.Net.Imap.ImapEngine.<ConnectAsync>d__140.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at MailKit.Net.Imap.ImapClient.<ConnectAsync>d__81.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MailKit.Net.Imap.ImapClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken)
我正在使用协议(protocol)记录器运行,但这并没有告诉我太多,它只包含 1 行:
Connected to imap://imap.gmail.com:993/?starttls=always
所以我想我的问题是:
1) 我应该担心使用不安全的 SSL 3.0 访问 gmail 吗?我很难相信他们会强制我使用已弃用的安全协议(protocol)。
2) 如果是这样,我如何强制建立 TLS 连接,以便为我的应用程序服务器上的客户端关闭 SSL3.0?
最佳答案
MailKit 有两种不同的 SSL/TLS 方式:
您正在尝试使用第二种模式,但您正在连接到需要第一种模式的端口 (993)。
SSL 和 TLS 的哪个版本与这些模式中的任何一个一起使用完全取决于服务器支持什么(实际上,从技术上讲,MailKit 默认不支持任何版本的 SSL,它仅支持 TLSv1.0、TLSv1.1 和 TLSv1.2 - 几年前我默认删除了 SSLv3)。
您可以通过设置 client.SslProtocols
来更改您希望限制 MailKit 的受支持 SSL 和/或 TLS 版本的方式。属性(property)。
关于c# - 使用 TLS 而不是 SSL 使用 Mailkit ImapClient 连接到 gmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52642607/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!