7

我正在尝试使用电子邮件 python 脚本,并且想知道在编写基于 python 的电子邮件脚本时,与登录网页时通过 Internet 发送凭据相比,它是否安全?在以下脚本中,用户和传递是否明文?

import smtplib
from email.mime.text import MIMEText

GMAIL_LOGIN = 'xxxxxx@gmail.com'
GMAIL_PASSWORD = 'amiexposed?'

def send_email(subject, message, from_addr=GMAIL_LOGIN, to_addr=GMAIL_LOGIN):
    msg = MIMEText(message)
    msg['Subject'] = 'Test message'
    msg['From'] = from_addr
    msg['To'] = to_addr

    server = smtplib.SMTP('smtp.gmail.com',587)
    server.ehlo()
    server.starttls()
    server.ehlo()
    server.login(GMAIL_LOGIN,GMAIL_PASSWORD)
    server.sendmail(from_addr, to_addr, msg.as_string())
    server.close()

if __name__ == '__main__':
    send_email('testing email script', 'This is a test message')
4

1 回答 1

5

这完全取决于 TLS 连接的设置方式。如果您需要有效的证书(我相信如果遇到不受信任的证书,您的 startTLS 方法将引发异常(我不确定您是否应该验证这一点))。但考虑到您正在设置 TLS,并通过 TLS 连接发送所有内容,所有内容都应该加密。这意味着您的密码、用户名,甚至您的消息和收件人都不会以纯文本形式发送。

所以不,您的用户名和密码未发送 clear

于 2013-05-22T05:28:17.803 回答