使用Gmail API发送邮件时设置发件人的名字和姓氏

10
如何通过Gmail API发送邮件时设置发件人姓名和姓氏?
我使用了这段代码:https://github.com/chris-brown-nz/python-gmail-api
这段代码非常好用,我成功地发送了邮件。但是,发件人的名字只是在 @ 符号左边的文本。例如:如果 John Travisjohnhomeboy@gmail.com 发送电子邮件,则在接收端显示的名称将是 johnhomeboy,而不是 John Travis。我需要设置哪个属性才能发送带有我的名字和姓氏的电子邮件?

7
假设 Gmail API 接受标准的 RFC822 格式,那么你可以将 to_address 设为 'John Travis <johnhomeboy@gmail.com>' - AChampion
这是答案。谢谢! - sanjihan
对我来说,邮件选项的关键是“from”,而不是“to_address”。除此之外,在 Ruby 中它可以正常工作,并且在电子邮件地址前面显示所需的显示名称。 - Ekkstein
1个回答

4
正如AChampion在评论中提到的那样,gmail API接受标准的RFC822格式。因此,使用Gmail Python APIs发送邮件时,需要使用邮箱地址user@example.com
create_message('user@example.com', 'DESTINATION_EMAIL', 'TITLE', 'BODY')

发送者名称可以使用以下方式进行自定义


create_message("CUSTOMTISED_FROM_TITLE '<user@example.com>'", 'DESTINATION_EMAIL', 'TITLE', 'BODY')

其中create_message的定义如下:

def create_message(sender, to, subject, message_text):
  """Create a message for an email.

  Args:
    sender: Email address of the sender.
    to: Email address of the receiver.
    subject: The subject of the email message.
    message_text: The text of the email message.

  Returns:
    An object containing a base64url encoded email object.
  """
  message = MIMEText(message_text)
  message['to'] = to
  message['from'] = sender
  message['subject'] = subject
  return {'raw': base64.urlsafe_b64encode(message.as_string())}

请参考https://developers.google.com/gmail/api/guides/sending?authuser=2的示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接