在python 3.3问题中发送电子邮件

时间:2014-02-28 22:20:32

标签: email python-3.x smtp

我正在尝试在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()

1 个答案:

答案 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