“查看电子邮件时遇到问题?在线查看电子邮件?“Codeigniter电子邮件中的唯一链接


"Issue viewing email? View email online?" unique link in Codeigniter email

我不确定从哪里开始这项任务,所以我正在寻找如何做到这一点的答案。

当新用户在我的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();
...

如您所见,我正在将数据传递给这些视图以发送电子邮件。在电子邮件视图中,在顶部,我有一个链接,上面写着"查看电子邮件时遇到问题?单击此处在线查看。这是时事通讯、注册电子邮件等电子邮件的常见做法,以便用户可以在电子邮件变得奇怪或出现问题时在线查看电子邮件。

我迷失的地方是如何生成独特的"......在线查看。链接,以便当用户单击它时,他们会看到电子邮件的在线版本,而在线版本仍然包含所有数据传递给它?我是否需要创建一个单独的控制器,或者处理它的最佳方法是什么?如何生成该唯一链接?

> @zach,

的,你要做的是:

1) 创建一个单独的控制器来显示此电子邮件,就像您制作页面一样

2)我假设用户已经在数据库中创建,但尚未激活或采取措施才能登录。因此,备份一点,当您进行用户记录时,还要创建一个随机主题标签并存储它。

现在,在电子邮件链接中,将其设置为 www.mysite.com/welcome/hashtag

通过这种方式,您可以允许他们获得唯一的记录,而无需使用他们可以用来查看其他人的 id

当然,此欢迎页面不需要他们登录。可能您给他们一个提交(也许在他们填写更多信息之后),然后激活他们的帐户

希望这足够接近你要求让你通过的东西