Localhost環境下使用Django send_mail發送郵件-以QQ和163郵箱為例
本文適合剛學習Python和Django Web開發的人練手。你會發現使用Django自帶的send_mail方法發送電子郵件真是太簡單了。本文教你如何在Django localhost環境下通過QQ郵箱或163郵箱發送電子郵件。
初識Django send_mail方法
使用Django自帶的send_mail方法發送電子郵件非常簡單。你先需要importsend_mail, 然後按如下方式使用send_mail()。如果要給多人發郵件,可使用send_mass_mail方法。如果郵件發送成功,該方法會返回1。
當然你在使用send_mail方法前,必需在settings.py里正確地配置發送郵件的電子郵箱。我們現在就教你怎麼做。
settings.py中的郵箱配置
配置郵箱過程也非常簡單,你只需要在settings.py添加如下信息。你肯定會問,我添加了這些信息Django就可以通過send_mail發送郵件給任何人了?個人郵箱行不行?localhost下行不行? 答案是YES。就是這麼簡單,就是這麼任性。
現在我們來實際看下使用QQ郵箱發送郵件的配置。你只需要將QQ郵箱和授權碼換成你自己的就行了。騰訊郵箱為了安全起見,保護用戶的密碼,只授權第3方通過授權碼而不是個人密碼來登錄。下面我們現在就來看看如何獲取給第3方使用的授權碼。
在你提供配置信息後,Django每當send_mail函數被調用時就會以你的用戶名和授權碼登錄QQ郵箱,並以你QQ郵箱的名義給別人發郵件。
QQ郵箱如何獲取授權碼
登錄你的QQ郵箱,點擊左上角的設置 ->賬戶,如下圖所示:
一直往下拉,找到POP3/IMAP服務,申請開啟POP3和IMAP服務(需發送簡訊開通),然後點擊右下角的"生成授權碼", 就會得到16位隨機字母組成的授權碼。
163郵箱獲取授權碼
驗證實際效果
我們現在來看看能不能成功發送郵件。最快的是方式是在cmd terminal里輸入python manage.py shell打開python shell,然後輸入命令:
如果返回1就證明你成功了。這時打開郵箱你就會看到Django發來的郵件。
如果你也看到這封郵件了,恭喜你。你已經學會了用Django發送郵件。