anchor.diff:  %    "'()+_,-./=?"
       .
   
  +%% Double dots at the start of a line, conform to Section 4.5.2 of RFC 2821
  +double_dot([$.|T]) ->
  +    double_dot(T, [$., $.]);
  +double_dot(L) ->
  +    double_dot(L, []).
  +
  +    double_dot([], Acc) ->
  +        lists:reverse(Acc);
  +    double_dot([13, 10, $. | T], Acc) ->
  +        double_dot(T, [$., $., 10, 13|Acc]);
  +    double_dot([H|T], Acc) ->
  +        double_dot(T, [H|Acc]).
  +
  +
   join([H1, H2| T], S) when is_list(H1), is_list(H2), is_list(S) ->
       H1 ++ S ++ join([H2| T], S);
   %join([C1, C2 | Chars], S) when is_integer(C1), is_integer(C2), is_list(S) ->
  
positive.code: encode_part(#mime_part{data=Data} = P, Boundary) ->
      "--" ++ Boundary ++ "\r\n" ++
      encode_headers(part_headers(P)) ++ "\r\n\r\n" ++
      z_convert:to_list(Data) ++ "\r\n".
  
  part_headers(#mime_part{type=undefined, encoding={Enc, MimeType, Charset},
                          name=undefined}) ->
  
negative.code: 
  -export([test_msg/0,
           send_test/4,
           test/0,
           double_dot/1
  ]).
  
  %%====================================================================
  