CI 묻고 답하기

제목 $this->email->send()를 비동기호출할수 있나요?
글쓴이 gamkuha 작성시각 2012/02/08 14:04:00
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 25141   RSS
다수의 사용자들에게 $this->email->send()로 이메일을 발송 하는데요.

지금은 발송이 완료될때까지 응답이 없습니다, 이걸 비동기로 호출할수 있을까요?

발송결과나 응답은 필요없구요, 호출하고 바로 리턴할수있을까요?

아니면 페이지호출시 이메일을 비동기로 발송하는, 다른 일반적인 방법 좀 알려주세요 ㅠㅠ



 다음글 베이스 클래스를 만들고 그것의 확장클래스를 만들려고하는... (8)
 이전글 encrypt class를 이용한 암호화 결과에 대한 ... (4)

댓글

한대승(불의회상) / 2012/02/08 15:24:20 / 추천 0
아래를 URL을 참조 하세요 ^^

http://kr.php.net/manual/en/ref.pcntl.php
변종원(웅파) / 2012/02/08 16:25:11 / 추천 0
send()를 ajax로 호출하시면....
들국화 / 2012/02/08 16:29:38 / 추천 0
 ajax 로 async 하게 호출 하시거나...
아래 와 같이 소켓으로 처리 하면 빠를듯 하네요...
http://wezfurlong.org/blog/2005/may/guru-multiplexing/
느림보 / 2012/02/08 19:08:12 / 추천 0

제가 ajax로 호출해서 사용중입니다..

js 부분

function reg_pass_find( reg_name, reg_id, ju_fa, ju_la )
{
 var jumin = ju_fa+ju_la;
 $.ajax({
   type: 'POST',
   url: '/member/member/reg_pass_find',
   data: 'reg_name=' + reg_name + '&jumin=' + jumin + '®_id=' + reg_id,
   success: function(result){
    if (result == 1) 
    {
     $('#reg_pass').show();
     $('#reg_pass').html
     ("아이디가 존재하지 않습니다.<input type='button' value='닫기' onclick='cls(this);'>"); 
    }
    else
    {
     $('#reg_pass').show();
     $('#reg_pass').html
     ("회원님의 이메일" + result + "로 임시비밀 번호를 전송합니다.
     <input type='button' value='닫기' onclick='cls(this);'>");
    }
   }
 });
}
controller부분
function reg_pass_find()
 {
  
  $reg_name = $this->input->post('reg_name');
  $reg_jumin = $this->input->post('jumin');
  $reg_id = $this->input->post('reg_id');
  $this->load->model('member/member_s');
  $this->load->model('member/member_u');
  $reg_pass = $this->member_s->reg_pass_find( $reg_name, $reg_id, $reg_jumin);
  $find_ok = $reg_pass->num_rows();
  $reg_email = $reg_pass->row();
  if( $find_ok != 0 )
  {
   $reg_email = $reg_email->reg_email;
   echo $reg_email;
   $pass = "";
   $num = array('A','B','C','D','E','F','G','H','I','J','K',
                'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
                 1,2,3,4,5,6,7,8,9,0);
     for ($i = 0; $i < 6; $i++) 
     {
       $rand = rand(0,35);
    $pass .= $num[$rand];
     }
     $this->member_u->reg_pass_up( $reg_name, $reg_id, $reg_jumin, $pass );
     $this->load->library('email');
   $this->email->from('redhyumu@gmail.com', '내이름');
   $this->email->to($reg_email); 
   $this->email->subject('임시비밀번호를 보내드립니다.');
   $this->email->message("$pass 로 변경되셨습니다."); 
   $this->email->send();
  }
  else
  {
   echo 1;
  }
 }
이런방식으로 해도 되긴되던데;;;  ㅜㅜ 저는 하수라서 코드 방식이라던가 데이터 변수라던가 굉장히 지저분

하게 만들어 내서....좋은 소스인지는 모르겠습니다..ㅜㅜ
gamkuha / 2012/02/08 19:55:19 / 추천 0
AJAX로 처리해야 될거 같네요.많은 도움이 되었습니다.  답변감사합니다.