【问题标题】:Laravel pass data into mail for different recipentsLaravel 将数据传递到不同收件人的邮件中
【发布时间】:2017-04-17 16:18:38
【问题描述】:

我刚刚在 Laravel 中创建了一个时事通讯,人们可以在其中使用他们的电子邮件地址进行注册,然后有人可以向已注册的人发送邮件。 然后我将这些注册信息连同简报发件人的相关 ID 一起保存在一个表格中(在我的情况下,它是卖家,而买家注册简报)....

这是我使用的代码,所以发送一个时事通讯:

 public function sendNewsletter(Request $request){
        $newsletterText = $request->newsletterText;
        $seller = Auth::user();
        $sellerID = $seller->id;
        $newsletterMailAdresses = Newsletter::where('seller_id', $sellerID)->pluck('mailAdress');

        Mail::bcc($newsletterMailAdresses)->send(new newsletterMail($newsletterText));
        return "<p style='color:green;'>Newsletter erfolgreich versandt</p>";
    }

它通过 AJAX 请求调用,但不应更改任何内容...

我现在需要的是让用户也可以通过邮件中的链接取消订阅时事通讯。

这是对应的邮件类:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class newsletterMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $newsletterText;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($newsletterText)
    {
        $this->newsletterText = $newsletterText;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        $subject = "Newsletter ShoppingPortal";
        return $this->view('emails.newsLetter')->subject($subject);
    }
}

这就是邮件视图:

Newsletter vom Shoppingportal: <br/><br/>

<div>
    {!!$newsletterText!!}
</div>


<br/>

To unsubscribe from Newsletter, use this link: localhost/unsubscribe/....

这是缺少的东西,我需要创建一个取消订阅的链接,因此我需要视图中的 SellerID(有什么可能,可以像 newsletterText 一样传递它,但是我如何传递或获取电子邮件发送到的当前邮件地址?由于这封邮件会发送到一些收件人,它在视图的每个实例中都不同...我该怎么做,那么我怎样才能在视图中获取邮件地址?

【问题讨论】:

  • 为什么不使用时事通讯服务(如 mailchimp)并使用 API 进行集成?大多数网络服务器并不打算发送群发邮件,它甚至可能被标记为垃圾邮件。
  • 使用registrationId代替发送senderID,使用该ID您将能够获取订阅者和发送者的详细信息
  • @HalfCrazed 到目前为止是一个小项目,我不知道它会发展到什么程度,这没关系...
  • @phobia82 我怎么能把这个 id 传入?还是同样的问题,在看来,我不知道它发给了哪个recipent...

标签: php laravel email laravel-5.3 swiftmailer


【解决方案1】:

我明白了,

只是将邮件的发送更改为:

foreach($newsletterMailAdresses as $mailAdress){
            Mail::to($mailAdress)->send(new NewsletterMail($newsletterText, $mailAdress, $sellerID));
        }

现在我在发送时有了当前的邮件地址。

【讨论】:

    猜你喜欢
    • 2015-02-23
    • 2015-12-06
    • 2017-07-27
    • 2017-04-09
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    相关资源
    最近更新 更多