これに似たメールを解析したい
Random Info: ........
From: email@domain.com
Other Info: .......
Subject: ima subject
Some More Info: .....
This is a message.
しかし、この電子メールのすべての情報は必要ありません。「差出人」、「件名」、およびメッセージ自体のみ。このようなメッセージを解析するにはどうすればよいですか? より具体的には、不要なデータをスキップするにはどうすればよいですか?
ここに私がこれまでに持っているコードがあります
{-# LANGUAGE OverloadedStrings #-}
module MailParser where
import qualified Data.Text as T
import Data.Attoparsec.Text
type From = Address
type Message = T.Text
type Subject = T.Text
type Local = T.Text
type Domain = T.Text
data Address = Address Local Domain
data Mail = Mail From Subject Message
addressParser :: Parser Address
addressParser = do
_ <- string "From: "
local <- takeWhile1 (/= '@')
_ <- char '@'
domain <- takeWhile1 (/= '\n')
return $ Address local domain
subjectParser :: Parser T.Text
subjectParser = do
_ <- string "Subject: "
takeWhile1 (/= '\n')
messageParser :: Parser Message
messageParser = do
_ <- char '\n'
takeText
mailParser :: Parser Mail
mailParser = do
-- skip unwanted info
from <- addressParser
-- skip unwanted info
subject <- subjectParser
-- skip unwanted info
message <- messageParser
return $ Mail from subject message