Python读取本地文档内容并发送邮件

当需要将本地某个路径下的文档内容读取后并作为邮件正文发送的时候可以参考该文,使用到的模块包括smtplib,email。

复制代码
#! /usr/bin/env python3
# -*- coding:utf-8 -*-
# Author: Tdcqma

import smtplib,email

chst = email.charset.Charset(input_charset = 'utf-8')

# header里分别定义发件人,收件人以及邮件主题。
header = ("From: %s\nTo: %s\nSubject: %s\n\n" %
          ("sendmail@163.com",
           "receivemail@163.com",
           chst.header_encode("Mail Test")))

# 打开目标文档后读取并保存至msg这个多行str变量里。
f = open("./test121.txt",'r',encoding='utf-8')
msg = ''' '''
while True:
    line = f.readline()
    msg += line.strip()+'\n'
    if not line:
        break
f.close()

# 对header和msg邮件正文进行utf-8编码,指定发信人的smtp服务器,并输入邮箱密码进行登录验证,最后发送邮件。
email_con = header.encode('utf-8') + msg.encode('utf-8')
smtp = smtplib.SMTP("smtp.163.com")
smtp.login("sendmail@163.com","sendmail_passwd")
smtp.sendmail('sendmail@163.com','receivemail@163.com',email_con)
smtp.quit()
复制代码

运行以上代码,收到邮件内容跟如下所示,其中邮件正文的内容即为./test121.txt文本里的内容。

posted @   北海悟空  阅读(4580)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2016-09-08 Linux系统文件权限&目录权限
2016-09-08 Linux系统VIM编辑器
2016-09-08 Linux功能-环境变量
2016-09-08 Linux系统PATH变量配置
2016-09-08 Linux命令行通配符
2016-09-08 Linux系统管道命令符
2016-09-08 Linux命令-grep
点击右上角即可分享
微信分享提示