如何在Gmail API中发送带有指定发件人姓名(发件人)的电子邮件? (走)

时间:2016-03-06 14:35:31

标签: gmail-api

我写信息如下所示发送,但是当收件人收到MyName时,它不会显示MyName。

message := []byte("From: MyName <xxx@xyz.com>\r\n" +
        "To:yyy@xyz.com\r\n" +
        "Subject: Please confirm your email address.\r\n")

1 个答案:

答案 0 :(得分:0)

@Clerk这是一个相关的SO问题,可以帮助您格式化sender email

以下是文档中的示例代码:

/**
* Create a MimeMessage using the parameters provided.
*
* @param to Email address of the receiver.
* @param from Email address of the sender, the mailbox account.
* @param subject Subject of the email.
* @param bodyText Body text of the email.
* @return MimeMessage to be used to send email.
* @throws MessagingException
*/
 public static MimeMessage createEmail(String to, String from, String subject,
String bodyText) throws MessagingException {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
MimeMessage email = new MimeMessage(session);
InternetAddress tAddress = new InternetAddress(to);
InternetAddress fAddress = new InternetAddress(from);
email.setFrom(new InternetAddress(from));
email.addRecipient(javax.mail.Message.RecipientType.TO,
new InternetAddress(to));
email.setSubject(subject);
email.setText(bodyText);
return email;
 }

下一步是对MimeMessage进行编码,实例化一个Message对象,并将base64url编码的消息字符串设置为原始值

/**
* Create a Message from an email
*
* @param email Email to be set to raw of message
* @return Message containing base64url encoded email.
* @throws IOException
* @throws MessagingException
*/
 public static Message createMessageWithEmail(MimeMessage email)
 throws MessagingException, IOException {
 ByteArrayOutputStream bytes = new ByteArrayOutputStream();
 email.writeTo(bytes);
 String encodedEmail = Base64.encodeBase64URLSafeString(bytes.toByteArray());
 Message message = new Message();
 message.setRaw(encodedEmail);
 return message;
}