在作为HTML电子邮件发送时,Tablesorter无法正常工作

时间:2013-04-25 20:39:25

标签: python html html-table html-email tablesorter

我正在尝试通过电子邮件发送一个表格,该表格会在点击该列时根据列进行排序。

我找到了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电子邮件的固有问题吗?

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

在HTML电子邮件中无法使用Javascript,因为这会带来很大的安全风险。大多数邮件客户端将删除或忽略HTML消息中的任何脚本。

此外,许多客户端可能会阻止加载远程脚本作为远程内容,并且需要用户手动加载远程内容。但即使他们允许这样做,它仍然不允许人们在电子邮件中运行脚本。

您最好的选择是将HTML作为附件包含在内,然后再将其打开(风险自负),或者将HTML保存在您的服务器上并链接到它。