1. 程式人生 > >Python之道--Python連線MYSQL資料庫和傳送郵件

Python之道--Python連線MYSQL資料庫和傳送郵件

主機環境:Linux yan-Server 3.4.36-gentoo #3 SMP Mon Apr 1 14:09:12 CST 2013 x86_64 AMD Athlon(tm) X4 750K Quad Core Processor AuthenticAMD GNU/Linux

Python版本:Python 2.7.4

原創作品,轉載請標明

Python 2還是選擇Python 3?這是挺難抉擇的。

Python 2學習起來參考資料比較多,網上的開源的外掛對Python 2支援也比Python3好,容易學習。

Python 3改進了Python 2的部分缺點,具體我沒有了解。本來想學習Python 3,mysql的Python 3外掛一直沒有搞定。

雖然Python之父建議:如果你手裡還有其他的Python專案,建議你學習Python 2,如果你是個初學者,建議直接學習Python 3。

考慮到雖然版本更新,但是Python的思想沒變,我選擇了Python 2。

下面的程式的作用是給資料庫註冊的使用者群發通知郵件,直接上程式碼

[python] view plaincopyprint?
  1. #coding=utf-8
  2. import MySQLdb  
  3. import smtplib  
  4. from email.mime.text import MIMEText  
  5. from email.mime.multipart import MIMEMultipart  
  6. import time  
  7. def send_email(receiver):  
  8.     smtpserver = 'smtp.qq.com'
  9.     username = '***@qq.com'
  10.     sender = '****@qq.com'
  11.     password = '****'
  12.     subject = 'GPS定位追蹤-我的Ta你在哪'
  13.     msg=MIMEMultipart('alternative')  
  14.     msg['Subject'] = subject  
  15.     msg['From'] = '****@qq.com'
  16.     msg['To'] = receiver  
  17.     #郵件正文
  18.     text="尊敬的使用者:\n您好,歡迎使用 GPS定位追蹤--我的Ta你在哪 \n如果需要關注對方的位置,您需要讓對方安裝本軟體登入賬號,\  
  19.     \n根據Ta的帳號和Ta授權碼(如何檢視授權碼?點選選單鍵->設定\n->檢視我的授權碼即可) \  
  20.     \n您可以獲取軟體最新版本 下載地址 。\  
  21.     \n你也可以進入軟體,點選設定->檢查最新版本進行軟體的升級。\  
  22.     \n該軟體使用的是我們自己的伺服器,可以放心使用。\  
  23.     \n如有任何問題請聯絡:\  
  24.     \n客服QQ:2294454734 \  
  25.     \n該郵件由系統自動發出,勿回覆。"  
  26.     html=""" 
  27. <div><font size="4"><span style="font-family: Simsun; line-height: normal;"> 
  28. 尊敬的使用者:</span><br style="font-family: Simsun; line-height: normal;"> 
  29. <span style="font-family: Simsun; line-height: normal;">    您好,歡迎使用<font color="#ff0000">  
  30. <b>GPS定位追蹤--我的Ta你在哪 </b></font></span></font></div><div><font size="4"> 
  31. <span style="font-family: Simsun; line-height: normal;">如果需要關注對方的位置,您</span> 
  32. <span style="font-family: Simsun; line-height: normal;">需要讓對方安裝本軟體登入賬號,</span> 
  33. </font></div><div><font size="4"> 
  34. <span style="font-family: Simsun; line-height: normal;">根據<font color="#ff0000"> 
  35. <b>Ta的帳號和Ta授權碼</b></font></span></font> 
  36. <span style="font-size: large; font-family: Simsun; line-height: normal;">(如何檢視授權碼?</span> 
  37. <span style="font-size: large; font-family: Simsun; line-height: normal;">點選選單鍵->設定</span></div><div> 
  38. <span style="font-size: large; font-family: Simsun; line-height: normal;">->檢視我的授權碼即可)</span></div> 
  39. <div><font size="4"><b><span style="font-family: Simsun; line-height: normal;"><br></span></b></font></div> 
  40. <div><font size="4"><b><span style="font-family: Simsun; line-height: normal;">您可以獲取軟體最新版本 </span> 
  41. <a href="http://121.199.5.19/download/TouchYou.apk" style="font-family: Simsun; line-height: normal;">下載地址</a> 
  42. <span style="font-family: Simsun; line-height: normal;"> 。</span></b></font></div><div> 
  43. <span style="font-family: Simsun; line-height: normal; font-size: large;">你也可以進入軟體,點選<font color="#ff0000"> 
  44. <b>設定->檢查最新版本</b></font>進行軟體的升級。</span></div><div><font size="4"> 
  45. <span style="font-family: Simsun; line-height: normal;">該軟體使用的是我們自己的伺服器,可以放心使用。</span></font> 
  46. </div><div><font size="4"><span style="font-family: Simsun; line-height: normal;"><br></span></font></div><div> 
  47. <font face="Simsun" size="4"><span style="line-height: normal;">如有任何問題請聯絡:</span></font></div><div> 
  48. <font face="Simsun" size="4" color="#ff0000"><span style="line-height: normal;"><b>客服QQ:2294454734</b> 
  49. </span></font><br>該郵件由系統自動發出,勿回覆。 
  50. </div> 
  51.     """
  52.     part1=MIMEText(text,'plain',_charset='utf-8')  
  53.     part2=MIMEText(html,'html',_charset='utf-8')  
  54.     msg.attach(part1)  
  55.     msg.attach(part2)  
  56.     #開始傳送
  57.     smtp = smtplib.SMTP()  
  58.     smtp.connect(smtpserver)  
  59.     smtp.login(username, password)  
  60.     try:  
  61.         smtp.sendmail(sender, receiver, msg.as_string())  
  62.         time.sleep(60)#等待一分鐘,防止被伺服器遮蔽
  63.     except:  
  64.         print receiver  
  65.         print(' 郵件傳送失敗!')  
  66.     smtp.quit()  
  67.     print(receiver)  
  68.     print(' 郵件傳送成功!')  
  69. #連線
  70. cxn = MySQLdb.Connect(host = 'localhost', user = 'root', passwd = '**')  
  71. #遊標
  72. cur = cxn.cursor()  
  73. #建立資料庫
  74. cur.execute("USE login")  
  75. #查詢
  76. print cur.execute("SELECT email FROM user  order by id desc")  
  77. for row in cur.fetchall():  
  78.     for mail in row:  
  79.         #send_email(mail)
  80.         print mail  
  81. #關閉
  82. cur.close()  
  83. cxn.commit()  
  84. cxn.close()  
