Как получить доступ к телу сообщения из конечной точки электронной почты Kynetx?

Я хочу извлечь URL из входящего сообщения электронной почты, а затем http:get() URL. Как я могу получить доступ к телу сообщения?

select when mail received from "(.*)@example.com" setting user
pre { /* extract first URL from message */ }
http:get(URL);

Итак, что идет в блоке PRE, выдается следующее сообщение электронной почты:

From: Example User <user@example.com>
To: x202 Endpoint <a101x202@kynetxapps.net>
Subject: An interesting URL

http://www.example.net

1 ответ

Решение

Вы используете email:parts() метод для извлечения части письма. В составном электронном письме вы будете иметь как текстовые / HTML, так и текстовые / простые части.

Чтобы получить доступ к электронной почте, сначала извлеките электронную почту (в форме RFC822) из msg Параметр события, вот так:

envelope = event:param("msg");

Затем вы можете использовать метод частей для извлечения части. Этот пример кода извлекает текстовую часть электронного письма:

textportion = email:parts(envelope,"text/plain").pick("$..text/plain");

призвание email:parts(envelope) без прохождения фильтра mime вернет структуру со всеми частями письма.

Как только у вас есть тело, вы можете использовать textportion.extract(re//) извлечь информацию из тела письма.

Другие вопросы по тегам