Я пытаюсь отправить успешные письма с python, используя smtp google и smtplib. Письмо отправляется правильно, но получатель получает письмо как спам.
Есть что-то в заголовках или как я могу избежать признания спама?
from flask import render_template, current_app
from flask_babel import _
import smtplib
from email.message import EmailMessage
from email.headerregistry import Address
from email.utils import make_msgid
def send_email(subject, receiver, plain_text, html_text):
msg = EmailMessage()
msg['Message-ID'] = make_msgid()
msg['Subject'] = subject
msg['From'] = Address(name, username, 'gmail.com')
msg['To'] = Address(receiver.fullname(), receiver.email.split('@')[0], receiver.email.split('@')[1])
msg.set_content(plain_text)
msg.add_alternative(html_text, subtype='html')
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(email, password)
server.send_message(msg)
server.quit()
Я бы предложил вам настроить как SPF, так и DKIM в вашем домене, чтобы добавить вес к исходящим письмам. Подробнее о настройке SPF и DKIM читайте здесь. Это потребует некоторых изменений DNS, которые достаточно легки.
Кроме того, небольшое сообщение в немного HTML может быть расценено как спам для многих спам-фильтров. Подумайте о том, чтобы отправить текстовое электронное письмо или электронную почту HTML с помощью простого текстового варианта.
msg['PinkySwearImNotSpam'] = True
тогда каждый спамер установил бы это, и это все равно было бы проигнорировано.