email发送

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

Python对SMTP支持有smtplibemail两个模块,email负责构造邮件,smtplib负责发送邮件。

构造MIMEText对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain',最终的MIME就是'text/plain',最后一定要用utf-8编码保证多语言兼容性。

然后,通过SMTP发出去:

下面是一份邮件完整代码仅参考:

import smtplib
import email
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 设置邮箱域名
HOST = 'smtp.163.com'
# 设置邮件标题
SUBJECT = '今天是我们相恋四年第一个月,陪我这么久,辛苦你了'
# 发件人
FROM = '发送人@163.com'
# 收件人   (可以一次性发送给多个人)
TO = '收件人@qq.com, 收件人@163.com'
# 内空
message = MIMEMultipart('related')
# --------------------------------发送文本------------------------
# 设置内容编码格式,使用utf-8进行编码
message_html = MIMEText('以后的日子还很长的一段路需要你陪我一起走,希望我们在一起的日子会比以前更好','plain','utf-8')
# 将邮件内容  装邮件信息当中
message.attach(message_html)
# -----------------------------------发送图片-----------------------
message_image = MIMEText(open('1.jpg','rb').read(),'base64','utf-8')
message_image['Content-Disposition'] = 'attachment;filename="happy.jpg"'
message.attach(message_image)

# 设置发件人
message['FROM'] = FROM
# 设置收件人
message['TO'] = TO
# 设置邮件标题
message['Subject'] = SUBJECT
# 获取简单邮件传输协议的证书
email_client = smtplib.SMTP_SSL()
# 设置发件人邮箱域名和端口号  , 端口号为:465
email_client.connect(HOST,'465')
# 邮箱授权码
result= email_client.login(FROM,'wang5814')
print('登陆',result)
email_client.sendmail(from_addr=FROM,to_addrs=TO.split(),msg=message.as_string())
email_client.close()

仅供参考:

# smtp simple mail transfer protocol 简单邮件传输协议
# lib library
import smtplib
# 因为需要使用模块  所以当前py文件的名字不能写成email
import email
# MIME 多用于邮件扩充协议
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
# 设置邮箱的域名
HOST = 'smtp.163.com'
# 设置邮件标题
SUBJECT = '今天是2018年8月10,是我的生日'
# 注意:发件人的邮箱必须是先设置开始smtp协议
FROM = '发件人@163.com'
# 设置收件人邮箱,(可以一次性发送给多个人)
TO = '收件人@163.com,2510959550@qq.com,,'
# related  表示使用内嵌资源的形式,将邮件发送给对方
# message:邮件信息   内容为空
message = MIMEMultipart('related')
# -------------------------------------------发送文本
# 发送邮件主体到对方的邮箱中
# 参数:
# 1.发送的内容  内容必须是字符串
# 2.内容的类型  文本类型默认为plain
# 3.内容的编码方式  使用utf-8进行编码
# message_html = MIMEText('今天星期五,猴开森','plain','utf-8')
message_html = MIMEText('<h1 style="color:red;fond-size:100px">学习使我爱了</h1><img src="cid:small">','html','utf-8')
# 将邮件内容   装入到邮件信息当中去
message.attach(message_html)

# ---------------------------发送图片----------------------
# rb: 读取二进制文件
image_data = open('1.gif','rb')
# 设置读取获取的二进制数据
message_image = MIMEImage(image_data.read())
# 关闭刚才打开的文件
image_data.close()
message_image.add_header('Content-ID','small')
# 添加图片文件到邮件信息当中去
# message.attach(message_image)

# 发送图片的第二种方式
message_image = MIMEText(open('1.gif','rb').read(),'base64','utf-8')
message_image['Content-disposition'] = 'attachment;filename="happy.gif"'
message.attach(message_image)
# ------------------------------添加文件-----------------------
# 将一个xlsx文档作为内容发送到对方的邮箱
# 读取excel文件时  ,是以rb形式进行读取的
# 是一个二进制内容  对二进制文件需要设置默认的编码形式
# 对于MIMEText()来说  默认的编码形式就是base64
# 如果对于二进制文件来说  没有设置base64进行编码  则附件的就会呈现乱码
message_xlsx = MIMEText(open('table.xlsx','rb').read(),'base64','utf-8')
# 设置文件在附件当中的名字
message_xlsx['Content-Disposition'] = 'attachment;filename="test1111.xlsx"'
message.attach(message_xlsx)

# 设置邮件发件人
message['From'] = FROM
# 设置邮件收件人
message['TO'] = TO
# 设置邮件标题
message['Subject'] = SUBJECT
# 获取简单邮件传输协议的证书
email_client = smtplib.SMTP_SSL()
# 设置发件人邮箱的域名和端口   端口为465
email_client.connect(HOST,'465')

# 密码千万不要写邮箱密码   要写邮箱的授权码
result = email_client.login(FROM,'wang5814')

print('登陆结果',result)
# address地址
#发送邮件
# message = MIMEMultipart('related')message为MINEMulyipart的一个对象
# msg后面的结果必须是一个字符串 , as_atring将整个对象转成一个字符串
email_client.sendmail(from_addr=FROM,to_addrs=TO.split(),msg=message.as_string())
# 关闭邮件发送客户端
email_client.close()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值