Я настраиваю форму электронной почты на моей django - python веб-странице. Я видел это классное видео , в котором подробно объясняется, как настроить django и как включить gmail в качестве сервера smtp.
Форма имеет три поля: Полное имя; Адрес электронной почты; и Message.
Все отлично работает, но SMTP Gmail говорит, что я (EMAIL_HOST_USER) являюсь отправителем сообщения, а не человеком, который заполнил форму, т.е. я пропускаю заполненный адрес электронной почты с по умолчанию реализация видео на YouTube .
Этот поток и этот поток говорят, что мы не можем изменить адрес отправителя. Я добавил адрес электронной почты человека, спрашивающего через форму (то есть переменная message_email) в получателей. Этот asegurar, вы не потеряете адрес электронной почты, и запрашивающий человек получит отзыв о том, что вы обрабатываете его / ее вопрос.
Есть две другие динамические c переменные, которые нам нужно получить. 1.) message_name (полное имя запрашивающего лица) 2.) сообщение (т.е. простой текст из формы с пометками \ r \ n в конце каждого абзаца с неплохим выводом python print ()). См .:
message = 'Dear website developers,\r\nI would like to ask when the website will be online available.\r\nKind regards,\r\nJohn Doe'
print(message)
Dear website developers,
I would like to ask when the website will be online available.
Kind regards,
John Doe
@ Майна Камау предложила получить динамический c концентрат в сообщение электронной почты с разборчивым содержимым через форматирование hmtl, как описано здесь . Здесь - полезная ветка, описывающая, как подставлять части текста в python. Измененный рабочий код теперь выглядит следующим образом:
from django.core.mail import send_mail
from django.template.loader import render_to_string
from django.utils.html import strip_tags
html_message = render_to_string(
'email.html',
{'name': message_name,'email': message_email, 'message': message}
)
plain_message = strip_tags(html_message)
html_message = html_message.replace("\r\n", "<br>")
send_mail(
'message from ' + message_name, # email_subject
plain_message, # message
message_email, # from email
['recepient1@example.com', message_email], # To Email
html_message=html_message, # html formated message
)
Электронное письмо. html (из команды render_to_string), включающее динамическое содержимое c в сообщение электронной почты, может выглядеть, например, следующим образом:
<p style="text-align: justify">Dear {{ name }},
<br>We have recieved your message and will respond as soon as possible.
<br>This is an automatically generated message.
<br>If you want to provide some additional information to us you can easily respond at this email.
<br>Yours sincerely,
<br>Helpdesk
</p>
<p style="text-align: justify"><br></p>
<p style="text-align: justify"><i>Your initial message details are as follows:</i>
<br><b>Full Name:</b> {{ name }}
<br><b>Email Address:</b> {{ email }}
<br><b>Message:</b>
<br>{{ message }}
</p>
Большое спасибо @Maina Kamau за комментарии, я бы не стал работать без них !!!
Best, Rene