教你用Python发送电子邮件

信息准备

发生邮件前必须准备好一些基本信息,例如发件人邮箱地址、发件人邮箱密码、收件人邮箱地址、发件人昵称、收件人昵称、邮件主题以及邮件内容等。这些内容都属于定制化的,那么剩余的就应该是邮件发送了。使用Python发送邮件需要使用到email模块(主要用于邮件的配置)和smtplib模块(用于邮件的发送),接下来我们动手搞起吧!(这里以我的QQ邮箱为例,向其他邮件发送内容。)
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
# 自定义发送邮件的函数
'''
配置发邮件所需的基础信息
my_sender # 配置发件人邮箱地址
my_pass # 配置发件人邮箱密码
to_user # 配置收件人邮箱地址
my_nick # 配置发件人昵称
to_nick # 配置收件人昵称
mail_msg # 配置邮件内容
'''
def mail(my_sender,my_pass,to_user,my_nick,to_nick,mail_msg):
	# 必须将邮件内容做一次MIME的转换 -- 这是发送含链接的邮件
	msg=MIMEText(mail_msg,'html','utf-8')
	# 配置发件人名称和邮箱地址
	msg['From']=formataddr([my_nick,my_sender])
	# 配置收件件人名称和邮箱地址
	msg['To']=formataddr([to_nick,to_user])
	# 配置邮件主题(标题
	msg['Subject']="发送邮件测试"
	# 配置Python与邮件的SMTP服务器的连接通道(如果不是QQ邮箱,SMTP服务器是需要修改的)
	server=smtplib.SMTP_SSL("smtp.qq.com",  465)
	# 模拟登陆
	server.login(my_sender, my_pass)
	# 邮件内容的发送
	server.sendmail(my_sender,[to_user,],msg.as_string())
	# 关闭连接通道
	server.quit()

邮件测试

try:
	mail_msg =  """
	陆xx:
	    您好,非常抱歉打扰到您,这是一份Python 的邮件测试,看见后可以忽略。
	"""
	# 调用函数(登录密码需要换成你自己的
	mail('[email protected]','lwj1182871615','[email protected]','陆**','陆**,mail_msg)
	print('邮件发送成功!')
except:
	print('邮件发送失败!')

批量发送

你可能会觉得,发一份邮件有这么麻烦吗?我直接登录邮箱发送就是啦。可问题时,工作场景中可能需要向目标客户发送批量邮件,此时你再通过手动方式,效率就显得渣渣啦。要想实现邮件的批量发送,最容易想到的就应该是 for 循环啦。这里跟朋友要了邮箱做为测试,代码如下:

my_sender='[email protected]'
my_pass =  '123456'
to_user=['[email protected]','[email protected]','[email protected]']
my_nick =  '陆**'
to_nick =  ['陆**','杨**','袁**']
for i in range(3):
	# 配置邮件内容
	mail_msg =  """
	尊敬的{}:
	您好,非常抱歉打扰到您,这是一份Python 的邮件测试,看见后可以忽略。
	""".format(to_nick[i])
	# 调用函数
	try:
		mail(my_sender,my_pass,to_user[i],my_nick,to_nick[i],mail_msg)
		print('邮件发送成功!')
	except:
		print('邮件发送失败!')

惊喜不断,全都发送成功,而且速度也非常的快,三份邮件的发送,估计就 1 秒钟左右吧。

你可能感兴趣的:(Python)