我想通过laravel发送邮件。出于某种原因,我只想在调用import '../imports/api/tasks.js';
方法之前设置cc
:
send
然后我直接在我的Mailable类的Mail::cc($cc_mail)->send(new MyMailAlert());
方法中定义收件人(to
):
build
但它失败了:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError:调用未定义的方法Illuminate \ Mail \ Mailer :: cc()
在使用$this->subject($subject)->to($to_email)->view('my-mail');
方法发送邮件之前,如何在不知道收件人的情况下发送邮件?换句话说,我想直接在build
方法中设置收件人(至),我不知道如何做到这一点。
答案 0 :(得分:2)
这是一个解决这个问题的黑客:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
<p id="ctl00_ContentMiddle_TicketList1_GridView1_ctl03_P1" class="content-card-entry fcb-row fcb-clear">
<span class="content-card-entry-value fcb-gr-3 fcb-gr-3@small">
<span id="ctl00_ContentMiddle_TicketList1_GridView1_ctl03_Label1">101</span>
</span>
<span class="content-card-entry-value fcb-gr-3 fcb-gr-3@small">
<span id="ctl00_ContentMiddle_TicketList1_GridView1_ctl03_Label2">16</span>
</span>
<span class="content-card-entry-value fcb-gr-3 fcb-gr-3@small">
<span id="ctl00_ContentMiddle_TicketList1_GridView1_ctl03_Label3">21</span>
</span>
<span class="content-card-entry-value fcb-gr-3 fcb-gr-3@small">
<span id="ctl00_ContentMiddle_TicketList1_GridView1_ctl03_Label4">70,00 €</span>
</span>
</p>
<p id="ctl00_ContentMiddle_TicketList1_GridView1_ctl03_P5" class="content-card-entry fcb-row fcb-clear" style="text-align:right;">
<span class="content-card-entry-value fcb-gr-12 fcb-gr-12@small">
<a id="ctl00_ContentMiddle_TicketList1_GridView1_ctl03_LinkButton1" class="button small cart-buttons-second-button" Autopostback="false" href="javascript:__doPostBack('ctl00$ContentMiddle$TicketList1$GridView1$ctl03$LinkButton1','')">In den Warenkorb</a>
</span>
</p>
<hr />
</td>
所以只需添加一个带有空数组的Mail::to([])->cc($cc_mail)->send(new MyMailAlert());
方法即可。它仍然是一个黑客,我不确定它将来会起作用。
答案 1 :(得分:1)
cc
,但我在Illuminate\Mail\Mailer
源代码中找不到方法或属性,Laravel API Documentation中也没有。所以你不能这样使用它。
但Illuminate\Mail\Mailable
具有cc
属性。因此,如果您想在发送之前添加cc
并在构建方法中添加to
,则需要以下内容:
MyMailAlert.php
class MyMailAlert extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*/
public function __construct()
{
//
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->subject($this->subject)->to($this->to)->view('my-mail');
}
}
在您的控制器中:
$myMailAlert = new MyMailAlert();
$myMailAlert->cc = $cc_mail;
// At this point you have cc already setted.
Mail::send($myMailAlert); // Here you sends the mail
请注意,构建方法使用可邮寄实例的subject
和to
属性,因此您必须在发送之前进行设置。
我不确定您在构建方法示例中从哪里检索$subject
和$to_email
,但对于我的示例,您必须将这些值提供给$myMailAlert->subject
和{{ 1}}。您可以在构建方法中使用自定义变量,但假定该类已具有这些属性,则不需要自定义变量。