在疫情期间,疫情防控、销售推广等方面邮件变得越来越重要,如何实现快速地发送邮件是我们需要面对的问题。Python中的smtplib库提供了实现SMTP邮件发送的方法,不仅发送邮件快速,而且也可以实现邮件的自动发送。在本文中,将详细介绍如何使用Python发送邮件,主要包括以下方面介绍:
一、准备工作
在使用Python发送邮件前,需要先准备好以下工作:
1、获取邮箱SMTP服务器地址和端口号。不同的邮箱提供商服务器和端口号不一样,可参考以下对应表:
邮箱提供商 | SMTP服务器地址 | 端口号 |
---|---|---|
QQ邮箱 | smtp.qq.com | 587 |
163邮箱 | smtp.163.com | 25 |
126邮箱 | smtp.126.com | 25 |
新浪邮箱 | smtp.sina.com | 25 |
2、确保邮箱已经开启SMTP服务和POP3/IMAP服务,开启方法可在对应邮箱设置中找到。
3、获取发件人邮箱地址和密码以及收件人邮箱地址。
准备工作完成后,就可以开始使用Python发送邮件了。
二、Python SMTP邮件发送
1、首先需要导入smtplib库和MIMEText库。
import smtplib from email.mime.text import MIMEText
2、定义邮件内容并创建MIMEText对象。
sender = '发件人邮箱地址' password = '发件人邮箱密码' receiver = '收件人邮箱地址' message = MIMEText('邮件内容', 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = '邮件主题'
3、定义SMTP服务器地址和端口号,并登录SMTP服务器。
smtp_server = 'SMTP服务器地址' smtp_port = 'SMTP端口号' server = smtplib.SMTP(smtp_server, smtp_port) server.login(sender, password)
4、发送邮件。
server.sendmail(sender, [receiver], message.as_string()) server.quit()
5、完整的Python SMTP邮件发送代码如下:
import smtplib from email.mime.text import MIMEText sender = '发件人邮箱地址' password = '发件人邮箱密码' receiver = '收件人邮箱地址' message = MIMEText('邮件内容', 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = '邮件主题' smtp_server = 'SMTP服务器地址' smtp_port = 'SMTP端口号' server = smtplib.SMTP(smtp_server, smtp_port) server.login(sender, password) server.sendmail(sender, [receiver], message.as_string()) server.quit()
三、实现批量发送邮件
以上介绍了如何实现单封邮件的发送,实际应用中我们更多需要批量发送邮件。下面介绍如何实现批量发送邮件:
1、假设我们需要给多个收件人发送邮件,并且每个收件人邮件内容不同。首先定义收件人和邮件内容。
receivers = ['收件人1邮箱地址', '收件人2邮箱地址', '收件人3邮箱地址'] messages = [ {'Subject': '邮件1主题', 'Content': '邮件1内容'}, {'Subject': '邮件2主题', 'Content': '邮件2内容'}, {'Subject': '邮件3主题', 'Content': '邮件3内容'} ]
2、使用for循环批量发送邮件。
for receiver, message in zip(receivers, messages): message = MIMEText(message['Content'], 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = message['Subject'] server.sendmail(sender, [receiver], message.as_string())
3、完整的Python批量发送邮件代码如下:
import smtplib from email.mime.text import MIMEText sender = '发件人邮箱地址' password = '发件人邮箱密码' receivers = ['收件人1邮箱地址', '收件人2邮箱地址', '收件人3邮箱地址'] messages = [ {'Subject': '邮件1主题', 'Content': '邮件1内容'}, {'Subject': '邮件2主题', 'Content': '邮件2内容'}, {'Subject': '邮件3主题', 'Content': '邮件3内容'} ] smtp_server = 'SMTP服务器地址' smtp_port = 'SMTP端口号' server = smtplib.SMTP(smtp_server, smtp_port) server.login(sender, password) for receiver, message in zip(receivers, messages): message = MIMEText(message['Content'], 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = message['Subject'] server.sendmail(sender, [receiver], message.as_string()) server.quit()
四、总结
本文主要介绍了使用Python发送SMTP邮件的过程,包括准备工作、Python SMTP邮件发送、实现批量发送邮件等方面。通过本文的学习,大家可以掌握如何使用Python发送邮件以及如何实现批量发送邮件。