I see that you've given content type to be text-html, in which case, the newline is defined by the <br> tag and not \n. For \n to be converted to a new line, you need the content type of the email to be set to text-plain.

Try it out and see if it makes any difference. The rest of your script looks fine.