[erlang-questions] Odd behavior when sending emails via SMTP when messages are converted to/from binaries

Chris Hicks <>
Sun May 15 04:34:52 CEST 2011


I honestly don't know why I thought that there wasn't a list_to_binary function...I suppose thats what you get for programming late into the night. I believe it was on How I Met Your Mother that I heard the phrase "Nothing good ever happens after 2am." I should probably take that to heart when it comes to coding.

> Date: Sat, 14 May 2011 23:28:12 -0300
> Subject: Re: [erlang-questions] Odd behavior when sending emails via SMTP when messages are converted to/from binaries
> From: 
> To: 
> CC: 
> 
> Yes, the correct thing to do would be to use list_to_binary/1 and
> binary_to_list/1.
> 
> It might be possible to avoid the conversion altogether if you're
> writing the result of the conversion to a socket or a file. If so, you
> could just build an iolist and parse what you receive directly as a
> binary.
> 
> Juanjo
> 
> 
> On Sat, May 14, 2011 at 11:19 PM, Chris Hicks
> <> wrote:
> > With some additional testing finally figured it out. I'm not sure how I
> > missed it before, hard to keep track of all the tests you run after a while,
> > but using term_to_binary then binary_to_list ends up leaving 4 extra
> > elements in the list prior to the text which was first turned into a binary
> > in the first place.
> > Chris Hicks.
> >
> > ________________________________
> > From: 
> > To: 
> > Date: Sat, 14 May 2011 17:18:06 -0700
> > Subject: [erlang-questions] Odd behavior when sending emails via SMTP when
> > messages are converted to/from binaries
> >
> > In the system I'm building I am working with all my strings as binaries. I'm
> > doing this because I'll be deploying on a 64 bit platform and don't need all
> > the text I'm working with blowing up in size when there isn't any need for
> > it. However I'm noticing an odd behavior when constructing emails to send
> > over SMTP.
> > Basically what I'm doing is this:
> > ...
> > Message_body = "This is a message body", <-- This part is actually more
> > complex in that variables are being used along with string literals to form
> > the entire body, which is why I initially create it as a string.
> > Binary_message = erlang:term_to_binary(Message_body),
> > email:send(Binary_message).
> >
> > The other module then does this:
> > ...
> > Header = "From: xxx <xxx>\rTo: yyy<yyy>\rSubject: This is the subject\r",
> > Full_message = Header ++ erlang:binary_to_list(Binary_message),
> > send_email(Full_message).
> >
> > Now the message sends just fine and shows up in my email. However in front
> > of the Message_body text are three extra characters "ƒk Ő" and if I change
> > the second module to this:
> > ...
> > Header = "From: xxx <xxx>\rTo: yyy<yyy>\rSubject: This is the subject\r",
> > Body = erlang:binary_to_list(Binary_message),
> > Full_message = Header ++ Body,
> > send_email(Full_message).
> >
> > Then the three characters change to these"ƒk ×" and I simply can't figure
> > out what is going on. Now I'm not building a mail server and I don't expect
> > to be sending thousands of emails so working around this by simply treating
> > all email text as strings (not converting to/from binary) is certainly not a
> > problem. I am just curious if anyone can explain or help me figure out what
> > is going on.
> > Chris Hicks.
> >
> > _______________________________________________ erlang-questions mailing
> > list 
> > http://erlang.org/mailman/listinfo/erlang-questions
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://erlang.org/mailman/listinfo/erlang-questions
> >
> >
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110514/4792c22e/attachment.html>


More information about the erlang-questions mailing list