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.");
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);
});
(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.
assurez-vous que votre adresse email n'est pas vide. vérifier en utilisant
print_r ($variable_passed);
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 :)
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.
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.");
ces erreurs se produisent quand la variable $ email est vide ou parfois quand le mail n'existe pas, essayez avec un mail existant
Essayez ceci.
Mail::send('emails.activation', $data, function($message) use($email,$subject){
$message->to($email)->subject($subject);
});
->with('title', "Registered Successfully.");
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.