web-dev-qa-db-ja.com

[]で指定されたメールボックスのアドレスは、RFC 2822、3.6.2に準拠していません。電子メールが変数にある場合

正しいメールアドレスを持っています。エコーしましたが、送信すると次のエラーが表示されます。

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

どうして? laravel(Swift mailer)を使用してメールを送信します。

$email = [email protected]

そして、それを送信すると、エラーがスローされます。

しかし、文字列を直接使用すると、送信されます。

ブロックは次のとおりです。

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

スコープのために電子メール変数は空です。次のようなuse句を設定する必要があります。

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

(PHPでSwiftMailerを使用しています)

誤って$ emailの文字列を送信していたときに、そのようなエラーが発生していました

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

送信するつもりだったとき

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

ログに使用している文字列化関数を誤って実行していたため、アレイの送信を再開するとエラーはなくなりました。

3
Ghost8472

電子メールアドレス変数が空白でないことを確認してください。使用して確認

print_r($ variable_passed);

3

その理由は、送信されているメールアドレスが空白だからです。それらの空の括弧を参照してください?つまり、電子メールアドレスはswiftmailer関数の$ addressに入れられていません。

1
Bidhan Mondal

私は同じ問題に直面し、修正しました。以下のように書かれていることを確認してください。

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

                    });

これはemails.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>
       ---- 

$ email変数をメール送信機能に呼び出せない理由に対する答え。 $ user変数を呼び出す必要があります。次に、目的の変数を$ user-> variableとして記述できます。

ありがとうございました :)

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

理由はわかりませんが、私の場合は、fromの情報を関数に入れればうまくいきます。

1

今日は非常によく似た問題があり、解決策はそのままでした。

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

It laravel 5.2ただし...

私の基本的な問題は、配列ではなく文字列を渡していたため、エラーが

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

問題は、.envファイルが正しく読み込まれず、MAIL_USERNAMEを使用していないことです。

.envファイルが電子メールアドレスを適切にロードしているかどうかを確認するには、この行をコントローラーに追加してページを更新します。

dd(env('MAIL_USERNAME') 

Nullが表示される場合は、コマンドラインから次のコマンドを実行し、再試行してください。

php artisan cache:clear
0
Jeff Zeller

これを試して。

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

これらのエラーは、$ email変数が空の場合、またはメールが存在しない場合に発生します。既存のメールで試してください

0
fsalazar_sch

データ変数($ email、$ subject)はグローバルなようです。また、関数内でグローバルを読み取ることはできません。これらをパラメーターとして渡すか(推奨される方法)、グローバルとして宣言する必要があります。

この方法を試してください:

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

私のために働いた唯一の解決策は、次のコードを変更することです

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

[解決しよう] Neos/swiftmailer:指定されたメールボックスのアドレス[]はRFC 2822、3.6.2に準拠していません

/var/www/html/vendor/Packages/Libraries/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.phpの261行目の例外:指定されたメールボックスのアドレスは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