0

yii では、メーラー拡張機能を使用して actionEmail メソッドを作成しています。FromEmail、ToEmail、Subject、Message の 4 つのパラメーターを受け入れます。出力を確認するために、ハードコードされたパラメーターの値を送信しています。

public function actionCreate($FromEmail='abc@gmail.com',$ToEmail='xyz@gmail.com',$Subject='Project',$Message='Hiee')
{ 

    //using mailer extension
    $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@shailani.com";
    $mailer->Password = "abc";
    $mailer->From = $FromEmail;
    $mailer->FromName = "Balaee.com";
    //$mailer->AddAddress('shilpakirad@gmail.com');
    $mailer->AddAddress($ToEmail);
    $mailer->Subject = $Subject;
    $mailer->IsHTML(true);
    //  $html = $this->renderPartial('myview',array('content'=>'Hello World'),true);
    $mailer->Body=$Message;

    if($mailer->Send()) {

        echo "Please check mail";
    }
    else {
        echo "Fail to send your message!";
    }
}

ユーザーコントローラーでこのメソッドを作成しました。しかし、それは実行されていません。私を助けてください

4

1 に答える 1

2

アクション関数にパラメーターを指定する場合、これらは、GET または POST を介して指定する必要があるパラメーターを定義します。通常、すべてのパラメーターが指定されていない限り、この関数には何もルーティングできません。あなたの場合、デフォルト値を割り当てているので問題ありません。通常の URL 形式 (例: index.php/?r=controller/email) で関数を呼び出すことができるはずです。カスタム値は同じ URL で指定できます: index.php/?r=controller/email&Subject=testing+email

おそらく、エラーログをチェックすることから始めて、そこに何かが出力されているかどうかを確認してください。そうでない場合は、関数の内容全体をコメントアウトして、単純にエコーなどを実行します。このようにして、少なくとも関数が呼び出されたことを確認できます。その後、コードを再度追加して、すべてが機能するかどうかを確認することができます。

于 2012-11-28T11:28:20.360 に答える