Python 在 html 邮件正文中使用 for 循环
Python using a for loop within html mail body
我有以下一段代码。 my_header_list 和 my_msg_list 的长度可以改变,所以我希望用 html 中的 for 循环替换以下代码。
def send_email(my_header_list, my_msg_list, recipients):
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = ";".join([i for i in recipients])
mail.Subject = 'Summary | ' + str(datetime.now().strftime("%m-%d-%Y %H:%M"))
mail.Body = html = """\
<html>
<head></head>
<body>
<a href="https://www.awebsite.com">ABC</a>
<br>
<b>"""+str(my_header_list[0])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[0]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[1])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[1]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[2])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[2]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[3])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[3]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[4])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[4]).split("\n"))+ """
<br>
</p>
</body>
</html>
"""
mail.HTMLBody = (mail.Body)
mail.Send()
在列表中收集你的台词,最后加入。
def send_email(my_header_list, my_msg_list, recipients):
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = ";".join([i for i in recipients])
mail.Subject = 'Summary | ' + str(datetime.now().strftime("%m-%d-%Y %H:%M"))
myhtml = []
myhtml.append("<html>")
myhtml.append("<head></head>")
myhtml.append("<body>")
myhtml.append('<a href="https://www.awebsite.com">ABC</a>')
for line in range(5):
myhtml.append("<br>")
myhtml.append("<b>"""+str(my_header_list[line])+ """</b><br>")
myhtml.append(""" +"<br/>".join(str(my_msg_list[line]).split("\n"))+ """)
myhtml.append("</p>")
myhtml.append("</body>")
myhtml.append("</html>")
mail.Body = "\n".join(myhtml)
mail.HTMLBody = (mail.Body)
mail.Send()
您可以按如下方式简单地更改此字符串
html = """\
<html>
<head></head>
<body>
<a href="https://www.awebsite.com">ABC</a>"""
for index in range(0,4):
html = html + """<br>
<b>"""+str(my_header_list[index])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[index]).split("\n"))+ """
<br>
</p>
</body>
</html>
"""
我有以下一段代码。 my_header_list 和 my_msg_list 的长度可以改变,所以我希望用 html 中的 for 循环替换以下代码。
def send_email(my_header_list, my_msg_list, recipients):
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = ";".join([i for i in recipients])
mail.Subject = 'Summary | ' + str(datetime.now().strftime("%m-%d-%Y %H:%M"))
mail.Body = html = """\
<html>
<head></head>
<body>
<a href="https://www.awebsite.com">ABC</a>
<br>
<b>"""+str(my_header_list[0])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[0]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[1])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[1]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[2])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[2]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[3])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[3]).split("\n"))+ """
<br>
<b>""" +str(my_header_list[4])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[4]).split("\n"))+ """
<br>
</p>
</body>
</html>
"""
mail.HTMLBody = (mail.Body)
mail.Send()
在列表中收集你的台词,最后加入。
def send_email(my_header_list, my_msg_list, recipients):
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = ";".join([i for i in recipients])
mail.Subject = 'Summary | ' + str(datetime.now().strftime("%m-%d-%Y %H:%M"))
myhtml = []
myhtml.append("<html>")
myhtml.append("<head></head>")
myhtml.append("<body>")
myhtml.append('<a href="https://www.awebsite.com">ABC</a>')
for line in range(5):
myhtml.append("<br>")
myhtml.append("<b>"""+str(my_header_list[line])+ """</b><br>")
myhtml.append(""" +"<br/>".join(str(my_msg_list[line]).split("\n"))+ """)
myhtml.append("</p>")
myhtml.append("</body>")
myhtml.append("</html>")
mail.Body = "\n".join(myhtml)
mail.HTMLBody = (mail.Body)
mail.Send()
您可以按如下方式简单地更改此字符串
html = """\
<html>
<head></head>
<body>
<a href="https://www.awebsite.com">ABC</a>"""
for index in range(0,4):
html = html + """<br>
<b>"""+str(my_header_list[index])+ """</b>
<br>
""" +"<br/>".join(str(my_msg_list[index]).split("\n"))+ """
<br>
</p>
</body>
</html>
"""