当前位置: 首页 > 面试题库 >

在Python中将表格作为电子邮件正文(而非附件)发送

羊渝
2023-03-14
问题内容

我的输入文件是一个CSV文件,通过运行一些包含python Tabulate模块的python脚本,我创建了一个如下表:

tabulate_output 或

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

我想将此表发送到电子邮件正文中,而 不是 使用python 作为 附件发送

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


问题答案:

此代码以典型的纯文本格式以及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 = 'xxx@gmail.com'
password = 'yyyzzz!!2'
server = 'smtp.gmail.com:587'
you = 'qqq@gmail.com'

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()


 类似资料:
  • 我想用mailto标签发送电子邮件,附带一个pdf文件作为附件。mailto标记使用以下方法打开邮件窗口,其中包含传递的参数,如to和subject: 但是,附件作为一个参数不起作用。请建议如何在手机中发送pdf附件。 谢啦

  • 问题内容: HTML电子邮件可以使用图像附件作为标记的来源吗? 假设我正在发送包含每个电子邮件特定图像的电子邮件-它们作为电子邮件的附件发送-电子邮件中的HTML正文可以使用这些图像吗?我的猜测是 不会 ,但是是否有任何 破解 或变通办法可以使它正常工作? 谢谢, 问题答案: 无需黑客。使用URI方案

  • 我已经看到了一些关于堆栈溢出的类似问题,但我找不到解决这些问题的方法。 我正在尝试使用Python发送一封带有。pdf附件。当我在gmail上查看邮件时,它似乎工作正常。但是当我通过苹果的邮件程序查看邮件时,我没有看到附件。知道是什么原因吗? 我的代码如下。很多都是从stack overflow上的不同位置复制的,所以我不完全理解每个部分在做什么,但它似乎(大部分)起作用: 我不确定它是否相关,但

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送

  • 问题内容: 我在理解如何使用Python通过电子邮件发送附件时遇到问题。我已成功通过电子邮件将简单消息通过电子邮件发送。有人可以在电子邮件中说明如何发送附件。我知道在线上还有其他帖子,但是作为Python初学者,我很难理解它们。 问题答案: 这是另一个:

  • 问题内容: 使用python发送电子邮件时如何添加文档附件?我收到了要发送的电子邮件(请忽略:我正在循环发送电子邮件,每5秒发送一次,仅用于测试目的,我希望每30分钟发送一次,只需将5更改为1800) 到目前为止,这是我的代码。我如何从计算机上附加文档? 问题答案: 这是对我有用的代码-使用python发送带有附件的电子邮件