用python中的win32发送Outlook电子邮件

2024-10-03 19:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编码领域比较陌生,尝试使用以下python代码发送自动电子邮件报告。。 但我只在自动电子邮件中获得数据帧,而不是outlook电子邮件正文中的“嗨,这是一封测试电子邮件”。你知道吗

不太确定这里出了什么问题。你知道吗

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD'))

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'user@email.com'
mail.Subject = 'Insert Subject here'
mailerr1=df.to_html()
attachment  = 'shot.png'
mail.Attachments.Add(attachment)
mail.Body = "hi this is  a test email"
mail.HTMLBody = mailerr1

mail.Send()

如果有人能告诉我这里发生了什么,我将不胜感激。。 非常感谢。你知道吗


Tags: import编码dfattachment电子邮件emailasnp
1条回答
网友
1楼 · 发布于 2024-10-03 19:32:20

当您分配给HTMLBody时,您正在覆盖您的Body。默认情况下,您的电子邮件客户端必须使用HTMLBody。你知道吗

因此,您需要将数据帧组合到Body字符串中,或者将Body作为html添加到另一个字符串中,下面是一个示例:

email.HTMLBody = '<p>hi this is a test email</p><br>' + mailerr1

您还需要将其格式化为实际的html,请参见以下问题:Sending HTML email using Python

tl:博士

email.HTMLBody = """
<html>
  <head></head>
  <body>
    <p>hi this is a test email</p><br>
""" + mailerr1 + """
  </body>
</html>
"""

相关问题 更多 >