使用来自 AWS 的 SES 发送电子邮件时出现“连接意外关闭”错误

死神

因此,我正在尝试使用 SMTP 和 AWS 向自己发送电子邮件。我在配置中使用的电子邮件经过验证,因为我仍在 SES 中使用沙箱模式。在运行脚本时,我一直收到错误消息,Connection unexpectedly closed即使我尝试与 OpenSSL 连接,它也已连接,但Didn't find STARTTLS in server response, trying anyway...连接后显示错误。

这是我的代码:

MAIL = {}
MAIL['USERNAME'] = 'AKIAXARHTFGFKCDAO7PD'
MAIL['PASSWORD'] = 'BE0tXPq8wteiKZYtgD2TgtfFTGhgFGOhUp3F0lG0uqn'
MAIL['HOST'] = 'email-smtp.eu-central-1.amazonaws.com'
MAIL['PORT'] = 465


# Set user code
            code = random.randrange(000000, 999999)
            # Send email to user
            print(code)
            print(current_user.email)
            msg = MIMEMultipart('alternative')
            msg['Subject'] = 'Ruby - Verification code'
            msg['From'] = '[email protected]'
            msg['To'] = current_user.email
            msg.attach(MIMEText(f'Your verification code is: {code}', 'plain'))
            try:
                server = smtplib.SMTP(MAIL['HOST'], MAIL['PORT'])
                server.ehlo()
                server.starttls()
                server.ehlo()
                server.login(MAIL('MAIL_USERNAME'), MAIL('MAIL_PASSWORD'))
                server.sendmail('[email protected]', current_user.email, msg.as_string())
                server.close()
            except Exception as error:
                print('Failed to send message to user')
                print(error)

OpenSSL 输出:

命令:

openssl s_client -connect email-smtp.eu-central-1.amazonaws.com:465 -starttls smtp

输出:

CONNECTED(00000005)
Didn't find STARTTLS in server response, trying anyway...
write:errno=0
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 372 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

我的文档来源:https : //docs.aws.amazon.com/ses/latest/DeveloperGuide/examples-send-using-smtp.html

利乔亚伯拉罕

端口 465 似乎有一些问题。将代码更改为下面,它会正常工作。

MAIL['PORT'] = 587

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JavaScript-使用AWS SES发送电子邮件

气流-使用AWS SES发送电子邮件

使用来自node.js的AWS SES在邮件中上传.jpg图像附件

1m后脚本损坏,状态失败,使用AWS SES发送电子邮件时PHP-Apache

尝试使用Alexa和AWS SES发送电子邮件。电子邮件将发送,但是Alexa将返回并且错误

使用 aws ses sdk(Java) 从亚太地区(孟买)发送电子邮件

无法使用Amazon AWS,SES和PostFix发送电子邮件

AWS SES不使用SendRawEmail操作发送电子邮件

使用Laravel Mail类通过AWS SES发送电子邮件

我可以使用域名下的任何电子邮件通过AWS SES发送电子邮件吗?

AWS SES发送电子邮件不起作用

发送电子邮件时,如何为Amazon SES服务提供AWS密钥?

发送电子邮件时,Node.Js AWS SES-ETIMEDOUT

通过AWS SES发送电子邮件时的Openssl问题

我是否需要打开端口25以便使用来自ec2实例的ses发送电子邮件

使用AWS SES / SNS接收电子邮件

无法使用Jenkins和SES发送电子邮件

AWS Lambda 无法通过 AWS SES 发送电子邮件

在AWS Lambda函数中通过AWS SES发送电子邮件

在Apache Airflow DAG中使用AWS SES发送失败电子邮件

如何使用Courier将文件附加到随AWS SES发送的电子邮件中?

将 PDF 文件附加到使用 AWS SES 发送的电子邮件

如何使用适用于PHP的AWS开发工具包通过具有专用IP的SES发送电子邮件?

没有针对所有域的IAM策略设置,无法使用AWS SES和Rails的Action Mailer发送电子邮件

无法使用Spring Cloud与AWS SES连接

通过AWS SES批量发送电子邮件,有什么想法吗?

Amazon AWS:通过SES发送电子邮件的速度超慢

如何通过AWS SES向多个收件人发送电子邮件

使用 Node.js 处理程序发送和发送电子邮件时出现 AWS Lambda NetworkingError