2017-01-05 11 views
1

전자 메일을 보내려면 다음 코드를 작성했습니다.SMTP 서버가 암호를 허용하지 않았습니다.

static function sendEmail($email,$data,$type){ 


    $Email = new CakeEmail();  
    $Email->config('general'); 
    switch($type){ 
     case 1: 
      $Email->template('confirmation_free', null); 
      $Email->subject('Confirmation of registration with XXXXXXXXXXXXX'); 
      $Email->viewVars(array('Email'=>$data["Email"],'full_name'=>$data['full_name'],'Id'=>$data['Id'],'url'=>$_SERVER['SERVER_NAME'], 'password'=>$data['password'])); 
      break; 
     case 2: 
      $Email->template('group-invite', 'default'); 
      $Email->subject('XXXXXXXX Group Invite - Notification'); 
      $Email->viewVars(array('Email'=>$data["Email"],'Username'=>$data['Username'],'Id'=>$data['Id'],'url'=>$_SERVER['SERVER_NAME'])); 
      break; 
     case 3: 
      $Email->template('forgot_password', null); 
      $Email->subject('XXXXXXXX - Forgot Password'); 
      $Email->viewVars(array('Email'=>$data["Email"],'Key'=>$data['Key'],'url'=>$_SERVER['SERVER_NAME'],'Id'=>$data['id'])); 
      break; 
    } 
    $Email->to($email); 
    if($Email->send()) 
     return true; 
    else 
     return false; 
} 

다음과 같은 sendgrid smtp 설정.

public $general = array(
    'transport' => 'Smtp', 
    'from' => array('[email protected]' => 'XXXXXX Administrator'), 
    'host' => 'smtp.sendgrid.net', 
    'port' => 587, 
    'timeout' => 30, 
    'username' => 'XXXXXXX', 
    'password' => 'XXXXXX', 
    'client' => null, 
    'log' => false, 
    'emailFormat' => 'html' 
); 

내 로컬 및 dev 서버에서 완벽하게 작동합니다. 그러나 우리는 dev 서버에 SSL을 설치 한 후 다음과 같은 오류가 발생하기 시작했습니다. "SMTP 서버가 암호를 허용하지 않았습니다."

sendgrid 무료 계정을 사용하고 있습니다. SSL이있는 서버에서 전자 메일을 보내려면 유료 계정이 필요합니까?

답변

0

자일 론과 호스트를 접두사 중 하나가 필요, 이것을 시도하십시오.

public $smtp = array(
    'host' => 'ssl://smtp.gmail.com', 
      'port' => 465, 
      'username' => 'your email', 
      'password' => 'password', 
      'transport' => 'Smtp', 
      'log' => true, 
      'auth' => true, 
      'charset' => 'utf-8', 
      'headerCharset' => 'utf-8', 
    ); 
    $Email = new CakeEmail('smtp'); // In Controller where you want send mail 
    $Email->viewVars(array("data" => $data)); 
        $Email->template($template) 
         ->emailFormat('html') 
         ->to($reciever)        
         ->from(array($mail_from => "Ecotrak")) 
         ->subject($subject) 
         ->send(); 

email.php로

나는이 문제를 해결할 수 있기를 바랍니다.