[英]How Do I Send Emails Using Python 3.4 With GMail?
I've been trying bits of code such as: 我一直在尝试一些代码,例如:
import smtplib
def sendemail(from_addr, to_addr_list, cc_addr_list,
subject, message,
login, password,
smtpserver='smtp.gmail.com:587'):
header = 'From: %s\n' % from_addr
header += 'To: %s\n' % ','.join(to_addr_list)
header += 'Cc: %s\n' % ','.join(cc_addr_list)
header += 'Subject: %s\n\n' % subject
message = header + message
server = smtplib.SMTP(smtpserver)
server.starttls()
server.login(login,password)
problems = server.sendmail(from_addr, to_addr_list, message)
server.quit()
sendemail(from_addr = 'python@RC.net',
to_addr_list = ['example@gmail.com'],
cc_addr_list = ['example@gmail.com'],
subject = 'Howdy',
message = 'Hello!',
login = 'example@gmail.com',
password = 'XXXX')
Except with an actual password and details. 除非带有实际密码和详细信息。
It brings this error: 它带来此错误:
Traceback (most recent call last):
File "User/Python/Email.py", line 27, in <module>
password = 'lollol69')
File "User/Python/Email.py", line 15, in sendemail
server = smtplib.SMTP(smtpserver)
File "C:\Python34\lib\smtplib.py", line 242, in __init__
(code, msg) = self.connect(host, port)
File "C:\Python34\lib\smtplib.py", line 321, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "C:\Python34\lib\smtplib.py", line 292, in _get_socket
self.source_address)
File "C:\Python34\lib\socket.py", line 509, in create_connection
raise err
File "C:\Python34\lib\socket.py", line 500, in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Ideally, I could know what's wrong with the code and how I can fix this. 理想情况下,我可以知道代码有什么问题以及如何解决。 If it's totally wrong then some working code with Gmail would be greatly appreciated.
如果完全错误,那么不胜感激Gmail的一些工作代码。
Thanks! 谢谢!
You have to split the smpt server address and the port and use them as separate parameters for smtplib.SMTP('smtp.gmail.com', 587)
See https://docs.python.org/3.4/library/smtplib.html : 您必须拆分smpt服务器地址和端口,并将它们用作
smtplib.SMTP('smtp.gmail.com', 587)
单独参数,请参阅https://docs.python.org/3.4/library/smtplib.html :
import smtplib
def sendemail(from_addr, to_addr_list, cc_addr_list,
subject, message,
login, password,
smtpserver='smtp.gmail.com', smtpport=587): # split smtpserver and -port
header = 'From: %s\n' % from_addr
header += 'To: %s\n' % ','.join(to_addr_list)
header += 'Cc: %s\n' % ','.join(cc_addr_list)
header += 'Subject: %s\n\n' % subject
message = header + message
server = smtplib.SMTP(smtpserver, smtpport) # use both smtpserver and -port
server.starttls()
server.login(login,password)
problems = server.sendmail(from_addr, to_addr_list, message)
server.quit()
sendemail(from_addr = 'python@RC.net',
to_addr_list = ['example@gmail.com'],
cc_addr_list = ['example@gmail.com'],
subject = 'Howdy',
message = 'Hello!',
login = 'example@gmail.com',
password = 'XXXX')
By the way: change your gmail password as it was posted in the stacktrace 顺便说一句:更改您的Gmail密码,该密码已在stacktrace中发布
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.