2014-04-28 3 views
1

내 컨트롤러 동작은 다음과 같습니다.Yii 문의 양식이 이메일을 보내지 않음

public function actionContact() 
    { 
     $model=new ContactForm; 
     if(isset($_POST['ContactForm'])) 
     { 
      $model->attributes=$_POST['ContactForm']; 
      if($model->validate()) 
       { 
       $headers="From: {$model->email}\r\nReply-To: {$model->email}"; 
       mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers)`enter code here`; 
       Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.'); 
       $this->refresh(); 
      } 
     } 
     $this->render('contact',array('model'=>$model)); 
} 

데이터의 유효성을 검사하고 성공 메시지를 표시합니다. 하지만 이메일 isn; t는 내 adminEmail 주소로 전송됩니다.

감사합니다.

+0

@Samuel Liew를 사용하고, 그리고 어떻게 도움이됩니까? – crafter

+0

mail() 함수는 오류 메시지를 반환하지 않을 수 있습니다. 웹 서버 로그를보고 오류가보고되었는지 확인하십시오. – crafter

답변

2

플래시 메시지의 유효성을 검사하고 표시하는 경우 메일 서버와 관련이 있습니다. yii과 관련이 없습니다. 메일 서버를 살펴보고 제대로 작동하는지 확인하는 것이 좋습니다.

+0

확인. 고마워. 메일에 관해서는, MAMP와 라이브 서버 http://esolution.ws/에있는 localserver에서 Hostgator에서 호스팅하고 있습니다. 또한 메일 링 기능이이 웹 사이트의 다른 부분에서 완벽하게 작동합니다. 사실 그것은 연락처 페이지를 제외한 사이트 전체에서 완벽하게 작동합니다. http://esolution.ws/index.php/site/contact 시도해보십시오. 나는 무엇이든을 당신에게 알릴 것이다. – aumio

+0

완료, 이메일에 대한 설명을 게시 해주세요. u가 있으면 알려주세요. – Elbek

+0

나는 어떤 설명을 묻고 있는지 잘 모르겠습니다. – aumio

2

localhost에서 수행하는 경우 메일 서버를 구성해야합니다. 로컬 호스트에서 메일을 보내는 데 smtp를 사용할 수 있습니다. 메일 서버에 구성 할 필요가 없습니다. config/main.php 에서처럼 설정할 수 있습니다. 이 로컬 호스트에 대한

'mail' => array(
 
      'class' => 'application.extensions.yii-mail.YiiMail', 
 
      'transportType' => 'php', 
 
      'transportOptions'=>array(
 
      'host'=>'yourhostname', 
 
      'port'=>'your port no' 
 
      ), 
 
      'viewPath' => 'application.views.mail', 
 
      'logging' => true, 
 
      'dryRun' => false 
 
     ),

참고 : 나는 YiiMail 확장

관련 문제