sending bulk email in laravel from select options

226 Views Asked by At

Am trying to send bulk email from my laravel project sing PHPMailer, I get the emails from the select option in blade:

<form action="{{url('send/bulk/email')}}" method="post">
   @csrf
   <select name="recipient[]"   multiple data-mdb-filter="true" >
      <option value="[email protected]" >[email protected]</option>
      <option value="[email protected]" >[email protected]</option>
      <option value="[email protected]" >[email protected]</option>
      <option value="[email protected]">[email protected]</option>
      <option value="[email protected]" >[email protected]</option>
      <option value="[email protected]" >[email protected]</option>
   </select>
</form>

In Controller

public function sendBulkEmail(Request $request){
    try {
        $recipients = explode(',', $request->recipient);
        $mail = new PHPMailer(true);
    
        //Server settings                                    
        $mail->setFrom('[email protected]', 'Sender');
        
        foreach ($recipients as $recipient) {
           $mail->addAddress($recipient);
     }

    $mail->addReplyTo('[email protected]', 'Information');

    $mail->isHTML(true);                  
    $mail->Subject = 'Request';
    $mail->Body    = 'this test message';
   } 
}

My error

explode(): Argument #2 ($string) must be of type string, array given
1

There are 1 best solutions below

0
zohrehda On

The recipient parameter in request is an array itself. You don't need to explode it.

$recipients = $request->recipient ;