【问题标题】:Laravel delaying emails breaks linksLaravel 延迟电子邮件会破坏链接
【发布时间】:2020-12-20 22:18:31
【问题描述】:

我需要延迟几个小时发送电子邮件。我在可邮寄作品的构造函数中创建的所有内容:图片链接、从数据库中提取内容……

邮件看起来不错,但唯一奇怪的是所有传出链接似乎都已损坏。

在没有延迟的邮件中,链接如下所示:https://example.url.com/

在延迟的邮件中,它看起来像这样:http://localhost/email/n?l=https%3A%2F%2Fexample.url.com&h=Kv1wny2TTU8RhdgPUXQEDpX8xHdKavz1

我不知道为什么这些链接会变成这样...我立即对其进行了测试,一切正常。

我是这样使用延迟的:

Mail::to($contestant->email)->locale('en')->later(now()->addMinutes(1), new NurtureMail($contestant));

我在电子邮件中使用的唯一其他东西是这个跟踪器https://github.com/jdavidbakr/mail-tracker 用于一些报告。不知道跟这个有没有关系。。

编辑 1:

我通过 2 种方式生成链接:使用数据库中的内容,或者使用以下翻译:

class NurtureMail extends Mailable
{
    use Queueable, SerializesModels;

    private $offerLink;
    private $site;

    public function __construct($contestant)
    {
        $this->contestant = $contestant;
        
        $this->brand = $this->contestant->brand; 
        
        ...

        $this->site = 'https://'.$this->brand.'.'.'com';
        $this->offerLink = trans('mail.offerLink.dacia');
    }

    public function build()
    {
        return $this->from($this->senderMail, $this->senderName)
                    ->subject($this->mailSubject)
                    ->view('emails.email', [
                        'offerLink' => $this->offerLink,
                        'site' => $this->site,
                    ]);
    }
}

在 email.blade.php 我使用这样的链接,例如:

<a href="{{ $offerLink }}">
  Click me
</a>

【问题讨论】:

  • 请分享您在问题中生成 url 的代码。
  • @KurtFriars 刚刚编辑了它
  • 禁用mail-tracker能解决问题吗?

标签: php laravel email laravel-blade


【解决方案1】:

我的 .env 文件中的 APP_URL 是“http://localhost”,所以 mail-tracker 使用它来转换跟踪的链接。

一旦我将其更改为正确的网址,它就可以正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多