2013-02-03 2 views
0

이 작업을 시작할 위치가 확실하지 않으므로이 작업을 수행하는 방법에 대한 대답을 찾고 있습니다."전자 메일을 보는 데 문제가 있습니까? 온라인으로 전자 메일을 봅니다." Codeigniter 전자 메일의 고유 링크

새 사용자가 내 Codeigniter 사이트에 계정을 만들면 등록하는 방법에 대한 전자 메일을 보냅니다 (매우 일반적 임). 이메일을 보내는 방법은 다음과 같습니다.

... 

$subject = 'Welcome to __________, ' . $firstName . '!'; 
$emailData = array(
    'name' => $name, 
    'blah' => $blah, 
    'blah' => $blah, 
    // etc. 
); 
$html_email = $this->load->view('emails/signup_html_view', $emailData, true); 
$text_email = $this->load->view('emails/signup_text_view', $emailData, true); 
$this->email->from('[email protected]_________.com', '________ Team'); 
$this->email->to($to); 
$this->email->subject($subject); 
$this->email->message($html_email); 
$this->email->set_alt_message($text_email); 
$this->email->send(); 

... 

자세히 알 수 있듯이 이메일을 보내기 위해 데이터를 전달합니다. 상단의 전자 메일보기에서 "전자 메일을 보는 데 문제가 있습니까? 온라인으로 보려면 여기를 클릭하십시오." "링크가 있습니다. 이는 뉴스 레터, 이메일 가입 등의 이메일에 대한 일반적인 관행으로, 사용자가 이상한 것을 렌더링하거나 잘못되었을 경우 온라인으로 이메일을 볼 수 있습니다. 내가 길을 잃지있어

내가 사용자가 클릭 할 때 독특한 "... 온라인으로 볼 수 있습니다."링크를 때문에, 그들은 이메일의 온라인 버전과 온라인 버전을 볼 것을 생성 할 방법입니다 여전히 모든 데이터가 아직 전달 되었습니까? 별도의 컨트롤러를 생성해야합니까 아니면이를 처리하는 가장 좋은 방법이 있습니까? 고유 한 링크는 어떻게 생성합니까?

답변

1

@zach,

그래, 당신이 할 것은 :

1) 당신이 페이지

2) 나 '를 만들고 있었다처럼,이 이메일을 표시 할 수있는 별도의 컨트롤러를 만들 사용자가 이미 db에 생성되어 있지만 아직 활성화되지 않았거나 로그인 할 수있는 단계가 있다고 가정합니다. 그래서 약간의 백업, 사용자 레코드를 만들 때 무작위 해시 태그 &을 저장하십시오.

이제, 이메일 링크, 당신은 그들이보고있는 것만으로 이동하는 데 사용할 수있는 ID를 사용하지 않고 고유의 기록을 얻을 수 있도록하는이 방법을

을 www.mysite.com/welcome/hashtag하도록 설정

이 시작 페이지 다른 사람에, 물론, 그들가 로그인 할 필요가 없습니다. 아마 당신이 그들에게주는 (그들은 좀 더 정보를 기입 어쩌면 후) 다음 계정을 활성화 것이다 제출

그걸로 당신을 데려가려고하는 것에 충분히 가까웠을 희망

+0

감사합니다! 이것은 많은 의미를 가지며 완벽하게 작동합니다. 저장할 임의의 해시 태그를 어떻게 생성하도록 권장합니까? 그 부분을 수행하는 가장 안전한 방법은 무엇입니까? –

+0

간단히 CodeIgniter 문자열 도우미의 Random_string() 함수를 사용하여 활성화 필드와 같이 사용자 테이블에 추가하면됩니다. – jmadsen