Search code examples
laravelemailsmtpphpmailermailgun

Laravel Mail::To() does not send email but works on Mail::Send()


public function sample(){
      // USER SUBSCRIPTION
      $Subscriber = Subscriber::find(100021);
      $email = 'jakeromeopeniano@gmail.com';
      Mail::to($email)->send(new Subscribed($Subscriber));

      if(Mail::failures()){
          return Mail::failures();
      }

      return 'email sent to ' . $email;
  }

I'm very much confused. I just switched my domain host, and now I'm having issues with my emails. But I'm sure that I've already setup the correct details in my env. If I use the mail::send() function, the email successfully sends in mailgun. But if I use the mail::to() function, I don't receive any errors but the email is not being sent. I also checked the logs, there's also no errors. Here's my code:

My sample function

<?php

namespace App\Mail;

use App\Subscriber;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class Subscribed extends Mailable implements ShouldQueue
{
    use Queueable, SerializesModels;
    public $subscriber;
    public $password;

    public $tries = 2;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(Subscriber $subscriber, $password = "****")
    {
        $this->subscriber = $subscriber;
        $this->password = $password;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        $subscription = $this->subscriber->subscription;
        $subscriber = $this->subscriber;
        $password = $this->password;
        return $this->markdown('emails.subscription.subscribed', compact('subscriber', 'password'))
                    ->subject($subscription->name . ' subscribed successfully.');
    }
}

Subscriber.php


Solution

  • I feel stupid, I forgot to configure my queue workers in ploi.