2017-07-13 12 views
0

私はSMTPを使用して自分のサーバーからメールを送信しようとしています。すべてうまくいくが、メールは送信されない。 どうしたらいいですか?$toという値は取れません。ここでSMTPを使用してメールを送信する方法。 Yiiフレームワーク?

は私の機能コードです:ここで

public function sendEmail($to='',$from='',$subject='',$body='' , $record_id='') 
    {     
     $from1=Yii::app()->functions->getOptionAdmin('global_admin_sender_email'); 
     if (!empty($from1)){ 
      $from=$from1; 
     }  

     $email_dsiabled_auto_break=getOptionA('email_dsiabled_auto_break'); 
     if($email_dsiabled_auto_break!=1){ 
      $body=nl2br($body); 
     } 

     $send_status=false; $send_msg=''; 

     $email_provider=Yii::app()->functions->getOptionAdmin('email_provider'); 
     //dump($email_provider); 
     switch ($email_provider) { 
      case "smtp": 
       $smtp_host=Yii::app()->functions->getOptionAdmin('smtp_host'); 
       $smtp_port=Yii::app()->functions->getOptionAdmin('smtp_port'); 
       $smtp_username=Yii::app()->functions->getOptionAdmin('smtp_username'); 
       $smtp_password=Yii::app()->functions->getOptionAdmin('smtp_password'); 

       $mail=Yii::app()->Smtpmail; 

       Yii::app()->Smtpmail->Host=$smtp_host; 
       Yii::app()->Smtpmail->Username=$smtp_username; 
       Yii::app()->Smtpmail->Password=$smtp_password; 
       Yii::app()->Smtpmail->Port=$smtp_port; 

       $mail->SetFrom($from, ''); 
       $mail->Subject = $subject; 
       $mail->MsgHTML($body); 
       $mail->AddAddress($to, ""); 
       if($mail->Send()) {     
        $mail->ClearAddresses();  
        $send_msg=t("error occurred");    
       } else {      
        $mail->ClearAddresses(); 
        $send_status=true; 
        $send_msg="sent"; 
       }      
       break; 

私のビューのコードは次のとおりです。

<div class="uk-form-row"> 
     <label class="uk-form-label"><?php echo Yii::t("default","SMTP port")?></label> 
     <?php 
     echo CHtml::textField('smtp_port', 
     Yii::app()->functions->getOptionAdmin('smtp_port'), 
     array(
     'class'=>"uk-form-width-large"  
    )) 
     ?> 
    </div> 

    <div class="uk-form-row"> 
     <label class="uk-form-label"><?php echo Yii::t("default","Username")?></label> 
     <?php 
     echo CHtml::textField('smtp_username', 
     Yii::app()->functions->getOptionAdmin('smtp_username'), 
     array(
     'class'=>"uk-form-width-large"  
    )) 
     ?> 
    </div> 

    <div class="uk-form-row"> 
     <label class="uk-form-label"><?php echo Yii::t("default","Password")?></label> 
     <?php 
     echo CHtml::textField('smtp_password', 
     Yii::app()->functions->getOptionAdmin('smtp_password'), 
     array(
     'class'=>"uk-form-width-large"  
    )) 
     ?> 
    </div> 

    <p class="uk-text-danger uk-text-small"><?php echo t("Note: When using SMTP make sure the port number is open in your server")?>.<br/> 
    <?php echo t("You can ask your hosting to open this for you")?>. 
    </p> 

    </li> 

私はいくつかの質問に呼ば: How to send Mail Using SMTP?

私はエラーが何であるかを取得していません。あらゆる種類の助けを歓迎します。

答えて

0

$mail->Send()が正常に完了するとエラーが発生し、それ以外の場合は$send_status=true;が設定されます。助けをhttp://www.yiiframework.com/doc-2.0/guide-tutorial-mailing.html

+0

ありがとう:

はそれを

if($mail->Send()) { $mail->ClearAddresses(); $send_status=true; $send_msg="sent"; } else { $mail->ClearAddresses(); $send_msg=t("error occurred"); } 

を元に戻すと公式ドキュメントを参照してくださいしてください。問題が解決しました。あなたはYii2用のリンクを提供しており、私はYii 1.1を使用しています。 –

+0

@GaneshAherよろしくお願いします。 – Pave

関連する問題