使用python发邮件分几步

1. 创建邮件

import smtplib
from email.mime.multipart import MIMEMultipart  # 完整邮件
from email.mime.text import MIMEText  # 内容
from email.mime.application import MIMEApplication  # 附件
from email.mime.image import MIMEImage  # 图片

# 收件人
to_list = ["收件人1", "收件人2"]

# 发送人的邮箱
sender = '发送人的邮箱'
# 创建邮件对象
email = MIMEMultipart()
# 创建标题
email['Subject'] = "python发邮件测试"
# 设置 发送人
email['From'] = sender
# 发给谁,可以单人,可以是个列表
email['To'] = ",".join(to_list) if isinstance(to_list,list) else to_list
# 设置抄送人
email['Cc'] = "抄送人邮件"

# 创建邮件内容 _subtype为内容的格式 plain文本 ,html, image
text = MIMEText('见面说', _subtype="plain", _charset='utf-8')
# 把内容添加到邮件对象
email.attach(text)

2. 发送邮件


# 创建发送对象
# smtp = smtplib.SMTP()  # 普通方式25端口
smtp = smtplib.SMTP_SSL()  # 使用加密方式链接服务器 465端口
# 设置使用邮件服务器地址
smtp.connect('smtp.163.com')
# 登录服务器,发送邮件名,和授权码
smtp.login(sender, 'xxxxxxxxx')
# 发送邮件,调用了sendmail()方法,写入三个参数,分别是发件人,收件人,和字符串格式的正文。
smtp.sendmail(sender, to_list, email.as_string())
# 退出
smtp.close()

发送带图片的html类型邮件,

# 实例化一个MIMEText邮件对象,该对象需要写进三个参数,分别是邮件正文,文本格式和编码.
text = MIMEText("见面说:<img src='cid:jay'/>", _subtype="html", _charset='utf-8')
# 把内容添加到邮件对象
email.attach(text)
# 加载图片
tu = MIMEImage(open('2.jpg', mode='rb').read())
tu.add_header("Content-ID", "jay")  # 设置
email.attach(tu)

发送带附件的邮件

# 添加附件
fu1 = MIMEApplication(open('send_eamil.py', mode='rb').read())
fu1.add_header('Content-disposition', 'attachment', filename='mail1.py')
email.attach(fu1)

linux下使用命令发邮件

# /etc/mail.rc 
cat>/etc/mail.rc<<END
#####set mail#####
set from=slytosky@163.com
set smtp=smtp.163.com  
set smtp-auth-user=slytosky
set smtp-auth-password=xxxxxxxxxx
set smtp-auth=login
END


# 发邮件命令
mail -s "标题" 871214098@qq.com < 内容文件
最后修改:2019 年 12 月 31 日 05 : 21 PM