开发者

erlang mime get To field

开发者 https://www.devze.com 2023-02-16 10:20 出处:网络
I try to get TO: user@mail.com field from mime mail message. I have code: parse_to(Data) -> List = string:tokens(Data, \":\"),

I try to get TO: user@mail.com field from mime mail message.

I have code:

parse_to(Data) ->
    List = string:tokens(Data, ":"),
    Sep1 = lists:map(fun(H) ->string:tokens(H, ":") end, List),
    io:format(Sep1),
    Sep2 = lists:filter(fun ([K | _]) -> K == "To" end, Sep1),
    ListAddress = lists:append(Sep2),
    [_ | Tail] = ListAddress,
    lists:map(fun(Address) -> string:tokens(Address, ",") end, Tail).

If i have short message for example: https://gist.github.com/865910 I got in io:format(Sep1) https://gist.github.com/865905, it's ok all without :

But if i have long message with attachment: - https://gist.github.com/865914 I got in io:format(Sep1) - https://gist.github.com/865906 everything remains the same as it was with :

What's wrong? Why shot message normal开发者_JAVA百科 parse and big message not parsed?

When i try use regexp:

List = binary_to_list(Binary),
re:run(List, "^To: (.)*$", [multiline, {capture, all_but_first, list}]).

I get only {match, ["m"]}

Why?

Thank you.


Try a regular expression:

1> Data = <<"...">> % Your long message
<<"...">>
2> re:run(Data, <<"^To: (.*)$">>, [multiline, {capture, all_but_first, binary}]).
{match,[<<"shk@shk.dyndns-mail.com">>]}
0

精彩评论

暂无评论...
验证码 换一张
取 消