python-实现邮件发送字符串、附件(图片、表格等)

python发送带附件的邮件需要使用的库:smtp,MIMEText,MIMEMultipart,MIMEImage

如何使用见代码详述(注意:from,to为python的关键字,不能用作变量。但python区分大小写,下述代码中单次中使用了大写,能作为变量使用):

#coding:utf-8

import smtplib
#发送字符串的邮件
from email.mime.text import MIMEText
#处理多种形态的邮件主体需要使用MIMEMultipart类,如创建附件
from email.mime.multipart import MIMEMultipart
#处理图片需要 MIMEImage 类
from email.mime.image import MIMEImage

#设置服务器所需信息
mailServer = 'mail.qq.com'    #公司服务器邮箱地址'
FROM = "**@qq.com"    #发件人

#邮件接受方邮箱地址,可传递多个地址以逗号进行分开
TO = '"test1@qq.com","test2@qq.com"'

subject = "主题:测试邮件主题"
send_message = "你好,\n\t这是一次邮件测试,该段为测试内容." 

#创建一封空邮件
message = MIMEMultipart('related')


def emailSend(From, To, Subject, Message):
	#发送信息内容	
	msg = MIMEText(send_message,'plain', _charset='utf-8')
	Message.attach(msg)

	#发送图片-预览信息
	image_data = open("imageTest.jpg",'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("imageTest.jpg",'rb').read(),'base64','utf-8')
	message_image['Content-disposition'] = 'attachment;filename="imageTest.jpg"'
	Message.attach(message_image)

	#发送excel-附件
	message_xlsx = MIMEText(open('sendTest.xlsx','rb').read(),'base64','utf-8')
	message_xlsx['Content-disposition'] = 'attachment;filename="sendTest.xlsx'
	Message.attach(message_xlsx)


	try:	
	    #配置相关	
		Message['Subject'] = Subject
		Message['From'] = From
		Message['To'] = To	
		#qq邮箱  smtp.qq.com,端口:465,QQ邮箱发送需要使用SMTP_SSL
		server = smtplib.SMTP(mailServer)
		print('登录结果:', server)

		#操作
		server.sendmail(from_addr = From, to_addrs = To.split(','),msg = Message.as_string())
		print("send success!!")
		server.quit()
	except smtplib.SMTPException as e:
		print("send fail:",e)
		

if __name__ == "__main__":
	emailSend(From = FROM, To = TO, Subject = subject, Message = message)





 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值