# 背景知识
- 
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 作为一个中介,让邮件客户端可以读取服务器中的邮件。这也是邮件附件如果短时间不下载,会被清除的原因。因为电子邮件并未在本地保存。 
# 发送脚本
一个简单的发邮件脚本,修改一下,可以实现批量脚本发送。
| 12
 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 smtplibfrom email.mime.multipart import MIMEMultipart
 from email.mime.text import MIMEText
 
 
 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_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()
 
 |