擅长:python、mysql、java
<p>我要做的第一件事是使用python的<a href="https://docs.python.org/2/library/email-examples.html" rel="nofollow">email</a>模块,而不是手工构建电子邮件。它将负责为HTML和纯文本正确构建信封。那里的文档甚至展示了如何使用smtplib发送HTML电子邮件(向下滚动到“如何创建HTML消息”部分)。你知道吗</p>
<p>另外,要小心这一行的<a href="http://en.wikipedia.org/wiki/SQL_injection" rel="nofollow">SQL injection</a>!你知道吗</p>
<pre><code>cur.execute("UPDATE form_number SET tag = 3, time_sent = '" + now + "' WHERE form_number = '" + str(row[0]) + "'")
</code></pre>
<p>在这种情况下,您可以(?)请注意安全,因为您可以控制<code>now</code>和<code>row[0]</code>,但使用准备好的语句并将值作为参数传递,而不是将它们连接到查询中,这样做会更好、更安全。你知道吗</p>
<p>下面介绍如何在MySQLdb中使用准备好的语句:</p>
<p><a href="http://en.wikipedia.org/wiki/Prepared_statement#Python_DB-API" rel="nofollow">http://en.wikipedia.org/wiki/Prepared_statement#Python_DB-API</a></p>
<p>(忽略示例是sqlite3,它的工作原理是相同的,因为它们都遵循python的DBAPI标准)</p>