TypeError at /email/ getaddrinfo() аргумент 1 должен быть строкой или None
Я пытался отправить сообщение кандидату, используя Gmail как smtp, когда я нажимаю кнопку отправки, я вижу вышеуказанную ошибку............................................................................................................................................................................................
views.py
def email(request):
if request.method == 'POST':
# save message to DB
to_db = Email(
status = request.POST.get('status'),
name = request.POST.get('name'),
email = request.POST.get('email'),
message = request.POST.get('message'),
subject = request.POST.get('subject'),
)
to_db.save()
#Send email
form = EmailForm(request.POST)
company = "TT Software Solutions"
if form.is_valid():
email = form.cleaned_data["email"]
subject = form.cleaned_data["subject"]
message = form.cleaned_data["message"]
mail = EmailMessage(subject, message, company, [email])
mail.send()
messages.success(request, 'Email sent successfully')
return redirect('candidates')
else:
form = EmailForm()
return render(request, {'form':form})
models.py
class Email(models.Model):
# Hidden
name = models.CharField(max_length=50)
email = models.EmailField(max_length=50)
status = models.CharField(max_length=50)
# Non Hidden
subject = models.CharField(max_length=50)
message = models.TextField()
def __str__(self):
return self.name
шаблон
<form class="was-validated" action="{% url 'email' %}" method="post">
{% csrf_token %}
<div class="modal-body">
<strong>To: <span class="text-primary">{{ candidate.first_name }} {{ candidate.last_name }}</span></strong>
<hr>
<!-- Hiden Inputs -->
<input type="hidden" name="name" value="{{ candidate.first_name }} {{ candidate.last_name }}">
<input type="hidden" name="email" value="{{ candidate.email }}">
<input type="hidden" name="status" value="{{ candidate.Situation }}">
<!-- Non Hiden Input -->
<input type="text" name="subject" class="form-control mb-2" placeholder="Subject" required>
<textarea name="message" class="form-control" rows="8" placeholder="Message to candidate..." required></textarea>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary w-100">
<i class="fas fa-paper-plane"></i> Submit
</button>
</div>
</form>
forms.py
class EmailForm(forms.Form):
email = forms.EmailField()
subject = forms.CharField(max_length=100)
message = forms.CharField(widget= forms.Textarea)
class Meta:
fields = '__all__'
settings.py
# EMAILS (smtp server)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST = 587
EMAIL_HOST_USER = 'abiodunazeez230@gmail.com'
EMAIL_HOST_PASSWORD = 'app password here'
EMAIL_USE_TLS = True
Вы установили плохой хост в файле settings.py
# to remove !
EMAIL_HOST = 587