wake-up-neo.net

Die angegebene Adresse in der Mailbox [] entspricht nicht RFC 2822, 3.6.2. Wenn E-Mail in einer Variablen ist

Ich habe eine korrekte E-Mail-Adresse. Ich habe es wiederholt. aber wenn ich es sende, erhalte ich folgende Fehlermeldung:

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

Warum? Ich verwende Laravel (Swift Mailer) zum Versenden von E-Mails.

$ email = [email protected]

und dann, wenn ich es sende, wird der Fehler geworfen.

Wenn ich die Zeichenfolge jedoch direkt verwende, wird sie gesendet.

Hier ist der Block:

 Mail::send('emails.activation', $data, function($message){
            $message->to($email)->subject($subject);
        });
                ->with('title', "Registered Successfully.");
21
user3077503

Ihre E-Mail-Variable ist aufgrund des Gültigkeitsbereichs leer. Sie sollten eine Verwendungsklausel wie die folgenden setzen:

Mail::send('emails.activation', $data, function($message) use ($email) {
    $message->to($email)->subject($subject);
});
11

(Ich verwende SwiftMailer in PHP)

Ich habe eine solche Fehlermeldung erhalten, als ich versehentlich eine Zeichenkette für $ email gesendet habe

$email = "[email protected] <Some One>";

Wann wollte ich senden?

$email = Array("[email protected]"=>"Some One");

Ich führte es versehentlich durch eine Stringify-Funktion, die ich für die Protokollierung verwendete. Nachdem ich das Array erneut gesendet hatte, verschwand der Fehler.

3
Ghost8472

stellen Sie sicher, dass Ihre E-Mail-Adressvariable nicht leer ist. überprüfen mit

print_r ($ variable_passed);

3

Sein, weil die E-Mail-Adresse, die gesendet wird, leer ist. Sehen Sie diese leeren Klammern? Das bedeutet, dass die E-Mail-Adresse nicht in die $ -Adresse der Funktion swiftmailer eingetragen wird.

1
Bidhan Mondal

Ich habe das gleiche Problem und ich habe behoben. Bitte stellen Sie sicher, dass einige Dinge wie folgt geschrieben werden: 

   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 !');

                    });

Dies sollte Ihre emails.activation sein

    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>
       ---- 

Die Antwort auf Ihre Gründe, warum Sie $ email variable nicht in Ihre E-Mail-Versandfunktion aufrufen können. Sie müssen $ user variable aufrufen, dann können Sie Ihre gewünschte Variable als $ user-> variable schreiben

Danke dir :)

1
 Mail::send('emails.activation', $data, function($message){
        $message->from('[email protected]', 'name');
        $message->to($email)->subject($subject);
    });

Ich weiß nicht warum, aber in meinem Fall füge ich die Informationen von aus in die Funktion und es funktioniert gut.

1

Ich hatte heute ein sehr ähnliches Problem und die Lösung war so wie es ist ..

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

Es ist zwar 5.2 ...

mein grundlegendes Problem war, ich habe String anstelle von Array übergeben, also war Fehler 

->emailWrittenOutputTo('[email protected]'); // string, we need an array
0
Zaffar Saffee

Ihr Problem kann sein, dass die .env-Datei nicht ordnungsgemäß geladen wird und MAIL_USERNAME verwendet.

Um zu überprüfen, ob Ihre .env-Datei die E-Mail-Adresse ordnungsgemäß lädt, fügen Sie diese Zeile Ihrem Controller hinzu und aktualisieren Sie die Seite. 

dd(env('MAIL_USERNAME') 

Wenn es null angezeigt wird, führen Sie den folgenden Befehl über die Befehlszeile aus und versuchen Sie es erneut.

php artisan cache:clear
0
Jeff Zeller

Versuche dies.

Mail::send('emails.activation', $data, function($message) use($email,$subject){
            $message->to($email)->subject($subject);
        });
                ->with('title', "Registered Successfully.");
0
KTAnj

Diese Fehler treten auf, wenn die Variable $ email leer ist oder wenn die Mail nicht vorhanden ist. Versuchen Sie es mit einer vorhandenen Mail

0
fsalazar_sch

Datenvariablen ($ email, $ subject) scheinen global zu sein. Und Globale können nicht in Funktionen gelesen werden. Sie müssen sie als Parameter übergeben (empfohlene Methode) oder als global deklarieren.

Versuchen Sie es so:

Mail::send('emails.activation', $data, function($message, $email, $subject){
        $message->to($email)->subject($subject);
    });
            ->with('title', "Registered Successfully.");
0
WebHQ

Die einzige Lösung, die für mich funktioniert hat, ist die Änderung des folgenden Codes

 Mail::send('emails.activation', $data, function($message){
 $message->from(env('MAIL_USERNAME'),'Test'); 
 $message->to($email)->subject($subject);
});
0
jithesh jose

[Gelöst] Neos/swiftmailer: Die angegebene Adresse in der Mailbox [] entspricht nicht RFC 2822, 3.6.2.

Ausnahme in Zeile 261 von /var/www/html/vendor/Packages/Libraries/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php: Die angegebene Adresse in der Mailbox [] entspricht nicht RFC 2822, 3.6 .2.

private function _assertValidAddress($address)
{
    if (!preg_match('/^'.$this->getGrammar()->getDefinition('addr-spec').'$/D',
        $address)) {
        throw new Swift_RfcComplianceException(
            'Address in mailbox given ['.$address.
            '] does not comply with RFC 2822, 3.6.2.'
            );
    }
}

https://discuss.neos.io/t/solved-neos-swiftmailer-address-in-mailbox-given-does-not-comply-with-rfc-2822-3-6-2/3012

0
Matthew Farrell