如何在芭蕾舞女演员中仅获取电子邮件的实际正文内容

时间:2018-07-05 19:06:06

标签: ballerina

我想使用Ballerina Gmail软件包读取电子邮件的内容。是否有任何内置机制可以仅读取电子邮件的实际正文内容,但不包括发件人的签名。

1 个答案:

答案 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 获得电子邮件的任何附件和内嵌图像。

让我知道您是否还有其他顾虑。

[1] https://central.ballerina.io/wso2/gmail#Message