使用python迭代数组以构建电子邮件正文
我正在使用Python和BeautifulSoup从一个网站上抓取元素(使用python迭代数组以构建电子邮件正文,python,arrays,email,web-scraping,beautifulsoup,Python,Arrays,Email,Web Scraping,Beautifulsoup,我正在使用Python和BeautifulSoup从一个网站上抓取元素(div),并通过电子邮件将它们发送给我自己 它刮取网站,获取元素,并用这些元素组成一个数组 如何迭代此数组并将元素放入电子邮件正文中 我尝试的是: def sendEmail(): fromaddr = "<email_address>" toaddr = "<email_address>" msg = email.message.Message()
div
),并通过电子邮件将它们发送给我自己
它刮取网站,获取元素,并用这些元素组成一个数组
如何迭代此数组并将元素放入电子邮件正文中
我尝试的是:
def sendEmail():
fromaddr = "<email_address>"
toaddr = "<email_address>"
msg = email.message.Message()
msg['From'] = "<sender>"
msg['To'] = toaddr
msg['Subject'] = "<subject>"
email_content = """
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title</title>
<style type="text/css">
.some-style {
some-css: rules;
}
</style>
</head>
<body>
<div class='container'>
""" +
for i in xrange(0,len(my_aray)):
(my_array[i].prettify()).encode('utf-8')
+ """
</div>
</body>
</html>
"""
msg.add_header('Content-Type','text/html')
msg.set_payload(email_content)
server = smtplib.SMTP('<smtp.server>', <port>)
server.ehlo()
server.starttls()
server.login(fromaddr, "<password>")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
def sendmail():
fromaddr=“”
toaddr=“”
msg=email.message.message()
msg['From']=“”
msg['To']=toaddr
msg['Subject']=“”
电子邮件_content=“”
标题
.某种风格{
一些css:规则;
}
""" +
对于x范围内的i(0,len(my_aray)):
(my_数组[i].prettify()).encode('utf-8')
+ """
"""
msg.add_标题('Content-Type','text/html'))
msg.set\u有效负载(电子邮件内容)
服务器=smtplib.SMTP(“”,)
server.ehlo()
server.starttls()
server.login(fromaddr,“”)
text=msg.as_string()
sendmail(fromaddr,toaddr,text)
server.quit()
当然,这部分不起作用:
<div class='container'>
""" +
for i in xrange(0,len(my_array)):
(my_array[i].prettify()).encode('utf-8')
+ """
</div>
""" +
对于x范围内的i(0,len(我的_数组)):
(my_数组[i].prettify()).encode('utf-8')
+ """
如果我以每个元素为例,比如“+my_数组[0]+my_数组[1]+”
,它就可以工作。问题是数组中的元素数量可能会有所不同
Thx.首先尝试形成动态html内容,然后将其附加到电子邮件内容中 Ex:
html = ""
for i in my_aray:
html += """<div class='container'>{0}</div><br>""".format(i)
email_content = """
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title</title>
<style type="text/css">
.some-style {{
some-css: rules;
}}
</style>
</head>
<body>
{0}
</body>
</html>
""".format(html)
print(email_content)
html=“”
因为我在我的家乡:
html+=“{0}
”。格式(i)
电子邮件_content=“”
标题
.某种风格{{
一些css:规则;
}}
{0}
“”。格式(html)
打印(电子邮件内容)
如果我必须迭代多个数组,它是如何工作的?如果我刮掉两个(或多个)网站,并用每个网站的元素创建两个(或多个)数组,我如何迭代它们以将其放入电子邮件正文中?例如,我有my_array_1
和my_array_2
,我想构建一封写标题的电子邮件,然后my_array_1
的内容比另一个标题和my_array_2
的内容更重要。