我正在尝试在python 3.3中发送电子邮件。 发送错误发送消息。 不返回语法错误。
感谢任何帮助。感谢!!!
import smtplib
TO = 'someGreatPerson@gmail.com'
SUBJECT = 'Test Email'
TEXT = 'Test Email From Py Script'
gmail_sender = 'sender@gmail.com'
gmail_passwd = 'sender'sPassword'
server = smtplib.SMTP( 'smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login('gmail_sender', 'gmail_passwd')
BODY = '\r\n'.join([
'To: %s' % 'TO',
'From: %s' % 'gmail_sender',
'Subject: %s' % 'SUBJECT',
'',
'TEXT'
])
try:
server.sendmail (gmail_sender [TO], BODY)
print ("email sent")
except:
print ("error sending email")
server.quit()
答案 0 :(得分:0)
允许传播异常,以查看完整的回溯。并启用调试输出,以查看与smtp服务器的交换:
#!/usr/bin/env python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header
smtp_host = 'smtp.gmail.com'
login, password = 'sender@gmail.com', "sender'sPassword"
to_emails = ['someGreatPerson@gmail.com']
msg = MIMEText('Test Email From Py Script…', 'plain', 'utf-8')
msg['Subject'] = Header('Test Email…', 'utf-8')
msg['From'] = login
msg['To'] = ", ".join(to_emails)
s = smtplib.SMTP(smtp_host, 587, timeout=10)
s.set_debuglevel(1) # enable debug output
try:
s.starttls()
s.login(login, password)
s.send_message(msg)
finally:
s.quit()
注意:starttls()
,login()
和sendmail()
会在必要时自行发送EHLO
。