我有一个rails项目,需要发送一些电子邮件,在电子邮件中有一个链接/按钮。在基于Web的电子邮件客户端和我的手机上,它显示正确,但在桌面上的Outlook中,它显示的是代码而不是按钮。
/[if mso] <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="#{crm_tasks_url}" style="height:62px;width:271px;v-text-anchor:middle;" arcsize="57%" stroke="false" fillcolor="#dc0030"><w:anchorlock/><v:textbox inset="0px,0px,0px,0px"><center style="color:#ffffff; font-family:Arial, sans-serif; font-size:16px">
%a{:href => "#{crm_tasks_url}", :style => "text-decoration:none;display:inline-block;color:#ffffff;background-color:#dc0030;border-radius:35px;width:auto;border-top:0px solid transparent;font-weight:undefined;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;padding-top:15px;padding-bottom:15px;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:16px;text-align:center;mso-border-alt:none;word-break:keep-all;", :target => "_blank"}
%span{:style => "padding-left:30px;padding-right:30px;font-size:15px;display:inline-block;letter-spacing:normal;"}
%span{:style => "margin: 0; word-break: break-word; line-height: 30px;"}
%strong BEKIJK TAAK
/[if mso] </center></v:textbox></v:roundrect>
上面的代码在outlook中给出了以下结果:<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://localhost:3000/crm/taken" style="height:62px;width:271px;v-text-anchor:middle;" arcsize="57%" stroke="false" fillcolor="#dc0030"><w:anchorlock/><v:textbox inset="0px,0px,0px,0px"><center style="color:#ffffff; font-family:Arial, sans-serif; font-size:16px"> BEKIJK TAAK
如果我将/[if mso]
块中的href更改为:http://localhost:3000/crm/taken
它按预期工作并显示按钮。
现在你会说:你已经有解决办法了,但是不行。我还收到了一封邀请邮件,它发送了一个invitation_token,而且不可能对该token进行硬编码。
我正在使用Rails 7,我也有一个Rails 6的项目,它也可以发送带有链接/按钮的电子邮件,并且工作正常。我复制了完整的电子邮件视图,但仍然有问题。我不知道这是否与Rails版本有关。
1条答案
按热度按时间csbfibhn1#
不确定Rails的bug,但有一种替代方法可以将href从VML中删除,值得一试:
这一点风险也较小,因为您不必尝试并记住在两个地方更新URL。