繁体   English   中英

如何在php的电子邮件中插入唯一的确认码

[英]How to insert an unique confirmation code into an email from php

我的学生有一个MySQL数据库。 我具有选择其中一些或全部功能并将电子邮件发送到所选功能的功能。

我还可以将电子邮件保存在数据库的表中。 现在,当我向选定的学生发送电子邮件时,我需要一种在电子邮件的正文中插入唯一链接的方法,当他们单击该链接时,可以在后端将其状态从(例如,已批准)更改为“已确认” ,而他们看到的消息是他们的请求已被确认。

我现在拥有的用于发送邮件并将其插入数据库的代码是:

<?php
    session_start();
    $page_name = 'Send Emails';
        require_once('header.php');
        if(!empty($_POST['send'])){
            $id_mail= "";
            foreach ($_POST['selected'] as $key => $value) {
                echo "$key - $value <br>";
                $id_mail .= "$value, ";
                }
                $id_mail= substr($id_mail, 0, -2);
            }
        if(!empty($_POST['Send2'])){
                 $mail= mysqli_query($conn, "SELECT student_id, mail FROM students WHERE student_id IN($_POST[id_mail])"); 
            echo "SELECT student_id, mail FROM students WHERE student_id IN($_POST[id_mail]) "; 
             while ($row_mail = mysqli_fetch_assoc($mail)) { 
                 echo "$row_mail[mail] "; 
             $to = $row_mail['mail']; 
             $subject = $_POST['head']; 
             $message = $_POST['body']; 
             $headers = 'From: code-week@example.com' . "\r\n" . 
            'Please do not reply to this message' . "\r\n" . 
            'X-Mailer: PHP/' . phpversion(); 
             mail($to, $subject, $message, $headers); 
             $sent_mails= mysqli_query($conn, "INSERT INTO sent_mails (id_st, mail_head, content) VALUES ('$_POST[id_mail]', '$subject', '$message') "); 
             if (mysqli_query($conn, $sent_mails)){ 
                echo "Success"; 
             } else { 
            echo "Error ". $sent_mails . "<br/>" . mysqli_error($conn); 
            } 
          } 
       } 
        mysqli_close($conn); 
 ?> 
    <form name='mail2' method='post' action='send_email.php'><br/>
    <input type="hidden" name="id_mail" value="<?php echo $id_mail; ?>">
        <br/>

    <input type='text' name='head' placeholder='header'>
    <br/>
    <br/>

    <textarea name='body' rows="4" cols="50" placeholder='body'></textarea><br/>
    <br/>
    <input class='btn btn-danger'type='submit' name="Send2" value='Send'>
    </form>

您要添加的电子邮件中的链接,从而使接收器证明它是他的电子邮件地址(类似http://www.example.com/confirmEmailAddress?randomCode=abcdef ),是否正确? 那么,这个随机码不会有,如果你添加收件人的电子邮件地址或链路他独特的数据库ID以及是唯一的: http://www.example.com/confirmEmailAddress?NotNecessarilyUniqueRandomCode=abcdef&email=john.doe@example.com你会那么只需要对两列检查数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM