2010-12-17 15 views
4

受信電子メールメッセージからURLを抽出し、そのURLをhttp:get()したいとします。メッセージ本文にはどのようにアクセスできますか?Kynetx電子メールエンドポイントからメッセージ本文にアクセスするにはどうすればよいですか?

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

それでは、次の電子メールメッセージを与えられた、PREブロックに行く:あなたは、電子メールの一部を抽出するemail:parts()メソッドを使用し

From: Example User <[email protected]> 
To: x202 Endpoint <[email protected]> 
Subject: An interesting URL 

http://www.example.net 
+0

+1大きな質問です。 – Alex

答えて

3

を。マルチパートメールでは、text/htmlとtext/plainの両方の部分があります。電子メールにアクセスするには

、あなたが最初にそうように、msgイベントのparamから(RFC822形式)の電子メールを抽出します。

envelope = event:param("msg"); 

その後、あなたは部分を抽出するために、部品のメソッドを使用することができます。電子メールのすべての部分を持つ構造体を返しますMIMEフィルタを通過することなく

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

email:parts(envelope)を呼び出す:このコード例では、電子メールのプレーンテキスト部分を抽出します。

身体を取得したら、textportion.extract(re//)を使用してメール本文から情報を抽出できます。

+0

+1は素晴らしい答えです。 – Alex

+0

ありがとう、これは素晴らしいです! –

関連する問題