Python邮件脚本中的SMTP身份验证

时间:2013-12-13 15:56:48

标签: python email python-3.x smtp smtplib

Python(3.x)学习者和整体菜鸟,在这里。

我正在编写一个非常基本的脚本,允许用户从cli发送电子邮件。

在阅读了一点(here)之后,我以this示例作为起点。

我对SMTP感到好奇,并发现“原始SMTP规范没有包含发件人身份验证设施”。 (维基百科)

作为一个新手,我很惊讶地发现,我可以使用任何“来自地址”的电子邮件通过指定某些SMTP服务器而不使用任何形式的身份验证,实际上这些服务器不需要身份验证。这是该程序的一个非常基本的版本:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

user_server = input("Input SMTP> ") 
server = smtplib.SMTP(user_server)
server.ehlo()
#server.starttls() <-- commented out 
server.ehlo()
#server.login("user@service.com","password") <-- commented out

fromaddr = input("Insert from-address> ")
toaddr = input("Insert to-address> ")
subject = input("Insert Subject> ")

msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = subject

body = "Testing"
msg.attach(MIMEText(body, 'plain'))

text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)

我希望我的脚本能够正常工作,无论选择的SMTP服务器是否需要身份验证(例如:要求用户在需要时进行身份验证)。

我怎么能这样做?需要什么功能/模块/参数?

0 个答案:

没有答案