0

我在我的本地主机上尝试,它可以工作

但是如果我在登台服务器上尝试,它就不起作用

我的控制器是这样的:

<?php
use Illuminate\Support\Facades\Mail;
use App\Mail\OrderReceivedMail;
...
class PurchaseController
{
    ...
    public function test() {
        $order = $this->order_repository->find(416);
        $user = $this->user_repository->find(1);
        Mail::to($user)->send(new OrderReceivedMail($order, $order->store));
    }
}

我的邮件是这样的:

<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class OrderReceivedMail extends Mailable implements ShouldQueue
{
    use Queueable, SerializesModels;
    public $order;
    public $store;
    public function __construct($order, $store)
    {
        $this->order = $order;
        $this->store = $store;
        $this->subject('subject');
    }
    public function build()
    {
        $mail_company = explode(',',config('app.mail_company'));
        // dd($mail_company, $this->order->number, $this->store->name, 'test');
        return $this->view('vendor.notifications.mail.email-order',['number'=>$this->order->number, 'store_name' => $this->store->name])->bcc($mail_company);
    }
}

我尝试添加这个:

dd($mail_company, $this->order->number, $this->store->name, 'test');

在邮件上

如果在我的本地主机中,则 dd 显示的结果

但是如果在登台服务器中, dd 的结果不显示

似乎如果登台服务器,它不运行此语句:

Mail::to($user)->send(new OrderReceivedMail($order, $order->store));

我怎么解决这个问题?

4

1 回答 1

0

打开 config/mail.php、.env 文件并将您的电子邮件驱动程序设置为邮件,如下所示,

'driver' => env('MAIL_DRIVER', 'mail'), //you must set it in env file too

然后您可以像下面这样发送电子邮件,请注意 emails.admin.member 是您的电子邮件模板的路径,在示例代码中,laravel 将在路径中查找刀片模板,resources\views\emails\admin\member.blade.php

Mail::queue('emails.admin.member', $data, function($message) {
        $message->subject("A new Member has been Registered" );
        $message->from('noreply@mydomain.net', 'Your application title');
        $message->to('yourcustomer@yourdomain.com');
    });

或者

Mail::send('emails.admin.member', $data, function($message) {
        $message->subject("A new Member has been Registered" );
        $message->from('noreply@mydomain.net', 'Your application title');
        $message->to('yourcustomer@yourdomain.com');
    });
于 2017-11-28T07:06:05.883 回答