【问题标题】:How to get horizontal HTML table in email body in python?如何在 python 中获取电子邮件正文中的水平 HTML 表格?
【发布时间】:2022-01-12 13:29:51
【问题描述】:

我需要将电子邮件正文中的 sql 表数据作为 python 中的 html 表发送。所以我先用下面的方法来获取数据。

def table_row(date, X1, X2, X3):
    return f"""
        <tr>
        <td style="text-align:center">{date}</td>
        <td style="text-align:center">{X1}</td>
        <td style="text-align:center">{X2}</td>
        <td style="text-align:center">{X3}</td>
        
"""
table_rows = []

for index, row in df.iterrows():
    table_rows.append(
        table_row(
            date=row['Date'],
            X1=row['X1'],
            X2=row['X2'],
            X3=row['X3'],
        )
    )

table_rows_str = "\n".join(table_rows)

现在我创建了电子邮件正文如下,

import smtplib

sender = ''
receivers = ['']

message = f"""From: XX <XX@abc.lk>
To:  ; 
MIME-Version: 1.0
Content-type: text/html
Subject :{mailsubject}

Dear All,<br/><br/> Please refer below data  :<br/><br/>

Data : <br/>
<table border="2" padding: 10px border: 1px solid black border-collapse: collapse cellpadding="2" cellspacing="0">
        <tr>
            
            <td style="text-align:center"><b>Date</b></td>
            <td style="text-align:center"><b>X1</b></td>
            <td style="text-align:center"><b>X2</b></td>
            <td style="text-align:center"><b>X3</b></td>
        </tr>
        {table_rows_str}
    </table><br/><br/>
    

      
 

<b>This is an automated email, Please do not reply ...</b>
    
"""


try:
   smtpObj = smtplib.SMTP('',25)
   smtpObj.sendmail(sender, receivers, message)         
   print ("Successfully sent email")
except smtplib.SMTPException:
    pass
except smtplib.socket.error:
    pass

这很好,我收到的电子邮件如下所示,

但我需要以水平方式制作此表,以便我可以轻松识别一些模式。我想要的输出如下,

我需要在此处添加哪些更改才能获得所需的输出?我是这个 HTML 内容的初学者。

【问题讨论】:

    标签: python html smtplib


    【解决方案1】:

    你应该使用表头的属性而不是 td 要了解更多信息,请访问https://www.w3schools.com/tags/tag_table.asp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-26
      • 2015-05-08
      • 1970-01-01
      • 2023-03-09
      • 2011-09-03
      • 1970-01-01
      • 2011-04-15
      • 2022-08-24
      相关资源
      最近更新 更多