我想通过python脚本自动发送电子邮件。我目前使用expect脚本来使用openssl s_client连接到服务器。目前我们只使用一个证书文件和用户名密码,它允许我发送电子邮件。我发现另一个问题,其中提到,在python中,你需要使用hack或smtp类的包装来使用CA证书文件,而不是密钥文件(我没有)。使用python通过TLS发送电子邮件
>>> smtpobj = smtplib.SMTP("mymailserver.com",465)
Traceback (innermost last):
File "<stdin>", line 1, in <module>
File "C:\Program Files (x86)\Python35-32\lib\smtplib.py", line 251, in __init__
(code, msg) = self.connect(host, port)
File "C:\Program Files (x86)\Python35-32\lib\smtplib.py", line 337, in connect
(code, msg) = self.getreply()
File "C:\Program Files (x86)\Python35-32\lib\smtplib.py", line 390, in getreply
+ str(e))
smtplib.SMTPServerDisconnected: Connection unexpectedly closed: [WinError 10054] An existing connection was forcibly closed by the remote host
我现在面临的问题是我无法通过python连接到服务器。
如果我使用的证书文件通过
smtplib.SMTP_SSL(myserver, port, certfile="mycert.cert")
进行连接,然后它引发以下错误。
ssl.SSLError: [Errno 336265225] _ssl.c:339: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib
请注意,我能够连接到服务器使用thunderbird,没有证书文件。任何想法,关于如何使用python smtp(tls)发送电子邮件?
感谢您的理解! SMTP_SSL像一个魅力工作 – Sanjay