2

我正在使用 Laravel Mail 通过 SendInBlue 发送电子邮件。一切正常,但今天我开始面临一个以前不存在的问题。

刀片式电子邮件模板中生成的链接会出现问题。

这是生成链接的代码示例:

'link' => env('FRONT_APP').'verification?userid=25&code=12345'

该链接随后被发送到 Blade 电子邮件模板,并按如下方式使用:

<a href="{{ $link }}">PRESS TO CONTINUE</a>

然而,邮件投递后,URL实际上是: /verification?_se=YW5kcml1cy5rYlyeXMubHRAZ21haWuY39t&userid=25&amp%3Bcode=12345

似乎问题出在&符号的特殊字符编码上。但是,将其&amp;更改为将 URL 更改为以下内容: /verification?_se=YW5kcml1cy5rYlyeXMubHRAZ21haWuY39t&userid=25&amp%3Bamp%3Bcode=12345

我也不确定这个位_se=YW5kcml1cy5rYlyeXMubHRAZ21haWuY39t是从哪里来的。在我开始使用 SendInBlue 之前,这一切都没有发生。我正在使用我的 Gmail 帐户发送电子邮件进行测试。有什么想法可以解决这个问题吗?

4

3 回答 3

1

您的问题中有一个重要元素:您正在通过 Sendinblue 发送电子邮件。如他们的文档中所述,Sendinblue 更新了 href 以添加他们自己的跟踪元素,因此当时可能添加了属性“_se”。但这应该不是问题(在您开始分析此问题之前可能就是这种情况)。

关于“&”的转义,除了 N69S 答案之外,您首先应该通过检查您的视图生成的代码来定义该字符在哪一步转义(只需在调用 Sendinblue API之前dd添加一条语句)。然后您将知道是否必须修复您的 PHP 代码,或者您是否应该请求 Sendinblue 支持。

于 2021-09-17T04:56:46.600 回答
0

为避免在刀片文件中转义字符串,请使用{!! !!}而不是{{ }}

<a href="{!! $link !!}">PRESS TO CONTINUE</a>
于 2021-09-16T17:00:20.633 回答
0

问题似乎得到了解决。它在 Sendinblue 一侧。他们在添加 «_se» 参数时引入了一个错误。

它影响了 9 月 15 日至 16 日期间发送的电子邮件中的所有链接。

于 2021-09-17T20:33:21.677 回答