LINUX.ORG.RU
ФорумAdmin

smtplib не отпраляет письмо от *@mail.ru

 , ,


0

1

Я пытаюсь использовать smtplib для отправки сообщений при помощи вот этого кода:

file = "path_to_a_file"
part = MIMEBase('application', "octet-stream")
part.set_payload(open(file, "rb").read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file_book))
msg = MIMEMultipart()
msg['From'] = from_email@example.com
msg['To'] = to_email@example.com
msg.attach(part)
smtp = SMTP_SSL()
smtp.connect('smtp.yandex.ru')
smtp.ehlo()
smtp.login('my_email@yandex.ru', 'pass')
try:
    smtp.sendmail('my_email@yandex.ru', 'to_email@example.com', msg.as_string())
except SMTPException as e:
    print("Error: unable to send email: "+str(e))
smtp.quit()

Если в поле в msg['From'] указывать *@yandex.ru или *@gmail.com или *@my_domain.info всё раотает прекрасно. Не меняя ничего больше, просто в теле письма меняю адрес From. Но при попытке отправить с *@mail.ru я получаю вот эту ошибку:

(554, b'5.7.0 Failed to authorize the sender 1505621397-z6HZZunef2-9ulCCxTQ 1505621397-ZhCGNIKkSZ-9uPOg8fd')

Изначально хотел спросить почему smtplib ведёт себя по-иному, если авторизационные данные не меняются, но потом в обсуждениях здесь натолкнулся, что это же ответ сервера, значит smtplib тут уже не причём, а я неправильно составляю запрос? Как же быть тогда, чтобы отправлять письмо указывая в теле From: something@mail.ru?

Не меняя ничего больше, просто в теле письма меняю адрес From

WAT? Логин должен соответствовать полю From. Иначе ты грязный спамер, о чём сервер и сообщает

router ★★★★★
()

msg['From'] = from_email@example.com
smtp.login('my_email@yandex.ru', 'pass')
smtp.sendmail('my_email@yandex.ru', 'to_email@example.com', msg.as_string())

Все три должны совпадать

router ★★★★★
()
Ответ на: комментарий от router

Иначе ты грязный спамер

Это первая мысль, которая должна приходить в голову на основе информации из ОП. Видимо, ТС хочет пакостить, но о SPF/DKIM ещё не в курсе.

r3lgar ★★★★★
()

Довольно странно, что он у тебя вообще на SMTP яндекса принимает gmail. Или эта черепашка врёт.

WereFox ★☆
()
Ответ на: комментарий от router

Ну а толку-то? Знание ему никак не поможет спамить с публичных почтовых серверов, а свой поднять и настроить знаний вряд ли хватит, да и дорого это для одного мамкиного какира.

r3lgar ★★★★★
()
Ответ на: комментарий от router

Но сервер не сообщает об этом, если это не @mail.ru, вот в чём вопрос.

Чтобы не слыть грязным спамером: это нужно, чтобы отправлять книжки на Kindle с адреса, не сконфигурированного в учётке Amazon как «trusted». Если адрес ~= *@mail.ru- всё работает.

Pupizoid
() автор топика
Ответ на: комментарий от Pupizoid

Но сервер не сообщает об этом, если это не @mail.ru, вот в чём вопрос.

Ленивые, нехорошие люди

router ★★★★★
()
Ответ на: комментарий от WereFox

Так, на smtp то я логинюсь яндексовской почтой, gmail только в «From» указывается. Я думал это просто текстовое тело сообщения, до которого серверу должно быть всё равно.

Это всё для телеграм бота @kindler_bot

Pupizoid
() автор топика
Ответ на: комментарий от Pupizoid

Но сервер не сообщает об этом, если это не @mail.ru, вот в чём вопрос.

Ну,значит админам яндекса было лень нормально настроить свой почтовый сервер и за это их надо бить по рукам тем самым сервером.

WereFox ★☆
()
Ответ на: комментарий от Pupizoid

Я думал это просто текстовое тело сообщения, до которого серверу должно быть всё равно

Ага, просто это тот адрес, который видит получатель и на который будут жаловаться при спаме. А потом за такие дела айпишники в RBL улетают. И вообще у нормальных почтовых систем давно стоят DMARC записи и при приёме такой писульки её сразу выпилит спам-фильтр.

WereFox ★☆
()
Последнее исправление: WereFox (всего исправлений: 1)
Ответ на: комментарий от WereFox

А если никто не будет жаловаться о спаме (у меня нет возможности спамить из бота- получатели ограничены доменом @kindle.com), то теоретически можно попасть под санкции?

Кстати, smtp.gmail.com вообще не смотрит в Header, судя по всему. А вот smtp.mail.ru, в отличии от smtp.yandex.ru отвечает более внятно- мол не совпадает Header и отправитель.

Pupizoid
() автор топика
Ответ на: комментарий от gag

Вместо From или в дополнение к From: <адрес на другом домене>?

Pupizoid
() автор топика
Ответ на: комментарий от Pupizoid

С честным From письма у всех отправляются, ведь. А тот левый домен по собственному желанию можно указывать только в специальных дополнительных полях, как Reply-To. Почтовые клиенты это уважают: они показывают, что письмо на самом деле послано от From (что соответствует действительности), но когда хочешь ответить, подставляют адрес из Reply-To.

gag ★★★★★
()
Ответ на: комментарий от gag

Я понял, спасибо! Но, к сожалению, Amazon, видимо смотрит на From, так что мои письма с правильным From, но левым Reply-To не обрабатываются.

Pupizoid
() автор топика
Ответ на: комментарий от Pupizoid

А если никто не будет жаловаться о спаме

Тогда при некоторой критической массе таких писем бан будет (если политика администратора сервера это предполагает) только на стороне получателя. Впрочем, этого будет достаточно, чтобы тебе уже на твоём сервисе прописали живительный забан, когда начнут разбираться, какая %@#& это сделала, если это приведёт к проблемам у достаточно большого числа пользователей. Так что если ты не ссаный спамер - то и не веди себя как спамер.

WereFox ★☆
()
Последнее исправление: WereFox (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.