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 回答