进阶的阿牛哥之用python向多人发送邮件(带附件)

进阶的阿牛哥之用python向多人发送邮件(带附件),第1张

进阶的阿牛哥之用python向多人发送邮件(带附件)

一、使用的库
这个程序涉及两个库:smtplib 和 email
这两个库都是Python自带的,所以不需要额外的下载安装。

二、思路和步骤
总体思路很简单,就像我们平常上网是通过HTTP协议一样,我们发送邮件是通过SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)来传输的,而现在我们需要做的就是:
(1)开启邮箱 SMTP 服务:
以 QQ 邮箱为例,开启 SMTP 的路径是:邮箱首页 → 设置 → 账户 → POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 → 开启,如下图:

(2)设置好SMTP服务器地址;
例如 QQ 邮箱的 SMTP 服务器的地址就是:smtp.qq.com,端口号是 465 或 587

server = smtplib.SMTP("smtp.qq.com",587)

(3)告诉服务器我们的邮箱地址和密码(如果是 QQ 邮箱,那么则是授权码);

server.login(fromaddr , "fuheabperjoybjjg")

(4)设置要发送的邮件内容,例如发送者地址,接收者地址,邮件主题,邮件正文,附件等;

(5)将设置好的邮件内容传给服务器,并发送。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

fromaddr = "261082579@qq.com"
toaddr = "261082579@qq.com"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
# 邮件主题
msg['Subject'] = "Hooah"
# 邮件正文
body = "HAHAHA!"

msg.attach(MIMEText(body, 'plain'))

server = smtplib.SMTP("smtp.qq.com",587)	#设置SMTP服务器地址
server.starttls()
server.login(fromaddr , "fuheabperjoybjjg")	#告诉服务器发送者的邮箱地址和密码(如果是QQ邮箱,那么则是授权码)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

三、向多人发送

四、发送有附件的邮件

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEbase
from email import encoders

fromaddr = "261082579@qq.com"
toaddr = "261082579@qq.com"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
# 邮件主题
msg['Subject'] = "Hooah"
# 邮件正文
body = "HAHAHA!"

msg.attach(MIMEText(body, 'plain'))

# 附件
filename = "蟊.pdf"
attachment = open(filename, 'rb')
part = MIMEbase('application', 'octet-stream')
# 这也可以: part = MIMEbase('application', 'pdf')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment', filename=filename)

msg.attach(part)

# 设置 SMTP
server = smtplib.SMTP("smtp.qq.com")
server.starttls()
server.login(fromaddr , "fuheabperjoybjjg")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4827698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存