【问题标题】:"Issue viewing email? View email online?" unique link in Codeigniter email“查看电子邮件有问题吗?在线查看电子邮件?” Codeigniter 电子邮件中的唯一链接
【发布时间】:2013-02-03 15:15:27
【问题描述】:

我不知道从哪里开始这项任务,所以我正在寻找有关如何着手执行此任务的想法的答案。

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

...

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

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

【问题讨论】:

    标签: php codeigniter email newsletter


    【解决方案1】:

    @zach,

    是的,你要做的是:

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

    2) 我假设用户已在数据库中创建,但尚未激活或未采取步骤登录。所以,稍微备份一下,当您制作用户记录时,还要创建一个随机标签并存储它。

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

    这样您就可以让他们获得唯一的记录,而无需使用他们可以用来查看其他人的 id

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

    希望这与您的要求足以让您通过

    【讨论】:

    • 谢谢!这很有意义,并且可以完美地工作。您如何建议我生成要存储的随机主题标签?完成该部分的最佳/安全方式是什么?
    • 我只是简单的使用了CodeIgniter string helper的Random_string()函数,像激活字段一样放到user表中
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2011-08-13
    • 2014-09-17
    • 2013-08-02
    • 1970-01-01
    • 2012-04-08
    • 2019-11-15
    • 1970-01-01
    相关资源
    最近更新 更多