gordy
Мастер
- Регистрация
- 25 Авг 2015
- Сообщения
- 228
- Реакции
- 32
- Автор темы
- #1
использую старую версию движка yii v1.1.14
написал модель
контроллер
представление
подскажите пожалуйста очень срочно нужно, не отправляет почему то письма...
в конфиг прописал так
написал модель
PHP:
<?php
/**
* ContactForm class.
* ContactForm is the data structure for keeping
* contact form data. It is used by the 'contact' action of 'SiteController'.
*/
class ContactForm extends CFormModel
{
public $name;
public $secondName;
public $phone;
public $email;
public $subject;
public $body;
public $verifyCode;
/**
* @return array the validation rules.
*/
public function rules()
{
return [
// name, email, subject and body are required
[['name', 'email', 'secondName', 'phone', 'subject', 'body'], 'required'],
// email has to be a valid email address
['email', 'email'],
// verifyCode needs to be entered correctly
/* ['verifyCode', 'captcha'],*/
];
}
/**
* @return array customized attribute labels
*/
public function attributeLabels()
{
return [
'verifyCode' => 'Подтвердите код',
'name' => 'Имя',
'secondName' => 'отчество',
'phone' => 'номер телефона',
'email' => 'E-mail',
'subject' => 'Тема',
'body' => 'Сообщение',
];
}
/**
* Sends an email to the specified email address using the information collected by this model.
* @param string $email the target email address
* @return bool whether the model passes validation
*/
/* функция отправки письма на почту */
public function contact()
{
$content .= "<p><b>Имя пользователя: </b>" . $this->name . "</p>";
$content .= "<p><b>Отчество: </b>" . $this->secondName . "</p>";
$content .= "<p><b>E-mail:</b> " . $this->email . "</p>";
$content .= "<p><b>Номер телефона:</b> " . $this->phone . "</p>";
$content .= "<p>" . $this->body . "</p>";
/* Проверяем форму на валидацию */
if ($this->validate()) {
Yii::$app->mailer->compose("@app/mail/layouts/html", ["content" => $content])
->setFrom([Yii::$app->params['adminEmail'] => 'Колледж СРМК']) /* от кого */
->setTo(Yii::$app->params['adminEmail']) /* куда */
->setSubject($this->subject) /* имя отправителя */
->setTextBody($this->body)->setCharset('UTF-8') /* текст сообщения */
->mail(); /* функция отправки письма */
return true;
}
return false;
}
}
контроллер
PHP:
/**
* Displays the contact page
*/
public function actionContact()
{
$model=new ContactForm;
if(isset($_POST['ContactForm']))
{
$model->attributes=$_POST['ContactForm'];
if($model->validate())
{
$name='=?UTF-8?B?'.base64_encode($model->name).'?=';
$subject='=?UTF-8?B?'.base64_encode($model->subject).'?=';
$headers="From: $name <{$model->email}>\r\n".
"Reply-To: {$model->email}\r\n".
"MIME-Version: 1.0\r\n".
"Content-Type: text/plain; charset=UTF-8";
mail(Yii::app()->params['adminEmail'],$subject,$model->body,$headers);
Yii::app()->user->setFlash('contact','Благодарим Вас за обращение к нам. Мы ответим Вам как можно скорее.');
$this->refresh();
}
}
$this->render('contact',array('model'=>$model));
}
представление
PHP:
<?php
/* @var $this SiteController */
/* @var $model ContactForm */
/* @var $form CActiveForm */
$this->pageTitle=Yii::app()->name . ' - Contact Us';
$this->breadcrumbs=array(
'Contact',
);
?>
<h1>Contact Us</h1>
<?php if(Yii::app()->user->hasFlash('contact')): ?>
<div class="flash-success">
<?php echo Yii::app()->user->getFlash('contact'); ?>
</div>
<?php else: ?>
<p>
If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.
</p>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'contact-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name'); ?>
<?php echo $form->error($model,'name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'secondName'); ?>
<?php echo $form->textField($model,'secondName'); ?>
<?php echo $form->error($model,'secondName'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'phone'); ?>
<?php echo $form->textField($model,'phone'); ?>
<?php echo $form->error($model,'phone'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'email'); ?>
<?php echo $form->textField($model,'email'); ?>
<?php echo $form->error($model,'email'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'subject'); ?>
<?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>128)); ?>
<?php echo $form->error($model,'subject'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'body'); ?>
<?php echo $form->textArea($model,'body',array('rows'=>6, 'cols'=>50)); ?>
<?php echo $form->error($model,'body'); ?>
</div>
<?php if(CCaptcha::checkRequirements()): ?>
<div class="row">
<?php echo $form->labelEx($model,'verifyCode'); ?>
<div>
<?php $this->widget('CCaptcha'); ?>
<?php echo $form->textField($model,'verifyCode'); ?>
</div>
<div class="hint">Please enter the letters as they are shown in the image above.
<br/>Letters are not case-sensitive.</div>
<?php echo $form->error($model,'verifyCode'); ?>
</div>
<?php endif; ?>
<div class="row buttons">
<?php echo CHtml::submitButton('Submit'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
<?php endif; ?>
подскажите пожалуйста очень срочно нужно, не отправляет почему то письма...
в конфиг прописал так
PHP:
'dpsMailer' => array(
'class' => 'ext.dpsmailer.components.dpsMailer',
'sViewPath' => '[/path/to/mail/views]',
'aFrom' => array( '[***@bk.ru]' => '[from]' ),
'aBehaviors' => array(
'swift' => array(
'class' => 'ext.dpsmailer.behaviors.dpsSwiftMailerBehavior',
'sLibPath'=> '[/path/to/Swift/Swift-5.0.0/lib]',
'sTransport' => 'Swift_SmtpTransport',
'aOptions' => array(
'Host' => 'smtp.mail.ru',
'Port' => 587,
'Encryption' => 'ssl',
'Username' => '***@bk.ru',
'Password' => '********',
),
),
),
),
Последнее редактирование: