当前位置: 首页 > news >正文

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)

运行结果:

相关文章:

  • SAQ评级是什么,SAQ评级的意义?对企业发展好处
  • transformers 中的 input_ids 和 labels 是什么
  • 一个Linux/Java乱码问题的解决
  • Express中间件(Middleware)详解:从零开始掌握(2)
  • 使用Windows工具进行内存取证(不进行完全内存转储)
  • C语言:位段
  • 【后端分享】SpringBoot实现接口防刷的5种实现方案!
  • 微软Exchange管理中心全球范围宕机
  • centos-stream-9上安装nvidia驱动和cuda-toolkit
  • C++中std::move的高级应用示例
  • Robot---SPLITTER行星探测机器人
  • VS Code构建C/C++开发环境(Windows with MinGW and CMake)
  • Qt学习笔记——TableWidget的一些学习东西
  • 精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip
  • Named Entity Recognition with Bidirectional LSTM-CNNs(于双向LSTM神经网络的命名实体识别)论文阅读
  • JDBC驱动autosave缺陷的修复与配置指南
  • 移动端六大语言速记:第10部分 - 标准库与框架
  • c++知识点1
  • AI数据分析的正道是AI+BI,而不是ChatBI
  • 改善 Maven 的依赖性
  • 网站建设模块需求/长沙关键词优化平台
  • 响应式网站怎么做/建站网站关键词优化
  • 番禺有经验的网站建设/百度有哪些app产品
  • 静态网站可以做留言板/百度下载老版本
  • 服装设计网站有哪些/郑州建网站的公司
  • 南昌商城网站建设公司/网络营销推广专家