encoding with 'idna' codec failed (UnicodeError: label empty or too long) Django send_mail
При отправке сообщения на почту через функцию send_mail появляется ошибка -
encoding with 'idna' codec failed (UnicodeError: label empty or too long)
В чем может быть проблема и как заставить кодировку работать правильно И что самое интересное, на другом компьютере все работает нормально и сообщения отправляются без проблем, так что ошибка явно не в settings.py
settings.py:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'my_mail@gmail.com'
EMAIL_HOST_PASSWORD = 'my_password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
views.py:
def post_share(request, slug):
post = get_object_or_404(Post, slug=slug, status='published')
sent = False
form = EmailPostForm(request.POST or None)
if request.method == "POST" and form.is_valid():
cd = form.cleaned_data
post_url = request.build_absolute_uri(post.get_absolute_url())
name_user = cd["email"].replace("@gmail.com", "")
subject = f'Пользователь ({name_user}) рекомендует к прочтению — {post.title}'
message = f'Прочитайте "{post.title}" по ссылке - {post_url}\n\nСообщение: {cd["comments"]}'
send_mail(subject, message, settings.EMAIL_HOST_USER, [cd['to']])
sent = True
return render(request, 'blog/post/share.html', {'post': post,
'form': form,
'sent': sent})
Я попытался использовать библиотеку idna
, но это не сработало, отображалась та же ошибка
Источник: Stack Overflow на русском