我正在尝试通过电子邮件发送一个表格,该表格会在点击该列时根据列进行排序。
我找到了http://tablesorter.com/docs/,看起来非常简单。
我正在使用python编写html。 有问题的功能是
def getOpportunitiesTable(opps): #formats html table for email
它包含一个dict列表,应该返回html
html = ""
html += "<head>"
html += '<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>'
html += '<script type="text/javascript" src="http://mottie.github.com/tablesorter/js/jquery.tablesorter.js"></script>'
html += "</head>"
html += '<table id="opportunities" class="tablesorter">'
html += '<thead><tr><th>Opportunity Name</th><th>Forcasted Close Date</th><th>Pipeline Category</th><th>Stage</th><th>Priority</th></tr></thead>'
html += '<tbody>'
for o in iter(opps):
html += "<tr>"
#opportunity name linked to insightly's page
html += "<td>" + '<a href="https://googleapps.insight.ly/Opportunities/Details/' + str(o['OPPORTUNITY_ID']) + '">'
try:
html += o['OPPORTUNITY_NAME'].encode('utf-8')
except:
html += '************************'
logging.info(str(o))
html += "</a>" + "</td>"
html += "<td>"
if 'FORECAST_CLOSE_DATE' in o and o["FORECAST_CLOSE_DATE"] != None: #if fclose date provided format it
html += datetime.strptime(o["FORECAST_CLOSE_DATE"], '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d')
else:
html += ' - '
html += "</td>"
html += "<td>" + pipelineCategory[o['PIPELINE_ID']] if o['PIPELINE_ID'] in pipelineCategory else ' - ' + "</td>"
html += "<td>" + stageName[o['STAGE_ID']] if o['STAGE_ID'] in stageName else ' - ' + "</td>"
html += "<td>" + str(o["OPPORTUNITY_FIELD_5"]) + "</td>"
html += "</tr>"
html += '</tbody>'
html += "</table><br/>"
return html
我的困惑伴随着这两行
html += '<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>'
html += '<script type="text/javascript" src="http://mottie.github.com/tablesorter/js/jquery.tablesorter.js"></script>'
此外,我应该允许发送一个操纵发送表格的HTML电子邮件的固有问题吗?
感谢任何帮助!
答案 0 :(得分:1)
在HTML电子邮件中无法使用Javascript,因为这会带来很大的安全风险。大多数邮件客户端将删除或忽略HTML消息中的任何脚本。
此外,许多客户端可能会阻止加载远程脚本作为远程内容,并且需要用户手动加载远程内容。但即使他们允许这样做,它仍然不允许人们在电子邮件中运行脚本。
您最好的选择是将HTML作为附件包含在内,然后再将其打开(风险自负),或者将HTML保存在您的服务器上并链接到它。