Кирилиця в імені відправника: правильний From у Python
У заголовку From потрібно відокремлювати відображуване ім’я від адреси скриньки. Кирилицю в імені має кодувати бібліотека email, а не ручна заміна рядка після серіалізації.
Сформуйте лист штатною бібліотекою
Приклад для Python 3 використовує EmailMessage та Address. Адреси й SMTP-сервер демонстраційні: замініть їх своїми. Облікові дані беруться зі змінних середовища, а не з відкритого файла сайту.
import os
import ssl
import smtplib
from email.message import EmailMessage
from email.headerregistry import Address
msg = EmailMessage()
msg['Subject'] = 'Test message'
msg['From'] = Address(display_name='Команда сайту', username='support', domain='example.com')
msg['To'] = 'recipient@example.net'
msg.set_content('Тестове повідомлення', charset='utf-8')
with smtplib.SMTP_SSL('smtp.example.com', 465, context=ssl.create_default_context()) as smtp:
smtp.login(os.environ['SMTP_USER'], os.environ['SMTP_PASSWORD'])
smtp.send_message(msg)
Перевірте адресу й сервер
Власне ім’я скриньки та домен у прикладі ASCII; для міжнародних адрес можуть знадобитися окремі можливості SMTPUTF8 сервера. From має відповідати дозволеному відправнику вашого SMTP-сервісу. Не надсилайте від імені домену, яким не керуєте.
Якщо сервер повертає 550
Збережіть точний текст помилки й перевірте, чи є коректна адреса всередині From, чи дозволений відправник і чи проходить автентифікація домену. Не змінюйте вже сформований MIME-лист регулярним виразом: можна зламати перенесення заголовків і кодування.
Документація
Від інструкції — до налаштування
Умови та можливості відповідної послуги — на основному сайті UAhosting.
Переглянути послугу