ログイン時にユーザ名を忘れたユーザがいたら、メールフォームにemailアドレスを入力してもらって、auth_usersにメールアドレスがあれば、そのメールアドレスにユーザ名を送信したい。パスワードは送信しない。
ログイン画面
メール入力画面
公式ドキュメント: send email
SMTPは開発環境なので、mailtrapを使います。
EMAIL_BACKEND = ‘django.core.mail.backends.console.EmailBackend’とすれば、コマンドラインに表示されます。
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.mailtrap.io' EMAIL_PORT = 587 EMAIL_HOST_USER = '******' EMAIL_HOST_PASSWORD = '******' EMAIL_USE_TLS = True
### views.py
auth_userテーブルから、一致するemailがあるか確認し、あれば、そのメールアドレスにusernameを送信する。
送信はsend_mailを使用する。
本文の改行は”\n”
from django.core.mail import send_mail def username_send(request): if(request.method == 'POST'): data = User.objects.filter(email=request.POST['email']).first() if data is not None: subject = "【Hanai】ユーザ名のお知らせ" message = 'お問い合わせありがとうございます。\nログインに必要なユーザ名をお知らせします。\n\nユーザ名:' + data.username + '\n\n\n※本メールは販売管理システムの\n送信専用のメールアドレスから自動送信されています。\nご返信いただいても返信できませんのでご了承ください。\n本サービスに心上がりがない場合など、お問い合わせください。\n\nHanbai' from_email = 'master@hanbai.com' recipient_list = [ data.email ] send_mail(subject, message, from_email, recipient_list) else: params = { 'message': 'メールアドレスの登録がありません。' } return render(request, 'sales/username_forget.html', params) return render(request, 'sales/username_send.html')
メール受信
OK! 大分来た
さあ、この調子で続けてラズパイとopenCVやります。