客户端库提供了在Gmail.Users.Messages.Send
:
protected Gmail.Users.Messages.Send(java.lang.String userId, Message content)
protected Gmail.Users.Messages.Send(java.lang.String userId,
Message content, com.google.api.client.http.AbstractInputStreamContent mediaContent)
当我使用第一个时,我使用以下代码将MimeMessage
翻译为gmail.model.Message
类型:
Message createMessage(MimeMessage mimeMessage) throws MessagingException, IOException {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
mimeMessage.writeTo(bytes);
String encodedEmail = Base64.encodeBase64URLSafeString(bytes.toByteArray());
Message message = new Message();
message.setRaw(encodedEmail);
return message;
}
并成功发送电子邮件。
另一方面,当我有一个大附件时,我使用第二个(可恢复上传)构造函数并将MimeMessage
转换为InputStreamContent
并使用null
作为第二个参数但是消息反弹并显示错误:
An error occured. Your message was not sent.
------=_Part_0_987504577.1456605774444
Content-Type: text/html; charset="UTF-8"
Content-
(当我使用没有附件的第二个构造函数时,结果是相同的)
以下是MimeMessage
(没有附件以简化):
From: mail@mail.com
Reply-To: mail@mail.com
To: mail@mail.com
Message-ID: <235235322.1.1456605773066@localhost>
Subject: subject
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_0_987504577.1456605774444"
------=_Part_0_987504577.1456605774444
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 7bit
body
------=_Part_0_987504577.1456605774444--
由于在使用第一个构造函数时它已成功发送,我假设以下之一: