0

yii で sendemail 機能を作成しています。私はメーラー拡張機能を使用しており、SMTP のすべての設定を行った後、正しく機能しています。コントローラーでメソッド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に記載されているアドレスにメールを送信しています.しかし、特定のユーザーのIDに対応するデータベースから電子メールIDを取得し、彼にメールを送信したい. つまり、このフィールドにハードコードされた値を挿入したくありません。では、どうすればこれを行うことができますか。私を助けてください。

4

2 に答える 2

1

fetch の場合、ユーザーの 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

于 2012-11-26T14:39:54.107 に答える
0

これを行うには、次のクエリを使用してデータベースから電子メールIDを取得できます。

  $email = SELECT email FROM USER WHERE user_id = "X"; 

ここで、Xはメールを送信するユーザーのuser_idです。

そして、これ$emailを受信者の電子メールフィールドに入力します。ありがとう。

于 2012-11-26T13:26:38.420 に答える