Итак, я искал интернет, пытаясь заставить мой код работать, и мне кажется, что я прочитал все посты об этой проблеме и до сих пор не понял, почему я не могу получить свою форму, чтобы отправить мне электронное письмо,Я создал представление на основе классов, которое наследует FormView, и написал метод, который должен отправлять мне электронное письмо в любое время после пост-запроса.На всю жизнь я не могу заставить его работать.
Для тех, кто находится в одной лодке, этот пост казался многообещающим, поэтому, надеюсь, он поможет вам, даже если он мне не поможет:
Django отправка электронной почты
Мои views.py: (оба адреса электронной почты одинаковы. Это должно имитировать отправку мне письма себе.)
class CandRegisterView(FormView):
template_name = 'website/candidate_register.html'
form_class = UploadResumeForm
def send_email(self, request):
if request.method == 'POST':
send_mail('Test', 'This is a test', 'myemail@gmail.com', ['myemail@gmail.com'], fail_silently=False)
my forms.py:
from django import forms
class UploadResumeForm(forms.Form):
first_name = forms.CharField(
widget=forms.TextInput(
attrs={
'type':'text',
'class': 'form-control',
'placeholder': 'First Name',
}),
required=True)
my settings.py (переменные хранятся в файле .env, и я использую развязку python, чтобы добавить их, не раскрывая информацию на github. Но это их соответствующие значения)
EMAIL_USE_TLS=True
EMAIL_USE_SSL=False
EMAIL_HOST=smtp.gmail.com
EMAIL_HOST_USER=myemail@gmail.com
EMAIL_HOST_PASSWORD=***************
EMAIL_PORT=587
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL='myemail@gmail.com'
SERVER_EMAIL='myemail@gmail.com
urls.py:
from django.urls import path, re_path
from .views import CandRegisterView
re_path(r'^candidate-register/$', CandRegisterView.as_view(success_url="/candidate-register/"), name='cand_register'),
candid_register.html:
<form method= "post" action="" accept-charset="UTF-8" role="form">
{% csrf_token %}
<fieldset>
<div class="form-group">
<div class="input-group input-group-lg">
<span class="input-group-addon"><i class="fa fa-fw fa-user"></i></span>
{{form.first_name}}
<!-- <input type="text" class="form-control" placeholder="First Name" name={{form.first_name}}> -->
</div>
</div>
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Send Email">
</fieldset>
</form>
Вот что я получаю из консоли после нажатия кнопки «Отправить» .:
[10/Jul/2019 13:19:21] "POST /candidate-register/ HTTP/1.1" 302 0
[10/Jul/2019 13:19:22] "GET /candidate-register/ HTTP/1.1" 200 16782
[10/Jul/2019 13:19:22] "GET /candidate-register/ HTTP/1.1" 200 16782
Все, что я хочу, чтобы это было в состоянии сделать, это отправить мне имя человека прямо сейчас.позже я хочу, чтобы они могли прислать мне файл с их резюме, но я решил, что я начну с простого и сделаю его более сложным, включая другие поля, но я даже не могу заставить это работать.Любая помощь или советы будут с благодарностью.Похоже, что почтовый запрос происходит, но электронное письмо не отправляется.Я также попытался использовать функцию send_mail в python manage.py shell, и он показал ответ, который выглядел многообещающе (журнал показал, как будет выглядеть электронная почта), но не отправил письмо на мою учетную запись.