Laravel将数据传递给不同配方的邮件

时间:2016-12-02 17:11:04

标签: php laravel email laravel-5.3 swiftmailer

我刚在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一样传递它,但我怎么能传入或获取当前邮件地址电子邮件发送到?由于此邮件发送到某些配方,它在视图的每个实例中都不同...我怎么能这样做,所以如何在视图中获取邮件地址?

1 个答案:

答案 0 :(得分:0)

我明白了,

刚刚将邮件发送到此:

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

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