Я хотел бы уточнить, что у получателя формы (contact@shantiyoga.ca) нет возможности получить контактную форму из значения поля электронной почты (введено пользователем).Оно всегда будет отправлено по электронной почте с проверкой подлинности в мой файл settings.py, который на данный момент является моим личным адресом электронной почты?
Вы устанавливаете отправителя письма на sender
, но используете EMAIL_HOST,правильный?В этом случае будьте осторожны, чтобы ваша учетная запись SMTP позволяла отправлять электронную почту от пользователей, не являющихся вашим доменом.Обычно, если у вас есть аутентифицированная учетная запись на этом сервере, вы можете установить в поле From:
все, что захотите.
Короче говоря, это письмо попадет в ваш почтовый ящик, который выглядит какsender
переменная.Поэтому, когда вы нажмете кнопку «Ответить», вы сможете отправить их обратно по электронной почте, и я думаю, что вы хотите.Однако оно будет отправлено с использованием SMTP-сервера, данные аутентификации которого вы предоставляете.Существует разрыв между возможностью отправки электронной почты (SMTP) и возможностью ее получения, что, по-моему, привело вас в замешательство.
Я никогда не пробовал этого, но для добавления дополнительных заголовков я считаю, что вам нужноиспользовать объект EmailMessage .Согласно документам, вы бы:
e = EmailMessage(headers={'Reply-To':...
e.send()
Будьте осторожны при этом;в частности, будьте осторожны, чтобы исключить новые строки в ответе на поле .Я не знаю, будут ли это делать методы по умолчанию clean
.
Наконец, в вашем django / python нет ничего плохого.Единственное, что я хотел бы сказать для осознания, это не использовать это:
return redirect('/thanks/')
, а вместо этого:
return HttpResponseRedirect(reverse('myapp.views.method',args=tuple,kwargs=dict))
Это дает вам возможность не жестко кодировать URL-адреса вваше приложение.Метод reverse
будет искать их по сравнению с urls.py
для вас, так что вы можете перемещать приложение / менять URL-адреса, и оно все равно будет работать.