Python:如何更改电子邮件发件人的姓名?

时间:2014-03-28 20:30:22

标签: python smtp gmail

收到一次通过gmail自动使用smtplib发送的电子邮件。接收者看到电子邮件的发件人是我的电子邮件地址。有没有办法将发件人显示为我可以自定义的名称?

2 个答案:

答案 0 :(得分:1)

网上的大多数示例和教程都有点令人困惑,因为他们使用SMTP的用户名作为发件人的名字。下面是我简单的Python / Gmail SMTP脚本。在那里你会看到" 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: "))

答案 1 :(得分:0)

如果有人到处寻找更简单(如果可能不那么全面)的方法,那么我可以在yagmail v0.10.212上使用以下方法非常简单地做到这一点:

yagmail.SMTP({"user@gmail.com": "Alias"}, "pwd").send(mail, subject, body)

我将其设置为仅需要电子邮件地址的用户部分,但是在为别名添加字典时必须使用完整地址。

如果您使用的是.yagmail文件,则也不需要password参数,这可以提高安全性。或者把它放在钥匙圈上,这就是我要做的。

yagmail.SMTP({"user@gmail.com": "Alias"}).send(mail, subject, body)