Laravel mail продолжает отправлять почту на hello@example.org - PullRequest
0 голосов
/ 26 мая 2020

У меня проблемы с почтовыми сообщениями из laravel, я пытаюсь отправить простое письмо из метода контроллера на указанный адрес электронной почты, например:

Mail::to('demo@example.org')->send(new ContactMail($data));

Мне кажется, что это похоже на состояние документации:

https://laravel.com/docs/6.x/mail#sending -mail

Но это, похоже, не работает для меня, почта продолжает отправляться на hello@example.org (или то, что я предоставил в файле конфигурации почты).

Я ожидаю, что письмо будет отправлено на почту, которую я доказываю с помощью метода to(), есть ли что-нибудь, что я отсутствует

Почтовый ящик:

class ContactMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(array $contactMailData)
    {
        $this->viewData = $contactMailData;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject($this->viewData['subject'])
            ->from($this->viewData['email'])
            ->view('mailables.contact', $this->viewData);
    }
}

Уже пытались очистить конфигурацию и кеш, но это не помогло.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Таким образом, решение проблемы на самом деле довольно простое, config/mail.php имеет значение по умолчанию, куда отправляются все письма.

    'to' => [
        'address' => env('MAIL_TO_ADDRESS', 'hello@example.com'),
        'name' => env('MAIL_TO_NAME', 'Example'),
    ],

Я подумал, что если бы я использовал метод Mail::to('whateveremail@example.org') , это заменит почту по умолчанию на настройки, указанные в config/mail.php.

Но этого не происходит, поэтому решением является поворот массива 'to' по умолчанию в config/mail.php.

Когда закончите, очистите кеш конфигурации, и проблема будет решена.

php artisan config:cache
0 голосов
/ 26 мая 2020
use Queueable, SerializesModels;
public $user ; 
/**
 * Create a new message instance.
 *
 * @return void
 */
public function __construct(User $user ,array $contactMailData  )
{
    $this->user =$user ;
    $this->viewData = $contactMailData;

    //
}



public function build()
{
 return $this->to($user->email)->subject($this->viewData['subject'])
        ->from($this->viewData['email'])
        ->view('mailables.contact', $this->viewData);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...