python实现读取配置文件,发送邮件

本代码是要实现一个发邮件,且带上附件的效果,但是写着写着发现,如果把内容都写死在程序里,如果发生变化,修改成本太高了,所以就引入了配置文件,将发邮件所需要的信息都放在配置文件里,直接读取就好,便于修改。

完整代码如下:

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication    #以上都是发邮件,以及带附件的依赖库
from datetime import datetime,timedelta
import time
from configparser import ConfigParser      #读取配置文件的依赖库
import os



class ReadConfigFile(object):       #读取配置文件类
    def read_config(self,m,n):
        conn = ConfigParser()
        file_path = os.path.join(os.path.abspath('.'),'日报dbinfo.ini')   #dbinfo.ini是存放数据库配置的配置文件
        if not os.path.exists(file_path):
            raise FileNotFoundError("文件不存在")
        conn.read(file_path,encoding='utf-8')
        read_reslut = conn.get(m,n)
        return [read_reslut]
        
rc = ReadConfigFile()     #实例化

#如下都是发邮件的代码

context = '''
这是一封遥远的邮件,test巴扎黑
'''


from_addr=rc.read_config('smtp_info','from_addr')   #从配置文件读取发件人,收件人,服务器地址,端口,用户,密码等信息
to_addr=rc.read_config('smtp_info','to_addr')
smtp_server=rc.read_config('smtp_info','smtp_server')
smtp_port=rc.read_config('smtp_info','smtp_port')
loguser=rc.read_config('smtp_info','loguser')
passwd=rc.read_config('smtp_info','passwd')


wordfile = '巴扎黑.txt'
msg1 = MIMEMultipart()
msg1.attach(MIMEText(context, 'plain', 'utf-8'))
att1 = MIMEApplication(open(wordfile, 'rb').read())
att1.add_header('Content-Disposition', 'attachment', filename=wordfile)      # 这里的filename可以任意写,写什么名字,邮件中显示什么名字

msg1.attach(att1)

msg1['From'] = Header("c01", 'utf-8')  # 发件人的昵称
msg1['To'] = Header("c02", 'utf-8')  # 收件人的昵称
msg1['Subject'] = Header("巴扎黑", 'utf-8')  # 定义主题内容
#print(message)

smtp = smtplib.SMTP()# 创建 SMTP 对象
smtp.connect(smtp_server[0], smtp_port[0])# 连接(connect)指定服务器
smtp.login(user=loguser[0], password=passwd[0])# 登录,需要:登录邮箱和授权码
smtp.sendmail(from_addr[0], to_addr[0], msg=msg1.as_string())#发送邮件

执行结果如下:

 

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值