2014-03-28 9 views
0

Приняты электронные письма, которые отправляются автоматически с использованием smtplib через gmail. Получатели видят, что отправителем письма является мой адрес электронной почты. Есть ли способ показать отправителя как имя, которое я могу настроить?Python: как изменить имя отправителя электронной почты?

ответ

1

Я хотел бы сделать это с помощью yagmail (его точку, чтобы сделать отправку сообщений электронной почты очень простой):

from yagmail import Connect 
yag = Connect({'[email protected]' : 'SecretAliasName'}, 'pass') 
yag.send('[email protected]', 'MySubject', 'You will never guess..') 

Обратите внимание, что так же, вы можете псевдоним цели, а также:

yag.send({'[email protected]' : 'Mom'}) 

Вы Пожалуй, сначала придется pip install yagmail.

+0

На момент написания этого комментария, новая версия yagmail является 0.9.179, и это, кажется, он не имеет 'метод Connect' больше, так как она заменяется SMTP. Однако, используя тот же подход, отправка почты бесшумно выходит из строя ... У вас есть идея, как сделать то же самое с yagmail сейчас? –

1

Большинство примеров и руководств в Интернете могут быть немного запутанными, поскольку они используют имя пользователя для SMTP в качестве имени отправителя. Ниже приведен мой простой скрипт SMTP Python/Gmail. Там вы увидите, что после заголовка «From» моего сообщения я могу вставить любую строку, которую я хочу, которая появится в строке отправителя полученного письма.

def send_email(sendName, user, pwd, recpient, subject, body): 
    import smtplib 
    reciever = recpient if type(recpient) is list else [recpient] 
    message = "From: " + sendName + "\nTo: " + (", ".join(reciever)) + "\nSubject: " + subject + "\n\n" + body + "\n" 
    try: 
     server = smtplib.SMTP("smtp.gmail.com", 587) 
     server.ehlo() 
     server.starttls() 
     server.login(user, pwd) 
     server.sendmail(user, reciever, message) 
     server.close() 
     print("Message Send: Success.") 
    except Exception as e: 
     print("Message Send: Failure.") 
     print(e) 

send_email(input("Sender Name: "), input("Gmail: "), input("Password: "), input("Recipient: "), input("Subject: "), input("Body: ")) 
Смежные вопросы