0
1つではなく2つの電子メールを送信する連絡フォームを作成しました。ここでは、コントローラがあります:Laravelはなぜメールを2回送信していますか?
<?php
namespace App\Http\Controllers;
use App\Http\Requests\ContactFormRequest;
use App\Mail\ClientContact;
use Illuminate\Support\Facades\Mail;
class ContactController extends Controller
{
/**
* It sends a contact request and returns
* the user back to the contact form.
* @param ContactFormRequest $request
* @return mixed
*/
public function send(ContactFormRequest $request)
{
Mail::send(new ClientContact($request->only(['name','email','message'])));
session()->flash('success','Your message was sent successfully!');
return redirect()->back();
}
}
ここClientContactメールクラスだ
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class ClientContact extends Mailable
{
use Queueable, SerializesModels;
/**
* @var
*/
public $message;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($message)
{
$this->message = $message;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this
->from(config('mail.from.address'))
->markdown('emails.client.contact', ['message' => $this->message]);
}
}
それは私がMailtrap.ioを通じて送信メールを取り込むことだし、キューが同期するように設定されている私のテスト環境です。私はすでにキュー可能な特性を削除しようとしましたが、それはどうにかキューに入れないので何も変わりませんでした。また、キューに入れようとしましたが、キューが最終的に再び電子メールを処理すると、2つの電子メールが送信されます。
アイデア?
'public function send(ContactFormRequest $ request)' これは1つの投稿ですか、取得しますか? –
投稿ルートです。 'Route :: post( 'contact-form'、 'ContactController @ send') - >名前( 'contact.form');' – Azeame