#coding=utf-8
import MySQLdb

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import time

def send_email(receiver):

    smtpserver = 'smtp.qq.com'
    username = '***@qq.com'
    sender = '****@qq.com'
    password = '****'
    
    subject = 'GPS定位追蹤-我的Ta你在哪'
    
    msg=MIMEMultipart('alternative')
    
    msg['Subject'] = subject
    msg['From'] = '****@qq.com'
    msg['To'] = receiver
    
    #郵件正文
    
    text="尊敬的使用者:\n您好,歡迎使用 GPS定位追蹤--我的Ta你在哪 \n如果需要關注對方的位置,您需要讓對方安裝本軟體登入賬號,\
    \n根據Ta的帳號和Ta授權碼(如何檢視授權碼?點選選單鍵->設定\n->檢視我的授權碼即可) \
    \n您可以獲取軟體最新版本 下載地址 。\
    \n你也可以進入軟體,點選設定->檢查最新版本進行軟體的升級。\
    \n該軟體使用的是我們自己的伺服器,可以放心使用。\
    \n如有任何問題請聯絡:\
    \n客服QQ:2294454734 \
    \n該郵件由系統自動發出,勿回覆。"

    html="""
<div><font size="4"><span style="font-family: Simsun; line-height: normal;">
尊敬的使用者:</span><br style="font-family: Simsun; line-height: normal;">
<span style="font-family: Simsun; line-height: normal;">    您好,歡迎使用<font color="#ff0000"> 
<b>GPS定位追蹤--我的Ta你在哪 </b></font></span></font></div><div><font size="4">
<span style="font-family: Simsun; line-height: normal;">如果需要關注對方的位置,您</span>
<span style="font-family: Simsun; line-height: normal;">需要讓對方安裝本軟體登入賬號,</span>
</font></div><div><font size="4">
<span style="font-family: Simsun; line-height: normal;">根據<font color="#ff0000">
<b>Ta的帳號和Ta授權碼</b></font></span></font>
<span style="font-size: large; font-family: Simsun; line-height: normal;">(如何檢視授權碼?</span>
<span style="font-size: large; font-family: Simsun; line-height: normal;">點選選單鍵->設定</span></div><div>
<span style="font-size: large; font-family: Simsun; line-height: normal;">->檢視我的授權碼即可)</span></div>
<div><font size="4"><b><span style="font-family: Simsun; line-height: normal;"><br></span></b></font></div>
<div><font size="4"><b><span style="font-family: Simsun; line-height: normal;">您可以獲取軟體最新版本 </span>
<a href="http://121.199.5.19/download/TouchYou.apk" style="font-family: Simsun; line-height: normal;">下載地址</a>
<span style="font-family: Simsun; line-height: normal;"> 。</span></b></font></div><div>
<span style="font-family: Simsun; line-height: normal; font-size: large;">你也可以進入軟體,點選<font color="#ff0000">
<b>設定->檢查最新版本</b></font>進行軟體的升級。</span></div><div><font size="4">
<span style="font-family: Simsun; line-height: normal;">該軟體使用的是我們自己的伺服器,可以放心使用。</span></font>
</div><div><font size="4"><span style="font-family: Simsun; line-height: normal;"><br></span></font></div><div>
<font face="Simsun" size="4"><span style="line-height: normal;">如有任何問題請聯絡:</span></font></div><div>
<font face="Simsun" size="4" color="#ff0000"><span style="line-height: normal;"><b>客服QQ:2294454734</b>
</span></font><br>該郵件由系統自動發出,勿回覆。
</div>
    """
    part1=MIMEText(text,'plain',_charset='utf-8')
    part2=MIMEText(html,'html',_charset='utf-8')
     
    msg.attach(part1)
    msg.attach(part2)
    
    
    #開始傳送
    smtp = smtplib.SMTP()
    smtp.connect(smtpserver)
    smtp.login(username, password)
    try:
        smtp.sendmail(sender, receiver, msg.as_string())
        time.sleep(60)#等待一分鐘,防止被伺服器遮蔽
    except:
        print receiver
        print(' 郵件傳送失敗!')
        
    smtp.quit()
    print(receiver)
    print(' 郵件傳送成功!')


#連線
cxn = MySQLdb.Connect(host = 'localhost', user = 'root', passwd = '**')

#遊標
cur = cxn.cursor()


#建立資料庫

cur.execute("USE login")


#查詢
print cur.execute("SELECT email FROM user  order by id desc")
for row in cur.fetchall():
    for mail in row:
        #send_email(mail)
        print mail

#關閉
cur.close()
cxn.commit()
cxn.close()

也順便說一下,本人做的一個Android的GPS定位追蹤軟體,大家有興趣的可以安裝體驗一下。下載地址: