4

我想从入站电子邮件中提取 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
4

1 回答 1

3

您使用该email:parts()方法提取电子邮件的各个部分。在多部分电子邮件中,您将同时拥有 text/html 和 text/plain 部分。

要访问电子邮件,首先从msg事件参数中提取电子邮件(以 RFC822 形式),如下所示:

envelope = event:param("msg");

然后,您可以使用parts 方法提取一部分。此代码示例提取电子邮件的纯文本部分:

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

email:parts(envelope)在不传递 mime 过滤器的情况下调用将返回包含电子邮件所有部分的结构。

获得正文后,您可以使用textportion.extract(re//)它从电子邮件正文中提取信息。

于 2010-12-17T07:01:17.657 回答