问题标签 [starttls]

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 投票
0 回答
280 浏览

winapi - ldap_start_tls 为使用 winldap 的多线程应用程序返回 0x35

这是我使用 tls 使用 winldap 连接到 ldap 服务器的代码,它适用于单线程应用程序,当我将其与多线程的大型应用程序集成时,相同的代码不起作用,应用程序在 ldap_start_tls 函数中失败,我已经验证了错误的可能性,但没有线索,

错误代码是 0x35 (LDAP_UNWILLING_TO_PERFORM)

但 SSL 适用于我的应用程序。

我能够使用 SSL 对 ldapserver 进行身份验证。

我正在使用启用 SSL/TLS 的 opends

我尝试设置 LDAP_OPT_SERVER_CERTIFICATE 选项和返回 true 的回调函数来解决证书相关问题。

/如果它是单线程应用程序,它对 ssl 和 TLS 都适用的函数/

请有人帮我解决问题,

提前致谢。

0 投票
1 回答
4566 浏览

vbscript - 通过 TLS 发送电子邮件

我尝试使用 TLS 发送电子邮件,端口号为 587,服务器名称为 smtp.gmail.com,但总是出现错误“错误 '8004020e'”。我将 SSL 设置为 false,因为端口 587 身份验证是 TLS。我的代码有什么问题吗?

0 投票
1 回答
1038 浏览

smtp - 如何实现服务器端 SMTP STARTTLS?

我正在尝试使用 Vala 和 GLib + GIO 实现一个简单的 SMTP 服务器。

到目前为止,纯文本通信没有问题,但是当涉及到使用 STARTTLS 的 TLS 时,事情变得更加困难。

这是我到目前为止的代码:

给定一个有效的 SSL 证书(我用 生成)我启动程序并运行这个 OpenSSL 命令来测试 STARTTLS vsmtpd.keyvsmtpd.crtopenssl req -x509 -newkey rsa:2048 -keyout vsmtpd.key -out vsmtpd.pem -days 365 -nodes

我的程序的输出是:

OpenSSL 的输出是:

我从输出中了解到,我的程序在 TLS 握手完成之前关闭了连接。(我也尝试过使用 Thunderbird 和 Claws Mail)

我在这里做错了什么?

PS:我找不到任何关于如何GTLsServerConnection在 STARTTLS 情况下使用的示例。

更新:

我尝试了 OpenSSL 的 -ssl2、-ssl3、-tls1、-tls1_1、-tls1_2 选项,它们也不起作用。

产量:

所以客户端发送“client hello A”,但服务器没有发送正确的“server hello A”。

作为替代方案,您也可以尝试gnutls-cli --crlf --starttls-proto=smtp --port 10025 localhost.

的输出GNUTLS_DEBUG_LEVEL=11 ./vsmtpd是:

0 投票
1 回答
2552 浏览

java - 将 Gmail SMTP 服务器与 JavaMail 一起使用:必须首先发出 STARTTLS 命令(JavaMail 版本 1.4.1)

在发布之前,我在互联网上阅读了很多东西和建议的问题,但找不到任何适合我的东西。

  • 关于使用 gmail 的 JavaMail 常见问题解答
  • 堆栈溢出问题
  • JavaMail 教程
  • 谷歌搜索的任何其他结果

在过去的 5 天里,我一直在寻找解决方案,但找不到。

相关代码:

邮件调试日志文件:

调试:JavaMail 版本 1.4.1 ..... 调试:!anyLoaded

调试:未加载资源:/META-INF/javamail.address.map

调试:未加载文件:C:\Java\JDK16~1.0_4\jre\lib\javamail.address.map

DEBUG: java.io.FileNotFoundException: C:\Java\JDK16~1.0_4\jre\lib\javamail.address.map (系统找不到指定的文件)

港口:587

调试:getProvider() 返回 javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]

调试 SMTP:useEhlo true,useAuth false

调试 SMTP:尝试连接到主机“smtp.gmail.com”,端口 587,isSSL false 220 smtp.gmail.com ESMTP t2sm2978726wme.0 - gsmtp

调试 SMTP:连接到主机“smtp.gmail.com”,端口:587

埃洛福

250-smtp.gmail.com 为您服务,[212.156.0.126]

250 尺寸 35882577

250-8BITMIME

250-STARTTLS

250 增强状态代码

250-流水线

250 分块

250 SMTPUTF8

调试 SMTP:找到扩展名“SIZE”,arg“35882577”

调试 SMTP:找到扩展名“8BITMIME”,arg“”

调试 SMTP:找到扩展“STARTTLS”,arg“”

调试 SMTP:找到扩展“ENHANCEDSTATUSCODES”,arg“”

调试 SMTP:找到扩展“管道”,arg“”

调试 SMTP:找到扩展名“CHUNKING”,arg“”

调试 SMTP:找到扩展名“SMTPUTF8”,arg“”

运输:smtp://foo@smtp.gmail.com

调试 SMTP:use8bit false

发件人:< foo >

530 5.7.0 必须先发出 STARTTLS 命令。t2sm2978726wme.0 - gsmtp

调试 SMTP:得到响应代码 530,响应:530 5.7.0 必须先发出 STARTTLS 命令。t2sm2978726wme.0 - gsmtp

0 投票
1 回答
83 浏览

php - 在php中从smtp获取证书

我有一个可以从 https-connections 获取证书的 php 函数,是否可以将其扩展为也可以在 smtp-starttls 上使用?

