# How to replace mail\_to in Rails 3?

**URL:** <https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980>\
**Category:** Rails\
**Created:** [April 15, 2010, 7:31am UTC](https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980 "2010-04-15T07:31:41Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ptremblett](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/dc4da7/32.png) [@ptremblett](https://www.ruby-forum.com/u/ptremblett)\
**Post date:** [April 15, 2010, 7:31am UTC](https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980/1 "2010-04-15T07:31:41Z")

</div>

I have just started up grading to Rails 3. mail\_to no longer works,  
you just get a lot of garbage. With what do I replace it?

Thanks

Paul Thompson

---

<div class="post-metadata">

**Author:** ![ptremblett](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/dc4da7/32.png) [@ptremblett](https://www.ruby-forum.com/u/ptremblett)\
**Post date:** [April 15, 2010, 5:44pm UTC](https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980/2 "2010-04-15T17:44:40Z")

</div>

“Paul Jonathan T.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote in message  
news:removed\_email\_address@domain.invalid…

> I have just started up grading to Rails 3. mail\_to no longer works,  
> you just get a lot of garbage. With what do I replace it?

The mail\_to helper is still present in edge Rails, so I’m not sure what  
is  
going wrong. Can you provide an example of your invocation, and what it  
is  
outputting?

---

<div class="post-metadata">

**Author:** ![ptremblett](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/dc4da7/32.png) [@ptremblett](https://www.ruby-forum.com/u/ptremblett)\
**Post date:** [April 15, 2010, 10:29pm UTC](https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980/3 "2010-04-15T22:29:14Z")

</div>

On 16 April 2010 03:40, Joe S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> outputting?  
> Hi,

I am using Rails 3 Beta 3. The code is:

\<%= mail\_to(supplier.email, h(supplier.email), :subject =\> “Bathroom  
Direct Order:”, :encode =\> “javascript”) %\>

This has worked fine up till Rails 2.3.5. Below is what now appears in  
the view:

Guidance will be most welcome.

Regards,

Paul

---

<div class="post-metadata">

**Author:** ![ptremblett](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/dc4da7/32.png) [@ptremblett](https://www.ruby-forum.com/u/ptremblett)\
**Post date:** [April 16, 2010, 3:33am UTC](https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980/4 "2010-04-16T03:33:08Z")

</div>

On 15/04/2010 21:27, Paul Jonathan T. wrote:

> > going wrong. Can you provide an example of your invocation, and what it is
> 
> Guidance will be most welcome.
> 
> Regards,
> 
> Paul

Isn’t that rails obfuscating the mailto link so that parsers cannot  
harvest email addresses so easily? Does the mailto link work if you  
follow it?

HTH

Matt

---

<div class="post-metadata">

**Author:** ![ptremblett](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/dc4da7/32.png) [@ptremblett](https://www.ruby-forum.com/u/ptremblett)\
**Post date:** [April 16, 2010, 11:00am UTC](https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980/5 "2010-04-16T11:00:25Z")

</div>

Hey Paul,

That javascript looks correct. mail\_to should return an html\_safe  
string. Escaped html indicates it isn’t.

So if the problem is that the html is being escaped, then this is a  
bug. file a ticket on the rails lighthouse.

To get around the bug, use \<%=raw mail\_to(…) %\> or \<%=  
mail\_to(…).html\_safe %\>

Regards  
Kieran

---

<div class="post-metadata">

**Author:** ![ptremblett](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/dc4da7/32.png) [@ptremblett](https://www.ruby-forum.com/u/ptremblett)\
**Post date:** [April 16, 2010, 11:08pm UTC](https://www.ruby-forum.com/t/how-to-replace-mail-to-in-rails-3/186980/6 "2010-04-16T23:08:50Z")

</div>

Hi Kieran,

Thanks for that. The raw option worked. I will file a ticket on the  
rails lighthouse.
