# 背景知识

  • SMTP

    Simple Mail Transfer Protocol(SMTP) ,简单邮件传输协议,其是一种 TCP/IP 协议,用于发送电子邮件。大多数邮箱都是使用 SMTP,例如 Gmail、Outlook、AppleMail、163 等。SMTP 服务器一般使用 25 端口来发送电子邮件。

    发送过程:

    • 邮件服务器利用 SMTP 将消息从邮件客户端发送到另一个电子邮件服务器
    • 邮件服务器利用 SMTP 作为中继,转发电子邮件到其接收的电子邮件服务器
    • 接收邮件服务器使用邮件客户端通过 IMAP 下载传入的邮件,并将其放入收件人邮箱
  • IMAP

    Internet Message Access Protocol(IMAP),交互式网络存储协议,用于管理和检索电子邮件,并在不同设备之间同步。邮件客户端(例如手机端或者网页端邮箱)可以通过这种协议从邮件服务器中获取并下载邮件信息,不同客户端的邮件状态会保持一致。

    可以理解为所有的邮件都保存在邮件服务器中,而 IMAP 作为一个中介,让邮件客户端可以读取服务器中的邮件。这也是邮件附件如果短时间不下载,会被清除的原因。因为电子邮件并未在本地保存。

# 发送脚本

一个简单的发邮件脚本,修改一下,可以实现批量脚本发送。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# 创建一个 MIMEMultipart 对象
msg = MIMEMultipart()

# 设置邮件的头部信息
msg['From'] = 'your_email'
msg['To'] = 'receiver_email'
msg['Subject'] = 'Subject: Test Email'

# 添加正文
body = 'This is the body of the email!'
msg.attach(MIMEText(body, 'plain'))

# 连接邮件服务器,不同邮件服务器smtp开启方式不一样
# 这里以163邮箱为例,具体开启方法,自行查阅官方文档
smtp_server = 'smtp.163.com'
smtp_port = 25
smtp_username = 'your_email'
smtp_password = 'smtp_token'

smtp_conn = smtplib.SMTP(smtp_server, smtp_port)
smtp_conn.login(smtp_username, smtp_password)

# 发送邮件
smtp_conn.sendmail(msg['From'], msg['To'], msg.as_string())

# 关闭连接
smtp_conn.quit()
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

chaihj15 微信支付

微信支付

chaihj15 支付宝

支付宝