我可以将它打开为“tcp://”,然后在发送“STARTTLS”命令后,将其切换为“ssl://”吗?

0 投票
1 回答
32307 浏览

python - 使用 STARTTLS 从 Python 发送电子邮件

我想使用 Python 的 smtplib 发送带有 Python 脚本的电子邮件。

如果可以建立与服务器的加密连接,脚本应该只发送电子邮件。要加密与端口 587 的连接,我想使用 STARTTLS。

使用一些示例,我编写了以下代码:

msg、主机、端口、用户、密码是我脚本中的变量。我有两个问题:

  • 连接是始终加密还是容易受到 STRIPTLS 攻击(https://en.wikipedia.org/wiki/STARTTLS)。
  • 我应该使用 SMTP 对象的 ehlo() 方法吗?在某些示例中,它在调用 starttls() 之前和之后显式调用。另一方面,在 smptlib 的文档中,如果有必要,sendmail() 将调用它。

[编辑]

@tintin 解释说,这ssl.create_default_context()可能会导致不安全的连接。因此,我通过以下方式使用一些示例更改了代码:

对于密码设置,我使用了一些最新版本的代码ssl.create_default_context()。这些设置合适吗?

注意:在我原来的问题的代码中是一个错误。这是相关行的正确版本:

[\编辑]

0 投票
1 回答
6827 浏览

jakarta-mail - Javamail 和 STARTTLS 不能在不同的平台上运行

我创建了一个使用 STARTLS 发送电子邮件的示例。在托管在不同域的 3 个不同 Windows 版本上运行它,一切正常。

奇怪的是,当我在 Ubuntu Server 14.02 LTS 上运行它时,它不起作用。没有防火墙阻止,Java 应用程序二进制文件是相同的。

这是代码:

这是来自 Windows 环境的 javamail 日志(什么工作):

这是来自 Ubuntu 的日志(环境不工作):

这是调用堆栈错误:

Java版本:1.8.0_60-b27

为什么会这样?

0 投票
0 回答
622 浏览

java - 为什么我在尝试发送邮件时在握手期间收到远程主机关闭连接?

我在 weblogic 12c 中运行了一个发送邮件的 Web 应用程序。我有 2 个亚马逊实例,其中 1 个实例是具有不同 IP 的第一个实例的克隆。所以在原始实例中我发送邮件没有问题,但在克隆实例中我得到下一个异常:

这是我发送邮件的代码:

这是我的属性:

我也尝试使用此属性:

我什至尝试放置属性,所以我不使用 TLS 或 SSL,但在我的克隆实例中,我总是得到相同的异常,在我的原始实例中发送邮件。有什么问题?提前致谢。

0 投票
1 回答
219 浏览

php - 使用套接字和 STMP TLS 的意外服务器响应

这是我第一次使用 SMTP 做任何事情,所以如果我在这里做错了什么,请耐心等待 :)通常,我只使用 PHPMailer,但在这种情况下这不是一个选项。

我正在尝试向邮件列表中的人发送电子邮件。我正在使用 fsockopen,我需要使用 TLS 连接来执行此操作。

这就是我所做的:

  • $conn = fsockopen() // 我的详细信息在那里,它连接。
  • HELO myhost.com (fwrite)
  • STARTTLS (fwrite)
  • stream_socket_enable_crypto($conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
  • HELO myhost.com (fwrite)
  • 授权登录(fwrite)
  • base64_encoded USERNAME (fwrite)
  • base64_encoded PASSWORD (fwrite)
  • 发件人:(fwrite)
  • RCPT到:;(写)
  • 数据(写入)
  • 一个包含我所有标题的字符串(fwrite)
  • fclose($conn);

这是出问题的地方

使用加密连接后,我似乎无法成功读取服务器响应。例如,当尝试通过fgets($conn,1024)在我的身份验证后使用来读取响应时,它需要永远,然后最后我将获得一个高度加密的代码,无法查找响应“235”(以确保我的身份验证成功)。

然后当我写 MAIL FROM 时,我的回复将如下所示:

虽然我想我想要这样的东西:

出了点问题,但我不知道为什么。我希望你们所有的专家都可以帮助我解决这个问题:)

提前致谢!

解决了

以防其他人遇到这个问题。

此订单有效

  • $conn = fsockopen() // 我的详细信息在那里,它连接。
  • EHLO myhost.com (fwrite)
  • STARTTLS (fwrite)
  • stream_socket_enable_crypto($conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
  • EHLO myhost.com (fwrite)
  • 授权登录(fwrite)
  • base64_encoded USERNAME (fwrite)
  • base64_encoded PASSWORD (fwrite)
  • 发件人:(fwrite)
  • RCPT到:;(写)
  • 数据(写入)
  • 一个包含我所有标题的字符串(fwrite)
  • fclose($conn);

在每次通话之间,我添加了以下内容:

突然,我从服务器收到了预期的回复,邮件成功发送。

0 投票
1 回答
462 浏览

python - Python 无法通过 iRedMail 发送电子邮件

我已经在我的邮件服务器上安装了 iRedEmail。现在它有默认证书。当我使用普通的电子邮件客户端时,它要求我信任邮件服务器的证书,然后它开始从邮件服务器接收/发送电子邮件

但是,如果我编写自己的 python 程序来发送电子邮件,那么我不知道如何像电子邮件客户端那样做同样的事情。目前python给出错误“服务器配置问题”