在yii中使用电子邮件格式

时间:2016-02-01 10:48:02

标签: yii phpmailer

我能够向接收者发送简单的电子邮件。现在我必须能够从现有的不同格式中选择一种电子邮件格式,并且此模板必须出现在我的消息框中。我也应该能够更改模板的内容在发送给接收者之前出现在消息框中。如何做到这一点?

我的观看表格代码

<div class="form wide">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'mail-form',
'enableAjaxValidation'=>true,
'htmlOptions' => array('enctype' => 'multipart/form-data'), // ADD THIS
)); ?>
<div class="row col2">
    <?php echo $form->labelEx($model,'email_from'); ?>
    <?php echo $form->textField($model,'email_from',array('size'=>50,'maxlength'=>50,'readonly'=>'readonly')); ?>
    <?php echo $form->error($model,'email_from'); ?>
</div>
<div class="row col2">
    <?php echo $form->labelEx($model,'email_to'); ?>
    <?php echo $form->textField($model,'email_to',array('size'=>50,'maxlength'=>50)); ?>
    <?php echo $form->error($model,'email_to'); ?>
</div>
<div style="clear:both"></div>
<div class="row col2">
    <?php echo $form->labelEx($model,'subject'); ?>
    <?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>250)); ?>
    <?php echo $form->error($model,'subject'); ?>
</div>
<div style="clear:both"></div>
<div class="row col2">
    <?php echo $form->labelEx($model,'message'); ?>
    <?php echo $form->textArea($model,'message',array('style'=>'width: 680px; height: 300px;')); ?>
    <?php echo $form->error($model,'message'); ?>
</div>
<div style="clear:both"></div>
<div class="row buttons">
    <?php
    echo CHtml::submitButton($model->isNewRecord ? 'Send' : 'Send',array('class' => 'btn'));
     ?>
</div>

<?php $this->endWidget(); ?>
</div><!-- form -->

2 个答案:

答案 0 :(得分:0)

尝试以下代码:

public function actionContact() {
    $model = new ContactForm();
    if ($model->load(Yii::$app->request->post()) && $model->validate()) {

        $status = Yii::$app->mailer->compose()
            ->setTo($model->email_to)
            ->setFrom([$model->email_from => $model->email_from])
            ->setSubject($model->subject)
            ->setTextBody($model->message)
            ->send();

        if ($status) {
            Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
        } else {
            Yii::$app->session->setFlash('error', 'There was an error sending email.');
        }
        return $this->refresh();
    } else {
        return $this->render('contact', [
            'model' => $model,
        ]);
    }
}

您还可以在views文件夹下创建email_template目录,并创建模板文件,您可以在其中设置电子邮件模板内容。

答案 1 :(得分:0)

你可以使用js或ajax来做同样的事情。 1:使用jQuery: 我假设您正在使用jQuery。所以使用ajax。

Enable UI Automation