Arrays Yii2-邮件-将邮件发送到数据库中的电子邮件行

Arrays Yii2-邮件-将邮件发送到数据库中的电子邮件行,arrays,string,yii2,send,mailer,Arrays,String,Yii2,Send,Mailer,问候, 我需要向几个收件人发送电子邮件,这些收件人存储在一个名为mail的表中,该表有一个名为email的字段 在我的控制器中,我创建了一个查询邮件表中电子邮件的操作 后来,我尝试使用以逗号分隔的introde()函数,但显然由于mailer策略的原因,该函数不起作用。 它生成了错误的格式->”email1@mail.com, email2@mail.com, email3@mail.com“ 还尝试了for each循环和serialize()函数,但未成功 json_encode()函数与我

问候,

我需要向几个收件人发送电子邮件,这些收件人存储在一个名为mail的表中,该表有一个名为email的字段

在我的控制器中,我创建了一个查询邮件表中电子邮件的操作

后来,我尝试使用以逗号分隔的introde()函数,但显然由于mailer策略的原因,该函数不起作用。 它生成了错误的格式->”email1@mail.com, email2@mail.com, email3@mail.com“

还尝试了for each循环和serialize()函数,但未成功

json_encode()函数与我所需要的非常接近,它将一系列电子邮件分隔为->之类的内容。”email1@mail.com", "email2@mail.com", "email3@mail.com". 但它将字段名附加在值之前,并且mailer策略不接受该字段名

到目前为止,我一直使用以下代码:

public function actionSucesso()
{
    $query = new Query;
    $query->select('email')
    ->from('mail');
    $command = $query->createCommand();
    $enderecos = $command->queryAll();

    $enviar = json_encode($enderecos);

    Yii::$app->mailer->compose()
        ->setFrom('atf@website.com')
        ->setTo($enviar)
        ->setSubject('Oferta de jogo no site da ATF.')
        ->setTextBody('Aceda em: http://atf.besaba.com/index.php?r=playschedule%2Findex2')
        ->send();
    return $this->render('sucesso');
}
我认为,为了使邮件程序能够工作并发送消息,正确的格式必须是:->setTo(“mail1@mail.com", "mail2@mail.com", "mail3@mail.com))

有没有办法解决这个问题?
非常感谢。

要获取带有数字索引的电子邮件数组,请使用
$fetchMode
参数\PDO::FETCH_列调用
queryAll()
方法,然后将返回的数组传递给mailer的
setTo()
方法。像这样

$enderecos = $command->queryAll(\PDO::FETCH_COLUMN);

//$enviar = json_encode($enderecos); <- this line no needed

Yii::$app->mailer->compose()
    ->setFrom('atf@website.com')
    ->setTo($enderecos) //you pass an array of email addresses
    ->setSubject('Oferta de jogo no site da ATF.')
    ->setTextBody('Aceda em: http://atf.besaba.com/index.php?r=playschedule%2Findex2')
    ->send();
$enderecos=$command->queryAll(\PDO::FETCH\u列);
//$enviar=json_编码($enderecos);mailer->compose()
->设置自('atf@website.com')
->setTo($enderecos)//传递一组电子邮件地址
->设置主体(“Oferta de jogo无现场自动变速箱油”)
->setTextBody('Aceda em:http://atf.besaba.com/index.php?r=playschedule%2Findex2')
->send();

请参阅并包括以PDO::fetch\开头的可用获取模式。另外,假设您使用的是yii2默认邮件程序,请在此处查找有关如何设置收件人的信息。字段的名称已消失,但mailer不接受输入并抛出错误:邮箱中的地址已给定[[”andre73@live.com.pt"],["andregc73@gmail.com“]]]不符合RFC 2822,3.6.2的要求。尝试了其他PDO::FETCH \->但没有解决此问题:(很抱歉,有点误导您,请使用\PDO::FETCH_列。不幸的是,该列不起作用。它会出现错误:邮箱中的地址给定[”andre73@live.com.pt","andregc73@gmail.com“]]不符合RFC 2822,3.6.2的要求。可能是因为双[[在开始和结束时]?