如何用Python在Outlook HTML邮件中动态展示列表内容
解决方案
要在HTML格式的Outlook邮件正文中展示动态长度的垂直枚举列表,直接利用HTML的原生列表标签即可实现,无需手动处理换行。以下是修改后的代码及说明:
import win32com.client as win32 # 避免使用list作为变量名,防止覆盖Python内置类型 test_list = ["dog","cat","mouse","monkey"] outlook = win32.Dispatch('outlook.application') mail = outlook.CreateItem(0) mail.To = "me@test.com" mail.CC = "me@test.com" mail.Subject = 'Test' # 生成无序列表(圆点样式)的HTML片段 list_html = "<ul>" + "".join([f"<li>{item}</li>" for item in test_list]) + "</ul>" # 若需要数字编号的有序列表,替换为下面这行: # list_html = "<ol>" + "".join([f"<li>{item}</li>" for item in test_list]) + "</ol>" # 拼接完整的HTML正文 mail.HTMLBody = f"<p>This is my test_list:</p>{list_html}" mail.Display()
关键说明
- 通过
join结合列表推导式,可高效将任意长度的动态列表元素批量转换为<li>标签,再包裹在<ul>(无序列表)或<ol>(有序列表)标签内,Outlook会自动渲染为垂直换行的枚举样式。 - 将变量名从
list改为test_list,避免与Python内置的list类型冲突,减少潜在报错风险。
内容的提问来源于stack exchange,提问作者Saschafinho
相关产品推荐
相关产品推荐

