您的位置:

Python SMTP邮件发送教程:快速发送邮件到指定邮箱

在疫情期间,疫情防控、销售推广等方面邮件变得越来越重要,如何实现快速地发送邮件是我们需要面对的问题。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发送邮件以及如何实现批量发送邮件。