【问题标题】:Python: how to change email sender's name?Python:如何更改电子邮件发件人的姓名?
【发布时间】:2014-03-28 20:30:22
【问题描述】:

使用 smtplib 通过 gmail 自动发送的电子邮件,一旦收到。收件人看到电子邮件的发件人是我的电子邮件地址。有什么方法可以将发件人显示为我可以自定义的名称?

【问题讨论】:

    标签: python smtp gmail


    【解决方案1】:

    如果有人来找一个更简单的,如果可能不是那么全面,我设法在 yagmail v0.10.212 上非常简单地做到这一点:

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

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

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

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

    【讨论】:

      【解决方案2】:

      我会使用yagmail 来完成此操作(其目的是让发送电子邮件变得非常简单):

      from yagmail import Connect
      yag = Connect({'myemail@gmail.com' : 'SecretAliasName'}, 'pass')
      yag.send('target@email.com', 'MySubject', 'You will never guess..')
      

      请注意,同样,您也可以为目标设置别名:

      yag.send({'target@email.com' : 'Mom'})
      

      你可能必须先pip install yagmail

      【讨论】:

      • 在撰写此评论时,yagmail 的最新版本是 0.9.179,它似乎不再有 Connect 方法,因为它已被 SMTP 取代。但是,通过使用相同的方法,静默发送邮件会失败......您现在知道如何使用 yagmail 做同样的事情吗?
      【解决方案3】:

      网络上的大多数示例和教程可能会有点混乱,因为它们使用 SMTP 的用户名作为发件人的名称。下面是我的简单 Python/Gmail SMTP 脚本。在那里你会看到,在我的邮件的“发件人”标题之后,我可以插入任何我想要的字符串,这将显示在收到的电子邮件的发件人行中。

      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: "))
      

      【讨论】:

        猜你喜欢
        • 2012-12-07
        • 2014-03-25
        • 2011-12-19
        • 1970-01-01
        • 2019-06-30
        • 2020-04-28
        • 2015-01-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多