Python(3.x)学习者和整体菜鸟,在这里。
我正在编写一个非常基本的脚本,允许用户从cli发送电子邮件。
我对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服务器是否需要身份验证(例如:要求用户在需要时进行身份验证)。
我怎么能这样做?需要什么功能/模块/参数?