gpt4 book ai didi

html - Rails 2 Mailer View 将 3D 添加到字符串

转载 作者:数据小太阳 更新时间:2023-10-29 07:55:51 24 4
gpt4 key购买 nike

我有一个非常旧的 Rails 应用程序,它试图为新用户发送验证电子邮件,但永远找不到 token ,因为出于某种原因,无论我如何生成链接,链接都会以 3D 形式添加到字符串前面。出于某种原因,它似乎也在 token 中间注入(inject)了一个 = 符号。

这是一些带输出的代码:

<%= link_to verify_account_url(:host => (ActionMailer::Base.default_url_options[:host] || ''), :t => @token), verify_account_url(:host => (ActionMailer::Base.default_url_options[:host] || ''), :t => @token) %>

<a href=3D"https://localhost:3000/accounts/verify?t=3Dd486da2ac8a6dea8a3d9ce341c7aa6=
b01cca96ea">https://localhost:3000/accounts/verify?t=3Dd486da2ac8a6dea8a3d9ce341c7aa6b0=
1cca96ea</a>

数据库中的 token 是:

#<AccountToken id: 6317, token: "d486da2ac8a6dea8a3d9ce341c7aa6b01cca96ea", email: "...", client: nil>

我也尝试过对 URL 进行硬编码并在字符串输出中插入 token ,但同样的问题正在发生,它似乎也发生在普通的 HTML 标签中:

<p style="margin: 0 0 1em;">If clicking the link doesn't work, copy and paste the link into your browser's address bar.</p>

结果

<p style=3D"margin: 0 0 1em;">If clicking the link doesn't work, copy a=nd paste the link into your browser's address bar.</p>

有人知道吗?

最佳答案

这是正常的。为了让电子邮件顺利通过可能仅支持 7 位 ascii 的遗留系统,电子邮件正文通常使用各种方案进行编码,将所有内容转换为 7 位 ascii。

其中一种方案称为 quoted-printable,在该方案中,特殊字符使用 = 后跟十六进制字节值进行编码(与 url 中的 % 编码基本相同)。该方案的一部分是行必须不超过 76 个字符 - 如果一行更长,则插入一个回车符,以及 = 以便这些可以与出现在源文档。

当邮件客户端读取电子邮件时,那些额外的 = 和行返回将不再存在。

关于html - Rails 2 Mailer View 将 3D 添加到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com