我想使用Ballerina Gmail软件包读取电子邮件的内容。是否有任何内置机制可以仅读取电子邮件的实际正文内容,但不包括发件人的签名。
答案 0 :(得分:0)
是的。您可以使用连接器的 readMessage 功能,我相信您已经开始使用它。从Gmail API成功读取邮件后,它将返回邮件类型对象。响应中的消息类型具有 plainTextBodyPart , htmlBodyPart , inlineImgParts 数组和 msgAttachments 数组。请参阅Gmail连接器的API文档[1]。
plainTextBodyPart 是 MessageBodyPart 类型,它是电子邮件正文中的MIME消息部分,其内容类型为 text / plain 。
htmlBodyPart 是 MessageBodyPart 类型,它是电子邮件正文中的MIME消息部分,其内容类型为 text / html 。
inlineImgParts 是 MessageBodyPart 类型的数组,它是MIME邮件部分的数组,其中包含电子邮件的嵌入式图像,其内容类型为 image /任何。
msgAttachments 是 MessageBodyPart 类型的数组,它是包含电子邮件附件的邮件的MIME邮件部分的数组。
因此,如果您只想读取电子邮件的实际正文内容(不包括电子邮件标题),则可以通过上述 MessageBodyPart 类型直接访问它。
如果您的电子邮件具有HTML邮件正文,则可以按以下方式访问HTML邮件正文。
var response = gmailEP->readMessage(userId, messageId);
match response {
gmail:Message m => {
gmail:MessageBodyPart htmlMsgBody = m.htmlBodyPart;
string htmlBody = htmlMsgBody.body;
io:println(htmlBody);
// Your html message body will be a base64 encoded string.
// You may need to decode it using an inbuild Ballerina library, for your use.
}
gmail:GmailError e => io:println(e);
}
请注意,通常,您的Gmail邮箱中的邮件将同时包含HTML和文本邮件正文,除非将其发送给您或由您创建为文本/纯文本(通过以纯文本模式编写)。因此,当您阅读此类邮件时,它将同时包含plainTextBodyPart和htmlBodyPart。 plainTextBodyPart的主体将只有文本主体而没有HTML标记,而htmlBodyPart的主体将具有消息的整个HTML内容。
您可以通过以原始模式查看电子邮件来验证这一点。 (登录并转到Gmail邮箱的用户界面,然后单击要阅读的邮件右上角的:(更多)按钮,然后单击显示原始邮件 >。您可以将整个邮件作为MIME邮件查看,包括所有标头和MIME邮件部分。
此外,您还可以使用 inlineImgParts 和 msgAttachments 获得电子邮件的任何附件和内嵌图像。
让我知道您是否还有其他顾虑。