Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用smtplib时出错_Python_Exception_Smtplib - Fatal编程技术网

在python中使用smtplib时出错

在python中使用smtplib时出错,python,exception,smtplib,Python,Exception,Smtplib,我不熟悉使用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.

我不熟悉使用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是如何工作的。 我犯了这个错误

Traceback (most recent call last):
  File "sampleSMTP.py", line 4, in <module>
    server = smtplib.SMTP('smtp.gmail.com. 587')
  File "/usr/local/lib/python2.7/smtplib.py", line 256, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/local/lib/python2.7/smtplib.py", line 316, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/local/lib/python2.7/smtplib.py", line 291, in _get_socket
    return socket.create_connection((host, port), timeout)
  File "/usr/local/lib/python2.7/socket.py", line 557, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known
回溯(最近一次呼叫最后一次):
文件“sampleSMTP.py”,第4行,在
服务器=smtplib.SMTP('SMTP.gmail.com.587')
文件“/usr/local/lib/python2.7/smtplib.py”,第256行,在__
(代码,消息)=自连接(主机,端口)
文件“/usr/local/lib/python2.7/smtplib.py”,第316行,在connect中
self.sock=self.\u获取\u套接字(主机、端口、self.timeout)
文件“/usr/local/lib/python2.7/smtplib.py”,第291行,在\u get\u套接字中
返回套接字。创建_连接((主机、端口),超时)
文件“/usr/local/lib/python2.7/socket.py”,第557行,位于create_connection中
对于getaddrinfo(主机、端口、0、SOCK_流)中的res:
socket.gaierror:[Errno-2]名称或服务未知

在之前的其他迭代中,我尝试从电子邮件模块中使用MIMEMultipart和MIMEText,并且我还得到了其他异常输出,例如ServerAuthenticationError(在创建
SMTP
对象时,您应该提供主机名作为name:port。 因此,
server=smtplib.SMTP('SMTP.gmail.com.587')
是不正确的。 它应该是
server=smtplib.SMTP('SMTP.gmail.com:587')


如果在此之后出现错误,请参考此线程:

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

如果在此之后出现错误,请参阅此线程:

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

server.starttls()
'smtp.gmail.com.587'
不是一个有效的主机名。还要注意,谷歌不喜欢群发邮件,会阻止你发送太多邮件。感谢你指出这一点——这是我的错别字。是的,我知道谷歌的垃圾邮件和群发邮件政策,但我认为这只是因为一次发送的邮件增加了太多收件人我计划为每个显示代码的Recipient发送个性化邮件,说您没有按原样使用它,并且没有导致代码的错误。对不起,由于我的水晶球当前不正常,我无法猜出您真正的代码是什么……如果您希望帮助修复错误,请显示代码和相关错误。@BumbleBee为什么不尝试使用SMTP SSL包装器(端口465)别忘了。
'smtp.gmail.com.587'
不是有效的主机名。还要注意,谷歌不喜欢群发邮件,会阻止你发送太多邮件。谢谢你指出这是我的错别字。是的,我知道谷歌的垃圾邮件和群发邮件政策,但我认为它只是因为在一个月内添加了太多收件人而起作用单发邮件?我计划为每个收件人发送个性化邮件。如果您显示代码,说您没有按原样使用,并且显示错误,但没有导致错误的代码。很抱歉,由于我的水晶球目前已损坏,我无法猜出您的真实代码是什么……如果您需要修复方面的帮助,请显示代码和相关错误ng错误。@BumbleBee为什么不尝试使用SMTP SSL包装器(端口465)并且不要忘记。
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.