首页>Program>source

我的输入文件是CSV文件,通过运行一些由python Tabulate模块组成的python脚本,我创建了一个如下所示的表:-

表格输出

|    Attenuation |   Avg Ping RTT in ms |   TCP UP |
|---------------:|---------------------:|---------:|
|             60 |                2.31  | 106.143  |
|             70 |                2.315 | 103.624  |

我想将此表发送到电子邮件正文和 not as anattachment 使用python。

我已经创建了sendMail函数,并且期望在mail_body中发送表。 sendMail([to_addr], from_addr, mail_subject, mail_body, [file_name])

最新回答
  • 11天前
    1 #

    此代码以典型的纯文本格式以及html multipart / alternative格式发送消息.如果您的通讯员在支持html的邮件阅读器中阅读此邮件,则他会看到HTML表.如果他阅读纯文本阅读器,就会看到纯文本版本。

    无论哪种情况,他都会看到邮件正文中包含的数据,而不是附件。

    import csv
    from tabulate import tabulate
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    import smtplib
    me = '[email protected]'
    password = 'yyyzzz!!2'
    server = 'smtp.gmail.com:587'
    you = '[email protected]'
    text = """
    Hello, Friend.
    Here is your data:
    {table}
    Regards,
    Me"""
    html = """
    <html><body><p>Hello, Friend.</p>
    <p>Here is your data:</p>
    {table}
    <p>Regards,</p>
    <p>Me</p>
    </body></html>
    """
    with open('input.csv') as input_file:
        reader = csv.reader(input_file)
        data = list(reader)
    text = text.format(table=tabulate(data, headers="firstrow", tablefmt="grid"))
    html = html.format(table=tabulate(data, headers="firstrow", tablefmt="html"))
    message = MIMEMultipart(
        "alternative", None, [MIMEText(text), MIMEText(html,'html')])
    message['Subject'] = "Your data"
    message['From'] = me
    message['To'] = you
    server = smtplib.SMTP(server)
    server.ehlo()
    server.starttls()
    server.login(me, password)
    server.sendmail(me, you, message.as_string())
    server.quit()
    

  • 如何在某些页面上强制显示离子后退按钮?
  • python:多处理GUI模式以应对"无响应"阻止