利用python发送邮件

找了很多使用python发送邮件的文章, 发现写的并不是太全, 导致坑特别多, 刚把这个坑跨过去, 在此记录下来

本代码使用163作为发送客户端, 接收邮箱随意

首先登录163邮箱, 开启POP3/SMTP/IMAP服务, 此过程需要验证第三方客户端登录验证权限, 并单独设置一个授权密码, 这个密码要记住

#!/usr/bin/env python
#coding:utf-8 import smtplib
from email.mime.text import MIMEText def send_mail(target_mail, content, subject):
#收件人
to_user = target_mail
#发件人
from_user = 'xxx@163.com'
#注意这里的密码是之前开启服务时的授权码, 并不是邮箱密码
from_mail_pass = 'xxxxxxxx'
#这个是163的smtp服务器
mail_host = 'smtp.163.com' msg = MIMEText(content, _subtype='plain', _charset='us-ascii')
#邮件主题
msg['Subject'] = subject
msg['From'] = from_user
msg['To'] = to_user #连接服务器
server = smtplib.SMTP()
server.connect(mail_host)
#使用ehlo声明表示需要认证, 之后才能登录
server.ehlo()
#starttls表示提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。
server.starttls() server.login(from_user, from_mail_pass)
#发送邮件
server.sendmail(from_user, to_user, msg.as_string())
server.close()
print '发送成功' target_mail = raw_input('收件人: ')
subject = raw_input('主题: ')
content = raw_input('正文: ') send_mail(target_mail, content, subject)

具体邮件流程参考: http://www.cnblogs.com/yank/archive/2008/08/03/1258428.html

上一篇:用Python发送邮件


下一篇:Error when sending message to topic test with key: null, value: 2 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)