Como responder o destinatario ao recebecer o email

<div class="site-contact">
<h1><?= Html::encode($this->title) ?></h1>

<?php if (Yii::$app->session->hasFlash('contactFormSubmitted')): ?>

    <div class="alert alert-success">
        Obrigado por fazer a solicitação no Peça Agora. Responderemos o mais rápido possível!
    </div>

<?php else: ?>

    <p>
        Caso não tenha encontrado a peça desejada em nosso site, faça sua solicitação de orçamento aqui.
    </p>

    <div class="row">
        <div class="col-lg-5">

            <?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>

            <?= $form->field($model, 'name')->textInput(['autofocus' => true]) ?>

            <?= $form->field($model, 'email') ?>

            <?= $form->field($model, 'subject')->hint('Ex: Punto 2009 ELX 1.4') ?>

            <?= $form->field($model, 'body')->textArea(['rows' => 12, 'value' => $texto]) ?>

            <div class="form-group">
                <?= Html::submitButton('Enviar Solicitação',
                    ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
            </div>

            <?php ActiveForm::end(); ?>

        </div>
    </div>

<?php endif; ?>

Conttroler

    class OrcamentoController extends \yii\web\Controller
{
    public function actionIndex()
    {
        $model = new Orcamento();
        if ($model->load(Yii::$app->request->post()) && $model->contact('dev2.pecaagora@gmail.com')) {
            Yii::$app->session->setFlash('contactFormSubmitted');

            return $this->refresh();
        }

        return $this->render('index', [
            'model' => $model,
        ]);
    }
}

?>

Ao tentar responder o email do formulario, nao fica o email do destinario que preencheu, fica o meu email que esta no controller

Oi, @Deivd, tudo bem?

Pelo que entendi do seu código, quem está fazendo de fato o envio do email é o método contact da classe Orcamento.

$model->contact('dev2.pecaagora@gmail.com')

Para que a pessoa que receber o email possa responder diretamente ao usuário que fez o envio, procure, nesta mesma classe, se está definido ->setReplyTo([$this->email => $this->name])

Abaixo, coloco um exemplo completo do que eu imagino que seria o seu método contact:

Yii::$app->mailer->compose()
        ->setTo($email)
        ->setFrom([Yii::$app->params['senderEmail'] => Yii::$app->params['senderName']])
        ->setReplyTo([$this->email => $this->name]) // aqui está a instrução para responder ao usuário que enviou a mensagem do site
        ->setSubject($this->subject)
        ->setTextBody($this->body)
        ->send();

Espero ter te ajudado.

1 Like