模版
import smtplib #导入相关模块 from email.mime.text import MIMEText from email.utils import formataddr
def mail(): ret="ok" try: msg = MIMEText("邮件内容","plain","utf-8") msg["From"] = formataddr(["发件人",'发件人邮箱']) msg["To"] = formataddr(["收件人",'收件人邮箱']) msg["Subject"]="主题" server=smtplib.SMTP("smtp.qq.com",25) #server.starttls() #server.ehlo() server.login("发件人邮箱","发件人密码") server.sendmail("发件人邮箱",['收件人邮箱',],msg.as_string()) server.quit() except Exception,e: ret =e return ret ret=mail() print ret
加入try,except可以看到错误信息
当然编写完后会有几个问题。下面是我遇到的几个问题,并附上解决方案。
server=smtplib.SMTP("smtp.qq.com",25)
使用25端口报错
(530, 'Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28')
端口号需要改成加密连接,smtp.qq.com,使用SSL,端口号465或587
用587端口后提示错误
(530, 'Must issue a STARTTLS command first.')
需要在
server=smtplib.SMTP("smtp.qq.com",587)
后面加上
server.starttls()
用465的话则需要将SMTP改成SMTP_SSL
server=smtplib.SMTP_SSL("smtp.qq.com",465)
至此,可正常发送邮件。
新手如有错误欢迎大神们指点。
浙公网安备 33010602011771号