Как получить доступ к телу сообщения из конечной точки электронной почты 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//)
извлечь информацию из тела письма.