Adresse dans la boîte aux lettres Donnée [] non conforme à la RFC 2822, 3.6.2. quand l'email est dans une variable

j'ai une adresse email correcte. J'ai fait l'écho. mais quand je l'envoie, j'obtiens l'erreur suivante:

 Address in mailbox given [] does not comply with RFC 2822, 3.6.2. 

Pourquoi? J'utilise laravel (swift mailer) pour envoyer des e-mails.

$ courriel = email@address.com

et puis quand je l'envoie, l'erreur est lancée.

mais si j'utilise directement la chaîne, elle l'envoie.

Voici le bloc:

 Mail::send('emails.activation', $data, function($message){
            $message->to($email)->subject($subject);
        });
                ->with('title', "Registered Successfully.");
19
demandé sur Laurence 2014-02-03 18:59:35

10 réponses

votre variable email est vide à cause de la portée, vous devriez définir une clause d'utilisation telle que:

Mail::send('emails.activation', $data, function($message) use ($email) {
    $message->to($email)->subject($subject);
});
8
répondu Juanjo Lainez Reche 2014-06-04 15:23:08

(j'utilise SwiftMailer en PHP)

je recevais une erreur comme ça quand j'envoyais accidentellement une chaîne de caractères pour $ email

$email = "someone@somewhere.com <Some One>";

quand ce que j'ai voulu envoyer était

$email = Array("someone@somewhere.com"=>"Some One");

Je l'exécutais accidentellement à travers une fonction de stringify que j'utilisais pour la journalisation, donc une fois que j'ai recommencé à envoyer le tableau, l'erreur a disparu.

3
répondu Ghost8472 2015-07-17 07:10:46

assurez-vous que votre adresse email n'est pas vide. vérifier en utilisant

print_r ($variable_passed);

3
répondu Shawinder Jit Singh 2017-04-17 11:44:32

j'ai rencontré le même problème et j'ai fixé. Veuillez vous assurer de certaines choses, comme écrit ci-dessous :

   Mail::send('emails.auth.activate', array('link'=> URL::route('account-activate', $code),'username'=>$user->username),function($message) use ($user) {
                        $message->to($user->email , $user->username)->subject('Active your account !');

                    });

Ce doit être votre e-mails.activation

    Hello {{ $username }} , <br> <br> <br>

    We have created your account ! Awesome ! Please activate by clicking the   following link <br> <br> <br>
   ----- <br>
      {{ $link }} <br> <br> <br>
       ---- 

la réponse à votre pourquoi vous ne pouvez pas appeler $email variable dans votre fonction d'envoi de courrier. Vous devez appeler $ user variable puis vous pouvez écrire votre variable désirée comme $user - > variable

Merci :)

1
répondu MD. Atiqur Rahman 2014-12-11 19:56:51

C'est parce que l'adresse e-mail envoyée est vierge. voir les parenthèses vides? cela signifie que l'adresse email n'est pas mise dans l'adresse $de la fonction swiftmailer.

1
répondu Bidhan Mondal 2016-12-16 11:38:44

Les variables de données ($email, $subject) semblent être globales. Et variables globales ne peuvent pas être lus à l'intérieur des fonctions. Vous devez les passer comme paramètres (la manière recommandée) ou les déclarer comme global.

Essayer de cette façon:

Mail::send('emails.activation', $data, function($message, $email, $subject){
        $message->to($email)->subject($subject);
    });
            ->with('title', "Registered Successfully.");
0
répondu WebHQ 2014-02-03 16:47:50

ces erreurs se produisent quand la variable $ email est vide ou parfois quand le mail n'existe pas, essayez avec un mail existant

0
répondu fsalazar_sch 2014-04-24 03:29:14

Essayez ceci.

Mail::send('emails.activation', $data, function($message) use($email,$subject){
            $message->to($email)->subject($subject);
        });
                ->with('title', "Registered Successfully.");
0
répondu KTAnj 2014-10-09 10:47:42
 Mail::send('emails.activation', $data, function($message){
        $message->from('email@from', 'name');
        $message->to($email)->subject($subject);
    });

Je ne sais pas pourquoi, mais dans mon cas, j'ai mis l'information du de dans la fonction et ça marche très bien.

0
répondu Jonathan Machado 2015-10-28 11:13:31

j'ai eu le même problème aujourd'hui et la solution était telle qu'elle est..

$email = Array("Zaffar Saffee" => "myemail@gmail.com");
        $schedule->command('cmd:mycmd')
                 ->everyMinute()
                 ->sendOutputTo("/home/forge/dev.mysite.com/storage/logs/cron.log")
                 ->emailWrittenOutputTo($email);