作者:阿乐
还记得七夕那天的菜头嘛,用R代码写了封优雅的情书给女神,博得美人一笑。用Python的菜尾让阿乐来篇python代码的情书,今天,它来了。
通过Python发送邮件,主要是借助smtplib和email 模块,阿乐提供了两套方案给菜尾。
01 最常用的姿势
了解阿乐的都知道,阿乐喜欢以身敬人,所以话不多说,亮招。实际使用时,只需要把邮箱、密码、主机、端口换成自己邮箱邮箱的即可。
# 01 导入模块
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
# 02 封装函数(因为参数过多,以及方便调用就封装)
# (参数为 标题、收件人、抄送人、正文)
def send_mail(subject, _to_list, _to_cc_list, content):
_user = '[email protected]' # 邮箱用户名
_pwd = '123456' # 邮箱密码 (如果需要开通授权码的先开通再填入授权码)
msg = MIMEMultipart()
msg['Subject'] = subject # 标题
msg['From'] = _user
msg['Cc'] = ",".join(_to_cc_list)
msg['To'] = ','.join(_to_list)
part1 = MIMEText(content, 'html', 'utf-8') #正文
msg.attach(part1)
# 构造附件。非必须,根据实际使用
# att2 = MIMEApplication()
# att2.add_header()
# msg.attach(att2)
try:
s = smtplib.SMTP()
s.connect('email.baidu.com', 25) #25为SMTP端口号,根据具体邮箱定
s.starttls()
s.login(_user,_pwd)
s.sendmail(_user, _to_list + _to_cc_list, msg.as_string())
return True
except:
return False
# 03 发送邮件
subject = '来自荔枝星球的一封信'
p1 = '''
您好,系统自动为你推送本日的荔枝售卖业绩报表
'''p2 = '''
-- 荔枝星球数据中心
'''html = p1 + p2 #正文内容,根据实际情况写html
_to_list=['[email protected]']
_to_cc_list= ['[email protected]']
send_mail(subject, _to_list, _to_cc_list, html) #发送
无图不欢,我们来看下效果,嗯,还是可以哒。
02 最简单的姿势
菜尾拿到代码转身便想走,阿乐拿出了另一段短小精悍的代码。
import yagmail
yag = yagmail.SMTP(user="[email protected]" #邮箱
, password="1234568" #密码
, host='smtp.163.com')
subject='来自荔枝星球的一封信' #邮箱标题
p1 = '''
您好,系统自动为你推送本日的荔枝售卖业绩报表
'''p2 = '''
-- 荔枝星球数据中心
'''contents= p1 + p2 + p3 #邮箱正文
# 发送邮件
yag.send('[email protected]',subject,contents,cc='[email protected]')
03 写在结尾
菜尾心系女拿着代码就去开干了,不过阿乐在这里多提一句。无论是哪种方式都可以实现我们的发送邮件的目的,利用好这个工具就可以把数据自动化通知这个问题给解决。方案1是最常见的方式,但是可控度高,方便修改各种参数;方案2是被高度封装的模块,代码量是降低了很多,但是要修改一些东西没有方案1方便。在工作中还是项目中,我们根据具体要求切换。
容易不一定简单,简单不一定容易。如果你想看更多好看好玩的文字,关注公众号:Litchist ,登陆 荔枝星球M,把你想看的内容私信我,我排上倒海为你写!
感谢您的耐心阅读,请顺手点个「在看」,谢谢。