I tried TMail parse and I tried manually changing unicode to 7bit
ascii,
nothing worked. so finally I did it brute force. In my controller
@order = Order.find(params[:id])
email = TMail::Mail.new
email = OrderMailer.create_price(@order)
# BRUTE FORCE, nothing else worked!
# contaminated html in my emails!!
# All '=' became '=3D'
# NOTE TMail::Mail.parse() did not fix this.
email_fix = email.encoded.gsub(/[3][D]/,'') # replace '3D' with
empty string in email WORKED
email = TMail::Mail.parse(email_fix)
OrderMailer.deliver(email)
On Nov 29, 10:23 pm, "Kent Sibilev" <
ksr...@gmail.com> wrote:
> On Sun, Nov 30, 2008 at 12:46 AM, minka <
b...@beelucid.com> wrote:
>
> > I am getting html output in my email body with spurious characters
> > that cannot be rendered, so that my links are not handled properly.
> > What am I not getting here?
>
> > My email body contains:
> > -----------------clip-------------
> > <A href=mailto:"<%=h('
supp...@mysite.com')%>?
> > Support">Support</A><br/>
>
> > with any issues. Please include your order number...
> > -----------------clip-------------
> > I'm getting '=3d' for all '=' so that the <A href=... becomes <A
> > href=3d... which is garbage.
>
> > I have tried using all possible combinations of h() and mailto
> > function: those don't fix it.
> > That is NOT the problem.
>
> > This is my method in order_mailer:
> > def price(order)
> > @subject = "Order Email
> > @recipients = order.email
> > @from = '
supp...@mysite.com'
> > @sent_on = Time.now
> > @body["order"] = order
>
> > part :content_type => "text/plain",
> > :body => render_message("price_text_html", :order => order)
>
> > end
>
> > I tried content type text/html first, text/plain also does not work.
>
> > I can't use the utf code for '=', it isn't understood properly.
>
> > By the way, 3d is the hex unicode for '='.
>
> > What's up??
>
> SMTP protocol uses 7bit ASCII characters, so your emails must be
> properly encoded. You can read more about this athttp://
en.wikipedia.org/wiki/MIME.