Python中內置了一個smtp郵件發送模塊,Django在此基礎上進行了簡單地封裝,讓咱們在Django環境中能夠更方便更靈活i的發送郵件。全部的功能都在django.core.mail中,經常使用的免費服務器有:16三、12六、QQ等。html
SSL:(Secure Socket Layer,安全套接字層)位於可靠的面向鏈接的網絡層協議和應用層協議之間的一種協議層。SSL經過互相認證、使用數字簽名確保完整性、使用加密確保私密性,以實現客戶端和服務器之間的安全通信。python
TLS:(Transport LayerSecurity,傳輸層安全協議),用於兩個應用程序之間提供保密性和數據完整性。算法
咱們一般所說的 HTTPS 協議,就是「HTTP 協議」和「SSL/TLS 協議」的組合。你能夠把 HTTPS 大體理解爲——「HTTP over SSL」或「HTTP over TLS」(反正 SSL 和 TLS 差很少)。瀏覽器地址欄的那把鎖指的就是SSL協議。django
TLS和SSL的關係:並列關係後端
最新版本的TLS(Transport Layer Security,傳輸層安全協議)是IETF(Internet Engineering Task Force,Internet工程任務組)制定的一種新的協議,它創建在SSL 3.0協議規範之上,是SSL 3.0的後續版本。在TLS與SSL 3.0之間存在着顯著的差異,主要是它們所支持的加密算法不一樣,因此TLS與SSL 3.0不能互操做。瀏覽器
TLS的主要目標是使SSL更安全,並使協議的規範更精確和完善。TLS在SSL v3.0的基礎上,提供瞭如下增長內容:安全
首先,咱們須要一個本地SMTP服務器或者在項目setting.py中添加如下設置來配置一個外部SMTP服務器:服務器
若是沒有本地SMTP服務器,可使用e-mail提供者的SMTP服務器。下面的簡單配置是經過QQ服務器發送e-mail的配置。網絡
# SMTP後端是Django的默認配置,若是要明確指定,請在settings中輸入如下內容 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = "smtp.qq.com" # SMTP服務器主機 EMAIL_PORT = 25 # 端口 EMAIL_HOST_USER = "695485***@qq.com" # 發送郵件的郵箱 EMAIL_HOST_PASSWORD = "*********" # #郵箱的受權密碼 EMAIL_USE_SSL= True
注意:配置中,EMAIL_USE_TLS和EMAIL_USE_SSL都默認設置爲False,須要配置其中一個爲True,可是不能兩個都設置爲True。通常端口587對應TLS,端口465對應SSL。app
阿里雲默認禁用了25端口,使用465端口,EMAIL_USE_TLS=True
# 前面四個參數必需要寫,後面的參數能夠爲空 def send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None):
# apps/utils/email_send.py from django.core.mail import send_mail def sendMail(request): from_email = 'ray<695485075@qq.com>' msg = '<a href="http://127.0.0.1:8000/index/">點擊激活</a>' send_mail("註冊激活","",msg,from_email,recipient_list=['',]) return HttpResponse("郵件已發送")