问候语,
我需要向存储在名为mail的表中的多个收件人发送电子邮件,邮件中包含一个名为email的字段。
在我的控制器中,我创建了一个查询电子邮件的表邮件的操作。
后来我尝试使用逗号分隔的implode()函数,但显然它因邮件策略而无法正常工作。 它生成了错误的格式 - > " email1@mail.com,email2 @mail.com,email3 @mail.com"。
还尝试了每个循环和serialize()函数,但没有成功。
json_encode()函数接近我需要的东西,将一组电子邮件分开到类似 - > " email1@mail.com"," email2@mail.com"," email3@mail.com"。 但它会在值之前附加字段名称,并且邮件策略不接受它。
到目前为止,我仍然坚持使用以下代码:
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& #34;," mail3@mail.com")
有没有办法解决这个问题? 非常感谢提前。
答案 0 :(得分:1)
要获取带有数字索引的电子邮件数组,请使用<xsl:template match="text()">
<xsl:value-of select="replace(., 'xxx', 'yyy')"/>
</xsl:template>
参数 \ PDO :: FETCH_COLUMN 调用queryAll()
方法,然后将返回的数组传递给邮件程序&#39; s $fetchMode
方法。喜欢这个
setTo()
请参阅queryAll() documentation和list of pdo constant,包括以 PDO :: FETCH _ 开头的可用提取模式。另外假设您使用的是yii2默认邮件程序,请查找有关如何设置收件人的swiftmailer documentation