6
votes

Impossible d'envoyer un message sans adresse d'expéditeur dans laravel 5.4

Dans mon application Laravel 5.4 , je souhaite envoyer une notification par e-mail à l'utilisateur lors de son inscription , j'ai tout configuré mais je ne fonctionne pas et j'ai affiché une exception comme:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=3e917ca6b3dabc
MAIL_PASSWORD=05abe282eca67f
MAIL_ENCRYPTION=tls

J'utilise mailtrap .

J'ai également exécuté la commande artisan php artisan config: cache et php artisan cache: clear

Ceci est mon fichier .env :

Cannot send message without a sender address


0 commentaires

5 Réponses :


2
votes

Veuillez mettre à jour votre fichier .env comme:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=youremailaddress
MAIL_PASSWORD=gtxajikwsqmlaqc //your app password


4 commentaires

Je veux utiliser mailtrap et non gmail


@ShahidHussain: La différence est MAIL_USERNAME && MAIL_PASSWORD


MAIL_USERNAME && MAIL_PASSWORD utilise déjà le MAIL_USERNAME && MAIL_PASSWORD dont vous parlez


@ShahidHussain: Veuillez vérifier ce lien



2
votes

Dans votre fichier .env , vous devrez définir l'adresse e-mail et le mot de passe de votre compte e-mail.


Étapes pour configurer mailtrap:

1) Inscrivez-vous à mailtrap: https: //mailtrap.io/register/signup

2) Aller à la page Boîte de réception: https : //mailtrap.io/inboxes

3) Cliquez sur le lien Demo Inbox et vous verrez les informations d'identification smtp mailtrap suivantes, où le nom d'utilisateur et le mot de passe ressembleront à ceci: p >

php artisan config:cache

Passez maintenant au fichier .env dans le répertoire racine de votre projet et modifiez la ligne suivante:

XXX

Une fois la modification de .env terminée, veuillez saisir cette commande dans votre terminal pour vider le cache:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=***USER NAME***
MAIL_PASSWORD=***PASSWORD***
MAIL_ENCRYPTION=null


3 commentaires

mailtrap fonctionne dans laravel 5.6 mais pas dans laravel 5.4 alors quelle est la raison


je ne veux pas utiliser gmail je veux utiliser mailtrap


@ShahidHussain c'est la bonne réponse, vérifiez votre MAIL_ENCRYPTION = null au lieu de tls à des fins de diagnostic.



1
votes

Tout d'abord, vérifiez vos variables d'environnement dans votre fichier .env .

Elles devraient ressembler à ceci:

/**
 * Build the message.
 *
 * @return $this
 */
public function build()
{
    return $this->from('example@example.com')
                ->view('emails.orders.shipped');
}

Deuxièmement vérifiez que vous disposez d'une adresse e-mail, car votre erreur suggère que vous ne pouvez pas envoyer d'e-mail sans adresse d'envoi.

config / mail.php

Vérifier pour

MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="Example"

Vous pouvez définir MAIL_FROM_ADDRESS et MAIL_FROM_NAME dans votre fichier .env , par exemple

'from' => [
    'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
    'name' => env('MAIL_FROM_NAME', 'Example'),
],

Si vous utilisez un mailable

Vous pouvez définir la provenance de l'e-mail dans votre build ( ) par exemple

Source

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null


1 commentaires

Pouvez-vous montrer votre code qui envoie l'e-mail?



9
votes

J'ai rencontré exactement le même problème avec Laravel 6.15.1.

Il s'est avéré que vous n'avez qu'à supprimer ces lignes dans .env:

MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"


0 commentaires

2
votes

Je pense que vous n'avez pas redémarré votre service. Vous devez redémarrer votre service en 2 étapes:

Étape 1: Arrêtez votre service (CMD):

npm run dev
php artisan serve

Étape 2: Vous exécutez à nouveau le service:

XXX


0 commentaires