Yii 向多个收件人发送电子邮件
Yii send email to multiple recipients
你好,我在这里使用 yiimail。我想向多个收件人发送电子邮件
这是我的代码
$mailcc = explode(",", $model->EMAIL_RECEIVER);
$mail = new YiiMailMessage;
$mail->from = Yii::app()->params['senderEmail'];
// $mail->setTo(array($emailReceiver));
$mail->setTo($model->receiver1);
$mail->setCC($mailCC);
$mail->Subject = $model->SUBJECT;
$mail->Body = $model->BODY_EMAIL;
Yii::app()->mail->send($mail);
$mailCC
从用户获取输入值,$model->receiver1
从数据库获取输入值。如果用户为 $mailCC
输入 2 个其他用户,这只会发送到第一封电子邮件,而不是两者。
例如:
$model->receiver1=email1@mail.com
$mailCC = array("email2@mail.com", "email3@mail.com") //this is from user input
电子邮件只会发送至 email1@mail.com & email2@mail.com
我试过了
$mailcc = explode(",", $model->EMAIL_RECEIVER);
$mail = new YiiMailMessage;
$mail->from = Yii::app()->params['senderEmail'];
// $mail->setTo(array($emailReceiver));
$mail->setTo($model->receiver1);
$mail->setCC(array($mailCC)); //this one with array
$mail->Subject = $model->SUBJECT;
$mail->Body = $model->BODY_EMAIL;
Yii::app()->mail->send($mail);
但是return这个错误
preg_match() expects parameter 2 to be string, array given
我哪里做错了?
你可以试试这个
$mail->addCC($mailCC[0]);
$mail->addCC($mailCC[1]);
希望它能奏效。这是我的完整 运行 代码
$message = new YiiMailMessage;
$message->view = 'registrationFollowup';
//userModel is passed to the view
$message->setBody(['userModel' => "test"], 'text/html');
$message->setTo("xxxx@gmail.com");
$message->addCC('yyyy@gmai.com');
$message->addCC('zzz@gmai.com');
$message->from = "pqr@gmail.com";
$status = Yii::app()->mail->send($message);
print_r($status); //print the number of recipient, which 3
我解决了这个问题
这是我的代码
$mailcc = explode(",", $model->EMAIL_RECEIVER);
$mail = new YiiMailMessage;
$mail->from = Yii::app()->params['senderEmail'];
foreach($mailcc as $to){
$mail->addTo(trim($to));
}
$mail->Subject = $model->SUBJECT;
$mail->Body = $model->BODY_EMAIL;
Yii::app()->mail->send($mail);
我们应该展开分隔符、循环收件人并更改为 addTo 而不是 setTo
感谢你们提供了一些解决方案
你好,我在这里使用 yiimail。我想向多个收件人发送电子邮件
这是我的代码
$mailcc = explode(",", $model->EMAIL_RECEIVER);
$mail = new YiiMailMessage;
$mail->from = Yii::app()->params['senderEmail'];
// $mail->setTo(array($emailReceiver));
$mail->setTo($model->receiver1);
$mail->setCC($mailCC);
$mail->Subject = $model->SUBJECT;
$mail->Body = $model->BODY_EMAIL;
Yii::app()->mail->send($mail);
$mailCC
从用户获取输入值,$model->receiver1
从数据库获取输入值。如果用户为 $mailCC
输入 2 个其他用户,这只会发送到第一封电子邮件,而不是两者。
例如:
$model->receiver1=email1@mail.com
$mailCC = array("email2@mail.com", "email3@mail.com") //this is from user input
电子邮件只会发送至 email1@mail.com & email2@mail.com
我试过了
$mailcc = explode(",", $model->EMAIL_RECEIVER);
$mail = new YiiMailMessage;
$mail->from = Yii::app()->params['senderEmail'];
// $mail->setTo(array($emailReceiver));
$mail->setTo($model->receiver1);
$mail->setCC(array($mailCC)); //this one with array
$mail->Subject = $model->SUBJECT;
$mail->Body = $model->BODY_EMAIL;
Yii::app()->mail->send($mail);
但是return这个错误
preg_match() expects parameter 2 to be string, array given
我哪里做错了?
你可以试试这个
$mail->addCC($mailCC[0]);
$mail->addCC($mailCC[1]);
希望它能奏效。这是我的完整 运行 代码
$message = new YiiMailMessage;
$message->view = 'registrationFollowup';
//userModel is passed to the view
$message->setBody(['userModel' => "test"], 'text/html');
$message->setTo("xxxx@gmail.com");
$message->addCC('yyyy@gmai.com');
$message->addCC('zzz@gmai.com');
$message->from = "pqr@gmail.com";
$status = Yii::app()->mail->send($message);
print_r($status); //print the number of recipient, which 3
我解决了这个问题 这是我的代码
$mailcc = explode(",", $model->EMAIL_RECEIVER);
$mail = new YiiMailMessage;
$mail->from = Yii::app()->params['senderEmail'];
foreach($mailcc as $to){
$mail->addTo(trim($to));
}
$mail->Subject = $model->SUBJECT;
$mail->Body = $model->BODY_EMAIL;
Yii::app()->mail->send($mail);
我们应该展开分隔符、循环收件人并更改为 addTo 而不是 setTo
感谢你们提供了一些解决方案