python生成csv并发送邮件

python版本3.9.4
1、生成csv的方法
#make_csv.py#
import csv

def produce_csv():
    # 1. 创建文件对象
    f = open('temp.csv', 'w', encoding='utf-8', newline='')

    # 2. 基于文件对象构建 csv写入对象
    csv_writer = csv.writer(f)
    # 3. 构建列表头
    csv_writer.writerow(["姓名", "年龄", "性别"])

    # 4. 写入csv文件内容
    csv_writer.writerow(["l", '18', '男'])
    csv_writer.writerow(["c", '20', '男'])
    csv_writer.writerow(["w", '22', '女'])
    f.close()
2、调用上面方法生成csv并发送邮件
#sed_mail.py#
#!/usr/bin/python3 from email.mime.multipart import MIMEMultipart import os import smtplib from email.mime.text import MIMEText from email.header import Header import make_csv #删除文件 try: os.remove('temp.csv') except : print("没有找到文件!") #调用make_csv文件的produce_csv方法生成文件 make_csv.produce_csv() # 第三方 SMTP 服务 mail_host="smtp.exmail.qq.com" #设置服务器 mail_user="user_sed@qq.com" #用户名 mail_pass="passwd" #口令 sender = 'user_sed@qq.com' receivers = ['user_recevied@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 print("1") message = MIMEMultipart() message.attach(MIMEText('这是菜鸟教程Python 邮件发送测试……', 'plain', 'utf-8')) message['From'] = Header("菜鸟教程", 'utf-8') message['To'] = Header("测试", 'utf-8') print("2") subject = 'Python SMTP 邮件测试' message['Subject'] = Header(subject, 'utf-8') print("3") # 构造附件1,传送当前目录下的 ces.xlsx 文件 att1 = MIMEText(open('temp.csv', 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream'# 这里的filename可以任意写,写什么名字,邮件中显示什么名字 att1["Content-Disposition"] = 'attachment; filename="temp.csv"' message.attach(att1) try: smtpObj = smtplib.SMTP() print("4") smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号 print("5") smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print("邮件发送成功") except smtplib.SMTPException: print("Error: 无法发送邮件") print("6")

  

  

posted @ 2022-11-21 11:40  苍茫宇宙  阅读(236)  评论(0编辑  收藏  举报