32654


Djangoのメール認証機能を実装したいです。ロリポップのメールサーバーにアクセスしてメールを送りたいと考えております。

`settings.py`、ならびにメール送信機能が書かれている`account/views.py`は次のように実装しました。`EMAIL_HOST_USER`等の情報はロリポップのユーザー専用ページにて確認しました。

しかしながら下記の実装では`SMTPServerDisconnected at /account/signup/`
というエラーが返ってきます。おそらくSMTPサーバーに接続できていないのだと思います。どこに問題がございますでしょうか？

`settings.py`

[code]

    # Email Settings
    EMAIL_HOST = 'smtp.lolipop.jp'
    EMAIL_PORT = '465'
    EMAIL_HOST_USER = 'my_account'
    EMAIL_HOST_PASSWORD = 'my_password'
    EMAIL_USE_TLS = True
    # EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
    DEFAULT_FROM_EMAIL = 'info@test.com'
    
[/code]

`accounts/views.py`

[code]

    # Send email
    template = get_template('emails/signup.html')
    content = template.render(Context({'onetime_code': user.onetime_code}))
    subject = 'test'
    from_email = 'info@test.com'
    email = EmailMultiAlternatives(
        subject,
        content,
        from_email,
        [user.email]
    )
    email.attach_alternative(content, "text/html")
    email.send()
    
    return redirect('/invoice')
    
[/code]


CC BY-SA 3.0
2016-11-12T08:00:03.113
30343
2017-02-14T02:57:15.063
2016-11-12T08:05:07.080
6098
6098
question
python django
Django メール機能、ロリポップとの連携


telnet等で対象のメールサーバー smtp.lolipop.jp にポート465で接続できることを確認済みであることを前提として、回答します。

ロリポップの公式ドキュメントより、ロリポップのメールサーバーにはSMTP−AUTHが使用されているようです。  
<https://lolipop.jp/manual/mail/mail-server/>

Djangoのメール送信の仕組みでSMTP-AUTHを使用するには、 EMAIL_USE_TLSではなく、EMAIL_USE_SSL を使用します。

[code]

    EMAIL_USE_SSL=True
    
[/code]

<https://docs.djangoproject.com/en/1.10/ref/settings/#email-use-ssl>

EMAIL_USE_TLSの方は、SMTPSを用いる際にTrueに指定します。


CC BY-SA 3.0
2017-02-14T02:57:15.063
32654
2017-02-14T02:57:15.063
3481
30343
answer