2017-07-11 11 views
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つの電子メールが送信されます。

アイデア?

+0

'public function send(ContactFormRequest $ request)' これは1つの投稿ですか、取得しますか? –

+0

投稿ルートです。 'Route :: post( 'contact-form'、 'C​​ontactController @ send') - >名前( 'contact.form');' – Azeame

答えて

0

OK、回避策が見つかりました。 mail.php設定ファイルの 'to'エントリを削除し、config( 'mail.to')で宛先を取得する代わりにMail :: send/queueコマンドで宛先アドレスをハードコードすると、1つの電子メールが届きます。受信者を定義するためにconfig()を使用すると、2つの電子メールが得られます。お役に立てれば。

関連する問題