0

在 yii 中,我正在使用邮件扩展创建 actionEmail 方法。它将接受四个参数,分别是 FromEmail、ToEmail、Subject 和 Message。为了检查输出,我正在发送参数的硬编码值。

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

也许从检查错误日志开始,看看那里是否有任何输出。如果没有,我会注释掉整个函数内容,然后简单地做一个 echo 什么的。这样,您至少可以确保调用该函数。之后,您可以重新添加代码,也许可以分段查看是否一切正常。

于 2012-11-28T11:28:20.360 回答