Я пытаюсь отправить электронное письмо нашему администратору, когда новые данные отправляются на наш сайт от пользователей.Мы используем Django для бэкэнда и Vue для внешнего интерфейса, хотя это, вероятно, не имеет значения.Вот код:
@receiver(post_save)
def send_update(sender, created, **kwargs):
if created:
data=kwargs['instance']
try:
if data.admin_approved == False:
print("point 1 reached")
name = data.submitted_by_name
body = data.body
content_type = str(sender).split(".")[2][:-2]
print("point 2 reached")
link = "https://link_to_website.com" + content_type.lower()
subject = "New " + content_type + " submitted"
print("point 3 reached")
from_email = "NoReply@web_site.com"
to_email = "my_email@address.com"
print("pre-html point reached")
html_message = get_template('./email/template.html')
text_message = get_template('./email/textplate.txt')
data = {
'user_name': name,
'submission': data.body,
'type': content_type,
'link': link,
'body': body
}
content_text = text_message.render(data)
content_html = html_message.render(data)
print("ready to send email!")
msg = EmailMultiAlternatives(subject, content_text, from_email, [to_email])
msg.attach_alternative(content_html, "text/html")
msg.send()
except:
print("Data was not submitted by an non-admin user.")
Включена попытка / исключение, чтобы данные, которые отправляются непосредственно через страницу администрирования django, не вызывали функцию электронной почты.
функция работает до тех пор, пока«точка pre-html достигнута», я предполагаю, что проблема где-то в msg и msg.send (), но я не получаю никаких функций ошибок.
Спасибо за помощь!