Rails html mailto 的写法

rainkcn · 2011年12月13日 · 最后由 Roam 回复于 2012年12月10日 · 17427 次阅读

大家好,我是 rails 新手,最近公司的项目里有一条 issue,我所希望达到的效果是,某篇文章,通过点击 share 的链接,打开 outlook,同时将文章的标题作为 title,内容和文章链接作为 body 发送。测试了一下效果,title 可以正确引用,但是 body 却无法引用。

<li>
  <a href="mailto:?subject=[<%= l(:label_new_share) %>]<%= @article.title %>&body=   <% render :partial => "show1", :locals => {:article => @article } %>">
    <%= l(:label_new_share) %>
  </a>
</li>

_show1.html.erb 内容

<div id="article">
  <div class="article-title"><%= link_to @article.title %></div>
  <div class="wiki"><%= textilizable @article, :content, :attachments => @article.attachments %>
</div>
```

还请大家帮看看。谢谢。


还真没遇到过这样的需求,干脆做个功能,让这个 application 替你发邮件好了。

#1 楼 @yakjuly 因为每次的收件人会不一样,所以只能考虑用 mailto 的形式,调用 outlook。

url 转义的问题?

@rainkcn 可以做个 dialog 自己填写 收件人发啊。其次还有 zfben 说的 url 转义问题

原因很简单 你 render 前面没打等号.... 应该是 <%= render 但是我很好奇为什么你不用 mailer 呢?

#5 楼 @poshboytl thanks,现在尝试用 mail_to 来进行修改。

  • <%= mail_to "", l(:label_new_share) , :subject => @article.title , :body => strip_tags(@article.content) %>
  • mailer,还没接触,目前正在反复观看您的教学视频。

    #5 楼 还想请问下各位,我的需求是通过 mailto 呼出 outlook 或者其他 mail 客户端,但是正文内容是一份 html。之所以不用 action mail,是因为不想在网页里让 user 录入其他人的邮箱地址。有什么思路提供吗?我用 mail_to 无法实现,用 mailer,似乎也只能在网页里发送。感觉都不是我想要的效果。 @poshboytl @zfben @yakjuly

    我也是同样的问题,在 outlook 中显示的是 html 代码,我要发送的内容用了.html_safe 方法,但是在邮件中不会自动把 html 代码转换格式,不知道如何解决

    我记得上次实习的时候好像看到类似的功能 具体我不清楚 可是我记得好像是使用第三方服务做到的

    我们当时需要的是提交一个表单 然后和数据库里其他的一些东西混在一起发给用户 就等于是用表单代替 outlook 了吧

    当时我还什么都不懂 所以现在只记得这些...

    http://stackoverflow.com/questions/247245/is-it-possible-to-add-an-html-link-in-the-body-of-a-mailto-link 貌似协议上规定 body 参数的内容是纯文本,所以插 html 估计是不行的,但是不排除某些邮件客户端会支持

    #8 楼 @Spirit890903 #7 楼 @rainkcn

    #10 楼 @edokeh 多些提醒,后来用了 Net::SMTP.start('server-ex2007“)解决了

    #11 楼 @Spirit890903 你好,我也遇到这个问题了,请问您具体是怎么解决的呢?

    需要 登录 后方可回复, 如果你还没有账号请 注册新账号