zoukankan      html  css  js  c++  java
  • python自动化之电子邮件

    本文我会使用gmail 邮箱作为邮箱测试,lzcom321@gmail.com 是我的私人邮箱,大家也可以对我发送,以帮助大家的邮箱自动化测试

    原文地址请点击这里

    将电子邮件发送给适当的个人,首先要转换为PDF,然后再将此PD附加到电子邮件中,然后将所有电子邮件由python自动化发送。

    模块

    开始这个自动化案例之前,你需要将以下模块导入到demo

    # 创建PDF
    from io import BytesIO
    from reportlab.pdfgen import canvas
    from django.http import HttpResponse
    # 自动化电子邮件
    import email, smtplib, ssl
    from email import encoders
    from email.mime.base import MIMEBase
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    

    你可能不需要上面列出的每个模块,但是我推荐你还是将其全部导入其中

    将内容转PDF

    对于本文,我将编写一个简单的示例。我会使用 canvas创建pdf文件,并添加一些个性化设置,例如背景色,字体和字体大小,一些文本字符串和图像(图表)

    # 创建pdf 
    c = canvas.Canvas('automate_report.pdf')
    # 设置背景颜色(此颜色为黄色,我不推荐)
    c.setFillColorRGB(1,1,0)
    # 选择字体和字体大小
    c.setFont('Helvetica', 30)
    # 创建两个文本字符串并在页面上设置位置
    c.drawString(5, 660,'Missing data chart for Titanic Data')
    c.drawString(5, 630, 'Report generated by Python')
    # 添加图像以确定其位置,宽度和高度
    c.drawImage('Survival.png', 5,90,480,400)
    # show页面并保存它
    c.showPage()
    c.save()
    

    注意事项

    • 图像与该python脚本位于同一目录中
    • 这只是一个基本的概述。如果您想了解有关创建更复杂的pdf报告的更多信息,我建议查阅canvas的文档。

    自动化发送电子邮件

    我们已经生成了一个pdf文件,正等待通过网络空间发送。

    在我们深入研究代码之前,你需要创建一个刻录机电子邮件帐户,以便可以在自己的电子邮件(而不是朋友的电子邮件)上测试该电子邮件。

    # 将关键电子邮件方面分配给变量,以便将来进行编辑
    subject = "Weekly Report"
    body = "This is an email with the desired report attached"
    sender_email = "lzcom321@gmail.com"
    receiver_email = "lzcom321@icloud.com"
    file = "automate_report.pdf" 
    password = "abc123"
    # 创建电子邮件头(发件人,收件人和主题)
    email = MIMEMultipart()
    email["From"] = sender_email
    email["To"] = receiver_email 
    email["Subject"] = subject
    # 在邮件中添加正文和附件
    email.attach(MIMEText(body, "plain"))
    attach_file = open(file, "rb") 
    report = MIMEBase("application", "octate-stream")
    report.set_payload((attach_file).read())
    encoders.encode_base64(report)
    #add report header with the file name
    report.add_header("Content-Decomposition", "attachment", filename = file)
    email.attach(report)
    # 创建用于发送邮件的SMTP会话
    session = smtplib.SMTP('smtp.gmail.com', 587) 
    session.starttls() #enable security
    session.login(sender_email, password) 
    text = email.as_string()
    session.sendmail(sender_email, receiver_email, text)
    session.quit()
    print('已发送邮件')
    

    说明

    现在,注释应该可以帮助你了解所有代码的工作方式以及彼此之间的交互。作为个人喜好,我喜欢将通常在脚本中硬编码的内容设置为一个变量,以便在需要时更易于编辑。

  • 相关阅读:
    hdu1290献给杭电五十周年校庆的礼物
    hdu1181(变形课)
    Flex结合java实现一个登录功能
    MyEclipse安装spket插件
    线程安全的理解
    很实用的一个ext表格,具有很好的分页功能。
    tomcat配置数据源
    extanychart柱状图呈现取自数据库中的数据
    extanychart饼图呈现取自数据库中的数据
    oracle实现分页总结
  • 原文地址:https://www.cnblogs.com/CoXieLearnPython/p/14710929.html
Copyright © 2011-2022 走看看