Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在html邮件正文中使用for循环_Python_For Loop_Win32com - Fatal编程技术网

Python在html邮件正文中使用for循环

Python在html邮件正文中使用for循环,python,for-loop,win32com,Python,For Loop,Win32com,我有下面的代码。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 recipie

我有下面的代码。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发送电子邮件(我的邮件头列表、我的邮件列表、收件人):
outlook=win32.Dispatch('outlook.application')
mail=outlook.CreateItem(0)
mail.To=“;”.join([i代表收件人中的i])
mail.Subject='Summary |'+str(datetime.now().strftime(“%m-%d-%Y%H:%m”))
mail.Body=html=“”\

“+str(我的标题列表[0])+”
“+”
。加入(str(my_msg_list[0])。拆分(“\n”))+”
“+str(我的标题列表[1])+”
“+”
。加入(str(my_msg_list[1])。拆分(“\n”))+”
“+str(我的标题列表[2])+”
“+”
。加入(str(我的消息列表[2])。拆分(“\n”)+”
“+str(我的标题列表[3])+”
“+”
。加入(str(my_msg_list[3])。拆分(“\n”))+”
“+str(我的标题列表[4])+”
“+”
。加入(str(my_msg_list[4])。拆分(“\n”))+”

""" 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()
def发送电子邮件(我的邮件头列表、我的邮件列表、收件人):
outlook=win32.Dispatch('outlook.application')
mail=outlook.CreateItem(0)
mail.To=“;”.join([i代表收件人中的i])
mail.Subject='Summary |'+str(datetime.now().strftime(“%m-%d-%Y%H:%m”))
myhtml=[]
myhtml.append(“”)
myhtml.append(“”)
myhtml.append(“”)
myhtml.append(“”)
对于范围(5)中的行:
myhtml.append(“
”) myhtml.append(“”+str(我的标题列表[行])+“
”) myhtml.append(“+”
).join(str(my_msg_list[line]).split(“\n”)+”) myhtml.append(“

”) myhtml.append(“”) myhtml.append(“”) 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>
    """
html=”“”\
"""
对于范围(0,4)内的索引:
html=html+“”“
“+str(我的标题列表[索引])+”
“+”
。加入(str(my_msg_list[index])。拆分(“\n”))+”

"""
首先,我会将html字符串分为三部分:html的开始部分、中间部分(您将对其执行for循环以生成所需内容)和永不更改的结束部分。然后将这三个字符串连接在一起。请尝试使用列表。在循环中追加行。在结尾,用““\n”连接它。连接(mylist)。我希望标题用粗体,消息用普通文本。如果我为标题和MSG创建一个公共列表,有什么方法可以做到这一点吗。在for循环之后我有一些html,但是我的脚本在for循环之后读取所有内容,不管缩进如何。有什么方法可以标记for循环的结束吗?只能通过缩进。无论您想在for循环结束后添加什么,只需在零空间缩进处添加即可。如果这对你没有帮助,请告诉我