Как отправить электронную почту программно и скрыть адрес отправителя? - PullRequest
0 голосов
/ 12 февраля 2019

Я хотел бы отправлять почтовые уведомления своим клиентам через python.Проблема в том, что учетная запись отправителя должна быть скрыта.Просто чтобы прояснить - это не для фишинга или рассылки спама, а только для личного использования!

Я использовал smtplib и настроил новую учетную запись noreply в gmail, но даже при предоставлении псевдонима для сообщения, «mail»from: 'header содержит мою фактическую почту.

import smtplib
from email.mime.text import MIMEText
from email.utils import *

email_sender = 'noreply%%@gmail.com'
email_receiver = 'example%%%@gmail.com'

subject = 'Python!'

msg = MIMEText('This is the body of the message.')
msg['To'] = formataddr(('Recipient', 'example%%%@gmail.com'))
msg['From'] = formataddr(('Author', 'author@example.com'))
msg['Subject'] = 'Simple test message'

connection = smtplib.SMTP('smtp.gmail.com', 587)
connection.starttls()
connection.login(email_sender, 'password')
connection.sendmail(msg['From'], email_receiver, msg.as_string())
connection.quit()

Я получаю почту в свой почтовый ящик, как и ожидалось, но при нажатии «подробнее» появляется оригинальный адрес отправителя.

1 Ответ

0 голосов
/ 12 февраля 2019

Первый аргумент sendmail является отправителем конверта, и должен быть только адресом электронной почты, а не форматированным адресом;поэтому, передавая msg['From'], это вдвойне неправильно (один, потому что вы не хотите его показывать; и два, потому что вы передаете весь заголовок From: с отображаемым именем и всеми).

...