Я пытаюсь создать и html-страницу как тело для электронной почты. Как передать его в свой setBody() с помощью yiiMail?

У меня есть страница.php со следующим кодом:

Hi <!--?php echo $user['first_name'].' '.$user['last_name']?-->,
 To reset your password, please go to the following page:
 
 <!--?php 
 $url = Yii::app()--->createAbsoluteUrl('user/reset/id/'. $key);
 echo "<a href="{$url}" target="_blank">{$url}</a>";
 ?>
 
 Your password will be automatically reset, and a new password will be emailed to you.

Я хочу, чтобы это было встроено в функцию, которую я создал в контроллере внутри setBody() здесь:

public function emailAll($url)
 {

 $this->set_mail_settings();
 $message = new YiiMailMessage; 

 $emails = Yii::app()->db->createCommand("SELECT group_concat(email) as em FROM persons WHERE party_id != 184")->queryRow();
 $email_ids = explode(",",$emails["em"]);
 $message->setBcc($email_ids);
 $message->setBody('To view, click here: '.$url);
 $message->subject = 'New Announcement Posted!';
 $message->addTo('[removed_email]');
 $message->from = Yii::app()->params['adminEmail'];
 Yii::app()->mail->send($message); 
 }

Ссылка URL, которую я хочу внутри тела, закодирована из actionCreate(), которая находится здесь:

$currentid = Yii::app()->db->createCommand("select id from content where id = (select max(id) from content)")->queryRow();
 Yii::app()->session['announcement_message'] = 'You have successfully created an announcement.';

 $url = Yii::app()->createAbsoluteUrl('announcement/view/id/'. $currentid["id"]);

 $this->emailAll($url);

 $this->redirect(array('view','id'=>$model->id));

Я просто пытаюсь понять, как бы я отправил эту страницу.php, содержащую html внутри в setBody() вместе с $ url, который я передал. Любая помощь?

1 ответ

Для этого вы храните файл.php почтового шаблона в виде представления в соответствующей папке просмотра, затем вызываете

$message->setBody(
 $this->renderPartial("_yourTemplateFileName",
 array("key"=>$key,'user'=>$user),true,false)
 );

RenderPartial может обрабатывать файл и возвращать результат, устанавливая третий возвращаемый параметр как истинный, четвертый параметр предназначен для обработки данных Js, не требуемых в этом контексте.

licensed under cc by-sa 3.0 with attribution.