欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python发送邮件

程序员文章站 2022-04-07 15:49:00
...

####一、在阿里云后台开启smtp服务
python发送邮件

备注:默认是开启的,但是还是要检查下

####二、python脚本

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr


def email(email_list,content,subject="测试效果"):
    msg = MIMEText(content,'plain','utf-8')
    msg['From'] = formataddr(["杨柳",'aaa@qq.com'])   #发件人信息
    msg['Subject'] = subject

    #SMTP服务区
    server = smtplib.SMTP("smtp.aliyun.com",25)     #阿里云邮件服务器
    server.login('aaa@qq.com','nopassword')  #自己邮箱的登陆信息
    server.sendmail('aaa@qq.com',email_list,msg.as_string())
    server.quit()

email(['aaa@qq.com'],'测试专用')    #收件人可以为很多,所以用列表展示
#email(['aaa@qq.com'],'测试专用','发送邮件')

备注:
如果subject为“测试”,阿里云服务器会直接拒绝发送

####三、效果展示
python发送邮件

扩展

使用python发送带有附件的邮件

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.multipart import MIMEMultipart
from email.header import Header

def email(email_list,content,subject="企业数据"):
    msg = MIMEMultipart()    #创建一个带有附件的实例
    msg['From'] = formataddr(["杨柳", 'aaa@qq.com'])
    msg['Subject'] = Header(subject, 'utf-8')
    # 邮件正文内容
    msg.attach(MIMEText(content,'plain','utf-8'))
	

    # 构造附件1,传送当前目录下的 20180925.xlsx 文件
    att1 = MIMEText(open('20180925.xlsx', 'rb').read(), 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    att1["Content-Disposition"] = 'attachment; filename="20180925.xlsx"'
    msg.attach(att1)

    #SMTP服务区
    server = smtplib.SMTP("smtp.aliyun.com",25)     #阿里云邮件服务器
    server.login('aaa@qq.com','nopassword')  #自己邮箱的登陆信息
    server.sendmail('aaa@qq.com',email_list,msg.as_string())
    server.quit()

email(['aaa@qq.com'],'企业数据')    #收件人可以为很多,所以用列表展示