python办公自动化------邮件发送
拿163邮箱举例
一、开启邮箱的POP3/SMTP服务并拿到授权密码
要开启POP3/SMTP服务
复制授权密码,一会要使用
二、发送邮件
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 我的邮箱配置
mail_host = "smtp.163.com"
mail_user = "test@163.com"
mail_pass = "KThe***********"
sender = "test@163.com"
# 收件人的邮箱
receivers = ["test@163.com"]
# 邮件的内容
message = MIMEText("你好", "plain", "utf-8")
message["Subject"] = "2025年第一季度报告"
# 想要收件人看到的邮箱名称
message["Form"] = "神秘人"
# 要发送给的人
message["To"] = receivers[0]
# 正式发送邮件
try:
smtpObj1 = smtplib.SMTP_SSL(mail_host, 465)
# smtpObj1.set_debuglevel(1)
smtpObj1.login(mail_user, mail_pass)
smtpObj1.sendmail(sender, receivers, message.as_string())
smtpObj1.quit()
print("邮件发送成功")
except Exception as e:
print("error", e)
三、发送包含附件的邮件
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 我的邮箱配置
mail_host = "smtp.163.com"
mail_user = "test@163.com"
mail_pass = "KTh************"
sender = "test@163.com"
# 收件人的邮箱
receivers = ["test@163.com"]
# 邮件的内容
# message = MIMEText("你好", "plain", "utf-8")
# MIMEMultipart()可以用来传输附件,也可以用来传输文本
message = MIMEMultipart()
message["Subject"] = "2025年第一季度报告"
# 想要收件人看到的邮箱名称
message["Form"] = "神秘人"''
# 要发送给的人
message["To"] = receivers[0]
content = MIMEText('附件请接收', 'plain', 'utf-8')
message.attach(content)
with open('./dataFile/测试文件转换.pdf', 'rb') as f:
att = MIMEText(f.read(), 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename=test.pdf'
message.attach(att)
# 正式发送邮件
try:
smtpObj1 = smtplib.SMTP_SSL(mail_host, 465)
# smtpObj1.set_debuglevel(1)
smtpObj1.login(mail_user, mail_pass)
smtpObj1.sendmail(sender, receivers, message.as_string())
smtpObj1.quit()
print("邮件发送成功")
except Exception as e:
print("error", e)
运行结果: