Python Ответить на сообщение электронной почты
У меня есть приложение Django, которое мы разработали для управления запросами и заявками на бронирование отелей. Мы получаем электронные письма непосредственно из нашего модала django-mailbox
. Теперь я столкнулся с проблемой: когда я получаю электронное письмо, я хочу ответить на него, чтобы, когда получатель откроет письмо, он мог увидеть ранее отправленное или полученное сообщение на той же странице, как в Gmail. Как это сделать
вот мой код:
def reply_inquiry_email_to_hotel(request, reservation_pk):
try:
reservation = Reservation.objects.get(pk=reservation_pk)
rooms = ReservationRoom.objects.filter(reservation=reservation)
hotel = reservation.hotel
email_server = CompanyEmailServer.objects.get(company=reservation.company)
# Set email settings
settings.EMAIL_HOST = email_server.email_server
settings.EMAIL_PORT = email_server.email_port
settings.EMAIL_HOST_USER = email_server.email_username
settings.EMAIL_HOST_PASSWORD = email_server.email_password
settings.EMAIL_USE_TLS = email_server.email_use_tls
settings.EMAIL_USE_SSL = email_server.email_use_ssl
settings.DEFAULT_FROM_EMAIL = "Reservations | " + reservation.company.name_en + " <" + email_server.email_username + ">"
subject = f'New Reservation Request No: {reservation.reservation_no} For {hotel.name_en} From {reservation.guest_name} On {reservation.request_date}'
html_message = render_to_string('email/message.html', {'reservation': reservation, 'message': request.POST['message']})
plain_message = strip_tags(html_message)
to_email = [hotel.email]
headers={
'In-Reply-To': request.POST['in_reply_to'],
'References': request.POST['in_reply_to']
}
email = EmailMultiAlternatives(subject, plain_message, settings.DEFAULT_FROM_EMAIL, to_email, headers=headers)
email.attach_alternative(html_message, "text/html")
email.send(fail_silently=False)
mailbox = Mailbox.objects.get(pk=email_server.mailbox.pk)
mailbox.record_outgoing_message(email.message())
messages.success(request, _('Email sent successfully'))
return redirect(reverse('hotel_reservation_mailbox', args=[reservation.pk,]))
except Exception as e:
print(('Failed to send email: ') + str(e))
return redirect(reverse('hotel_reservation_mailbox', args=[reservation.pk,]))
Отправить сообщение как ответ на исходное сообщение