encoding with 'idna' codec failed (UnicodeError: label empty or too long) Django send_mail

Рейтинг: 0Ответов: 0Опубликовано: 23.03.2023

При отправке сообщения на почту через функцию 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, но это не сработало, отображалась та же ошибка

Ответы

Ответов пока нет.