1. ホーム
  2. php

Laravel Mail::send() で複数の宛先やBccアドレスに送信する

2023-11-23 18:41:35

質問

にうまく送信できないようです。 複数 アドレスに送信できません。 Mail::send() コールバックを使用する場合、このコードは 1 の受信者だけを指定すると動作します。

チェーニングを試しましたが

// for example
$emails = array("[email protected]", "[email protected]");
$input = Input::all();

Mail::send('emails.admin-company', array('body' => Input::get('email_body')), 
function($message) use ($emails, $input) {
    $message
    ->from('[email protected]', 'Administrator')
    ->subject('Admin Subject');

        foreach ($emails as $email) {
            $message->to($email);
        }
});

で、配列を渡します。

// for example
$emails = array("[email protected]", "[email protected]");
$input = Input::all();

Mail::send('emails.admin-company', array('body' => Input::get('email_body')), 
    function($message) use ($emails, $input) {
        $message
        ->from('[email protected]', 'Administrator')
        ->subject('Admin Subject');

        $message->to($emails);
});

が、どちらもうまくいかないようで、Mail::fails()を返すときに失敗メッセージが出ます。Mail::fails()のvar_dump()には、例えば送信しようとした電子メールアドレスが表示されます。

array(2) {
  [0]=>
  string(18) "[email protected]"
  [1]=>
  string(18) "[email protected]"
}

明らかに何か間違っています。私もAPIを理解していないので、何か助けをお願いします。 http://laravel.com/api/4.2/Illuminate/Mail/Message.html#method_to

私は Mail::send() メソッドを for/foreach ループに入れて Mail::send() を各電子メールアドレスに適用していますが、これは最適な解決策とは思えません。 ->bcc() をすべてのアドレスに適用して、受信者が他の誰にメールが送信されているかを確認できないようにしたいと思っていました。

どのように解決するのですか?

以下のコードでテストしてみました。

$emails = ['[email protected]', '[email protected]','[email protected]'];

Mail::send('emails.welcome', [], function($message) use ($emails)
{    
    $message->to($emails)->subject('This is test e-mail');    
});
var_dump( Mail:: failures());
exit;

結果 - 失敗の場合は空の配列。

ただし、当然ながら app/config/mail.php を適切に設定する必要があります。ですから、まず一人のユーザーにだけメールを送ることができることを確認し、それから多くのユーザーでコードをテストしてください。

さらに、この単純なコードを使用して、私の電子メールはどれも無料のメールアカウントに配信されませんでした。私は、私の有料ホスティングアカウントにある受信トレイにのみ電子メールを受け取ったので、おそらく彼らはいくつかのフィルタによってキャッチされました(それはおそらく単純なトピック/コンテンツの問題ですが、私はあなたがいくつかの電子メールを受け取っていない場合に備えてそれを言及しました) 。