如何在HTML格式邮件正文中为列表添加换行符
解决方案
问题出在你用'\n'.join()拼接列表项,HTML里的换行需要用<br>标签,而不是普通的换行符\n。修改代码里的列表拼接部分即可:
核心修改:替换列表分隔符
把lists= '\n'.join(str(serv) for serv in servers)改成
lists= '<br>'.join(str(serv) for serv in servers)可选优化:简化消息拼接逻辑
原代码里的字符串拼接方式容易混乱,建议统一写法,直接使用<br>标签(无需转义,因为是直接插入HTML内容):message = 'Hi<br><br> Please help check the names below:<br><br>' + lists
修改后的完整代码示例:
import win32com.client outlook = win32com.client.Dispatch("Outlook.Application") mail = outlook.CreateItem(0) mail.Sender = Sender mail.Subject = "List" mail.GetInspector() # 补充原代码遗漏的括号 index = mail.HTMLbody.find('>', mail.HTMLbody.find('<body')) lists= '<br>'.join(str(serv) for serv in servers) message = 'Hi<br><br> Please help check the names below:<br><br>' + lists mail.HTMLbody = mail.HTMLbody[:index + 1] + message + mail.HTMLbody[index + 1:] mail.Display()
修改后,每个列表项会被<br>标签分隔,邮件里会呈现你需要的换行效果。
内容的提问来源于stack exchange,提问作者Veck
相关产品推荐
相关产品推荐

