从数据库中检索email-id并向其发送邮件

时间:2012-11-26 13:00:56

标签: yii extension-methods mailer

在yii我正在创建sendemail功能。我正在使用邮件程序扩展,并在进行SMTP的所有设置后正常工作。我在控制器as-

中创建了方法actionEmail
public 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 =“

欢迎


点击链接获取其他详细信息”。$ url =“http://”。$ _ SERVER ['HTTP_HOST '] $ _ SERVER [' REQUEST_URI'];

    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并向他发送邮件。即我不想为此字段插入硬编码值。那我怎么能这样做呢。请帮帮我。

2 个答案:

答案 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。感谢。