0

このタスクをどこから始めればよいかわからないので、これをどのように実行するかというアイデアについての答えを探しています。

新しいユーザーが私の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('team@_________.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();

...

ご覧のとおり、これらのビューにデータを渡してメールを送信しています。メールビューの上部に、「メールの表示に問題がありますか?ここをクリックしてオンラインで表示してください。 」というリンクがあります。これは、ニュースレターや登録メールなどのメールの一般的な方法であり、ユーザーがメールが変になったり、問題が発生した場合にオンラインで表示できるようにします。

私が迷っているのは、そのユニークな「...オンラインで表示」リンクを生成して、ユーザーがクリックしたときにオンラインバージョンの電子メールが表示され、オンラインバージョンでもすべてのデータが渡されるようにする方法です。それに?別のコントローラーを作成する必要がありますか、それともそれを処理するための最良の方法は何ですか?その一意のリンクを生成するにはどうすればよいですか?

4

1 に答える 1

1

@ザック、

はい、あなたがすることは次のとおりです。

1) ページを作成するのと同じように、このメールを表示できる別のコントローラーを作成します。

2)ユーザーはすでにデータベースに作成されていると想定していますが、まだアクティブ化されていないか、ログインできるようにするための手順が実行されていません。ですから、少しバックアップして、ユーザーレコードを作成するときに、ランダムなハッシュタグも作成して保存します。

次に、電子メール リンクで、www.mysite.com/welcome/hashtag に設定します。

このようにして、他のすべての人を見るために使用できるIDを使用せずに、一意のレコードを取得できるようにします

もちろん、このウェルカム ページにログインする必要はありません。おそらく、アカウントを有効化するための送信を行います (詳細情報を入力した後)。

それがあなたが求めていたものに十分近かったことを願っています

于 2013-02-03T07:15:27.943 に答える