Отправка почты работает с mailtrap, но не с сервером outlook или другим
Я сделал контактную форму, я протестировал с сервисом mailtrap и она работает Я получаю сообщения хорошо.
Но когда я ввожу параметры smpt для реального почтового аккаунта, у меня появляется сообщение об ошибке
SMTPRecipientsRefused at /contact/
{'info@mysite.net': (550, b'relay not permitted: you must be authenticated to send messages')}
smtp сервер и почтовый аккаунт находятся на хосте alwasdata.net, но я тестировал с учетной записью outloock, это одно и то же, всегда одна и та же ошибка. похоже, это происходит из-за строки в методе контакта:
message,
'info@mysite.net',
['info@othersite.net'],
fail_silently=False,
в settings.py у меня есть такой конфиг
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = "info@mysite.net"
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
EMAIL_HOST = 'smtp-blablabla.net'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
в файле views.py
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
subject = "Message d'un visiteur sur votre site"
body = {
'Nom': form.cleaned_data['first_name'],
'Tel': form.cleaned_data['tel'],
'Email': form.cleaned_data['email'],
'Message':form.cleaned_data['message'],
}
message = "\n".join(body.values())
try:
send_mail(
subject,
message,
'info@mysite.net',
['info@othersite.net'],
fail_silently=False,
)
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('/')
form = ContactForm()
return render(request,'pages/email_form.html',{'form':form})
the forms.py
from django import forms
class ContactForm(forms.Form):
first_name = forms.CharField(max_length=100, required=True)
tel = forms.CharField(max_length=15, required=True)
email = forms.EmailField(required=False)
message = forms.CharField(widget=forms.Textarea, required=True)
Я изменил несколько параметров:
Я разместил все адреса электронной почты на серверах, где размещен мой сайт,
try:
send_mail(
subject,
message,
'info@mysite.net',
['info@mysite.net'],
fail_silently=False,
)
и на своем хосте я изменил параметры почтового сервера так, чтобы он перенаправлял на адрес электронной почты, на который я нацелился. Теперь это работает