在yii我正在创建sendemail功能。我正在使用邮件程序扩展,并在进行SMTP的所有设置后正常工作。我在控制器as-
中创建了方法actionEmailpublic function actionEmail()
{
$model=new User;
$mailer = Yii::createComponent('application.extensions.mailer.EMailer');
$mailer->IsSMTP();
$mailer->IsHTML(true);
$mailer->SMTPAuth = true;
$mailer->SMTPSecure = "ssl";
$mailer->Host = "smtp.gmail.com";
$mailer->Port = 465;
$mailer->CharSet = 'UTF-8';
$mailer->Username = "abc@gmail.com";
$mailer->Password = "abc";
$mailer->From = "xyz@gmail.com";
$mailer->FromName = "Balaee.com";
$mailer->AddAddress('shilpa.kirad@shailani.com');
$mailer->Subject = "welcome to Balaee";
$mailer->IsHTML(true);
// $html = $this->renderPartial('myview',array('content'=>'Hello World'),true);
$ mailer-> Body =“
if($mailer->Send()) {
echo "Please check mail";
//Yii::app()->user->setFlash('register','Thank you for contacting us. We will respond to you as soon as possible.');
// $this->refresh();
}
else {
echo "Fail to send your message!";
}
}
此方法正确实现。它正在发送邮件到邮件中提到的地址 - > AddAdress.But现在我想从对应于特定用户ID的数据库中检索电子邮件ID并向他发送邮件。即我不想为此字段插入硬编码值。那我怎么能这样做呢。请帮帮我。
答案 0 :(得分:1)
用于获取使用用户ID以获取电子邮件地址
$user_model=User::model()->findByPk($id);
并在电子邮件中设置为
$mailer->AddAddress($user_model->email_id);
其中id和email_id是表列名。 检查其他方式。 http://www.yiiframework.com/doc/guide/1.1/en/database.dao
答案 1 :(得分:0)
要完成此操作,您可以使用以下查询从数据库中获取电子邮件ID:
$email = SELECT email FROM USER WHERE user_id = "X";
此处X是您要发送电子邮件的用户的user_id。
并在收件人的电子邮件字段中提供此$email
。感谢。