在python中使用smtplib时出错

2024-04-27 10:04:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用smtplib,想用它来自动化我公司的群发邮件过程。 我试过这个基本的脚本-

#!/usr/bin/env python
import smtplib

server = smtplib.SMTP('smtp.gmail.com:587')
user_mail = '[user_email]@gmail.com'
user_pwd = '[password]'
rcv_mail = '[reciever_email]@yahoo.com'
msg = 'Test'

server.login(user_mail, user_pwd)

server.ehlo()
server.starttls()
server.sendmail(user_mail, rcv_mail, msg)
server.quit()

我没有像在我的程序中那样使用这个脚本,这只是为了了解smtplib是如何工作的。 我得到了这个错误

^{pr2}$

在以前的其他迭代中,我尝试过使用email模块中的MIMEMultipart和MIMEText,并且还得到了其他异常作为输出,比如ServerAuthenticationError(<;—我在这一次中进行了一些打印调试,发现异常是从服务器登录名()声明)。在

我的要求是,有人能向我解释一下这些例外情况,并告诉我需要做些什么来消除它们吗?我不需要一个有效的代码,只要一个好的解释。在

编辑:之前有一个语法错误,我更正了。例外情况是:

Traceback (most recent call last):
File "sampleSMTP.py", line 10, in <module>
    server.login(user_mail, user_pwd)
File "/usr/local/lib/python2.7/smtplib.py", line 585, in login
    raise SMTPException("SMTP AUTH extension not supported by server.")
smtplib.SMTPException: SMTP AUTH extension not supported by server.

我最初的问题是——这些异常是如何在smtplib方法中产生的,以及我如何解决它们?在


Tags: 脚本comserveremailusrpwdloginmail
2条回答

server = smtplib.SMTP('smtp.gmail.com:587') server.ehlo() server.starttls()

和13;
和13;

这是一个相同的问题。在

在创建SMTP对象时,应将主机名提供为名称:端口。 所以,server = smtplib.SMTP('smtp.gmail.com. 587')是不正确的。 它应该是server = smtplib.SMTP('smtp.gmail.com:587')。在

如果在此之后出现错误,请参考此线程:How to send an email with Gmail as provider using Python?

相关问题 更多 >