Как получить только фактическое содержание сообщения электронной почты в балерине - PullRequest
0 голосов
/ 05 июля 2018

Я хочу прочитать содержимое письма с помощью пакета Ballerina Gmail. Есть ли встроенный механизм для чтения только фактического содержимого письма, за исключением подписи отправителя.

1 Ответ

0 голосов
/ 07 июля 2018

Да. Вы можете использовать функцию readMessage разъема, которую, я полагаю, вы уже начали использовать. Возвращает объект типа сообщения при успешном чтении сообщения из Gmail API. Тип сообщения в ответе имеет plainTextBodyPart , htmlBodyPart , массив inlineImgParts и массив msgAttachments . Пожалуйста, обратитесь к документации API [1] Gmail Connector.

plainTextBodyPart - это тип MessageBodyPart , и это часть сообщения MIME вашего тела электронной почты, которая имеет тип содержимого text / plain .

htmlBodyPart является типом MessageBodyPart , и это часть сообщения MIME вашего тела электронной почты, которая имеет тип содержимого text / html .

inlineImgParts - это массив типов MessageBodyPart , а также массив частей сообщений MIME со встроенными изображениями вашей электронной почты, которые имеют тип содержимого image / any .

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

...