Namecheap.comを使用してドメインとプライベートメールを登録しました。このプライベートメールからメールを送信しようとしています。しかし、タイトルにエラーがあります。
私のsettings.pyには、次の設定があります。
EMAIL_Host = 'mail.privateemail.com'
EMAIL_Host_USER = '[email protected]'
EMAIL_Host_PASSWORD = 'my password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'Django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = EMAIL_Host_USER
そして、私はビューを介して電子メールを送信しようとしています:
send_mail(
'Subject here',
'Here is the message.',
'[email protected]',
['[email protected]'],
fail_silently=False,
)
ただし、次のエラーが発生します。
SMTPException at /
STARTTLS extension not supported by server.
理由は何ですか?どんな助けでも大歓迎です。
編集
EMAIL_USE_TLSをFalseに変更し、それを削除して両方を個別にチェックした後、次のエラーが発生します。
SMTP AUTH extension not supported by server.
理由は何ですか?ありがとう!
サーバーmail.privateemail.com
はSTARTTLS
SMTPCommnadが何であるかを知りません
これは2つの場合に発生する可能性があります。
プレーンな通信を提供するポート587に接続していると判断すると、1または3のいずれかになります。
これを正しく機能させたい場合は、EMAIL_USE_TLS = True
を削除するか、False
に設定します。それ以外の場合は、SMTPサーバーの構成を修正する必要があります。
settings.py
に次の変更を加えることで、TLSの代わりにSSLを試すことができます。
EMAIL_USE_SSL = True
EMAIL_PORT = 465
それが役立つことを願っています
メールサーバーでTLSを設定するか、EMAIL_USE_TLS = False
を使用してください。
問題をまだ解決したかどうかはわかりません。最近、NameCheapの2か月間の無料のプライベートメールパッケージも試してみました。これが私のコードで、2018年1月の時点で機能します:
_import smtplib
from email.message import EmailMessage
fromaddr = '[email protected]'
toaddrs = "[email protected]"
SMTPServer = 'mail.privateemail.com'
port = 465 #587
login = "[email protected]"
password = "password"
msg = EmailMessage()
msgtxt = "http://www.google.com"+"\n\n"+"This is a test."
msg.set_content(msgtxt)
msg['Subject'] = "Test message"
msg['From'] = fromaddr
msg['To'] = toaddrs
server = smtplib.SMTP_SSL(SMTPServer, port) #use smtplib.SMTP() if port is 587
#server.starttls()
server.login(login, password)
server.send_message(msg)
server.quit()
_
この助けを願っています!
PS。ポート587を使用することもできますが、smtplib.SMTP()
の代わりにsmtplib.SMTP_SSL()
を使用する必要があり、server.starttls()
行のコメントを解除する必要もあります。
サーバー名にポート番号を追加することで、以下のコード行を変更することで問題を解決できます。
server = smtplib.SMTP('mail.mycompany.com:587')