Djangoメールの送信に失敗しました

1790 ワード

Pythonはメールを送り、全文メールサーバーはsmtp.qq.comが前提:
次のエラーが発生しました.
raise SMTPServerDisconnected("Connection unexpectedly closed")

smtplib.SMTPServerDisconnected: Connection unexpectedly closed

ピット:Djangoのfrom django.core.mail import send_mailはメールを送って、ポート番号は25が必要です
方法1:関連モジュールを使用して、ここでQQを例にして、ここのポート番号は:465です
#!/usr/bin/python3

import smtplib
from email.mime.text import MIMEText
from email.header import Header

_user = "   @qq.com"
_pwd  = "     qq  "
_to   = "   @qq.com"

msg = MIMEText("www.baidu.com")
msg["Subject"] = "Python       "
msg["From"]    = _user
msg["To"]      = _to

i = 0
while i < 1:
    try:
        s = smtplib.SMTP_SSL("smtp.qq.com", 465)
        s.login(_user, _pwd)
        s.sendmail(_user, _to, msg.as_string())
        s.quit()
        print("Success!")
    except smtplib.SMTPException as e:
        print ("Falied,%s" %e)

    i = i + 1

方法2:Djangoフレームワーク送信メール、settings.pyでは、次のように構成されています.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

# smpt    
EMAIL_HOST = 'smtp.qq.com'

#   
EMAIL_PORT = 25

#       
EMAIL_HOST_USER = '   @qq.com'

#              
EMAIL_HOST_PASSWORD = '       '

#         
EMAIL_FROM = 'python'

views.pyでは、次のように使用します.
from django.core.mail import send_mail

send_mail('    ', '      ', settings.EMAIL_FROM, ['   @qq.com'])

とても简単で、肝心なのはコードを书いていないで、いくつかの穴の中で、第1种の方式のポート番号は465で、フレームワークの方式を歩いて、できるだけポート番号は25で、どうして次に调べて、ここは少し时间を浪费して、もし465ポートを使ってずっと失败して、25を试してみて、下は1人の学友が同じように踏んだ穴です:
https://blog.csdn.net/junxieshiguan/article/details/81811100