0

ユーザーがサイトに登録してメンバーになるための登録フォームがあります。これまでのところ、詳細を登録すると、これがデータベースに保存され、感謝のメールが送信されます。

ユーザーがいつ登録したかを知らせる別のメールを送信して、これを自分のメールに送信できるように、スクリプトを複製しようとしています。

ユーザーに送信される電子メールには、ランダムに生成された md5 ハッシュ コードが含まれているため、このようにしようとしています。

2 つのメールを正しいメール アカウントに配信することができました。ただし、ユーザーがサインアップしたことを知らせるメールが送信されているのですが、ユーザーに送信されたくないのですか?

誰かが私が間違っているところを提案できますか? ありがとう

ユーザーに電子メールを送信するコード:

<?php

/**
 * ShuttleCMS - A basic CMS coded in PHP.
 * code generator - Used for allowing a user to generate a code
 * 
 * @author Dan <dan@danbriant.com>
 * @version 0.0.1
 * @package ShuttleCMS
 */
define('IN_SCRIPT', true);
// Start a session
session_start();

/*
 * Generates new code and puts it on database
 */

//Generate a RANDOM MD5 Hash for a code
$random_code=md5(uniqid(rand()));

//Take the first 8 digits and use them as the password we intend to email the user
$emailcode=substr($random_code, 0, 8);

//Encrypt $emailpassword in MD5 format for the database
$registrationcode=($emailcode);

// Make a safe query
$query = sprintf("UPDATE `ptb_registrations` SET `registration_code` = '%s' WHERE email = \"$email\"",
                    mysql_real_escape_string($registrationcode));

mysql_query($query)or die('Could not update members: ' . mysql_error());

?>

<?php

 $subjectconfirm = " Thanks for your Registration";
 $headersconfirm = "To: $email\r\n"; 
 $headersconfirm .= "From: siteindex.com <registrations@siteindex>\r\n";                                                                                                                                                                                                            
 $headersconfirm .= "Content-type: text/html\r\n"; 

  $sep = sha1(date('r', time()));
 $bodyconfirm = <<< EOF

(EMAIL BODY)

EOF;


 // Finally, send the email
 mail($email, $subjectconfirm, $bodyconfirm, $headersconfirm);

?>

次に、このようにコードを複製していますが、メールアドレスに置き換えています。私のメールアカウントには問題なく送信されますが、両方のメールがユーザーに送信され、私宛のメールを受信したくありません。

メールを送信するためのコード:

<?php

    /**
     * ShuttleCMS - A basic CMS coded in PHP.
     * code generator - Used for allowing a user to generate a code
     * 
     * @author Dan <dan@danbriant.com>
     * @version 0.0.1
     * @package ShuttleCMS
     */
    define('IN_SCRIPT', true);
    // Start a session
    session_start();

    /*
     * Generates new code and puts it on database
     */

    //Generate a RANDOM MD5 Hash for a code
    $random_code=md5(uniqid(rand()));

    //Take the first 8 digits and use them as the password we intend to email the user
    $emailcode=substr($random_code, 0, 8);

    //Encrypt $emailpassword in MD5 format for the database
    $registrationcode=($emailcode);

    // Make a safe query
    $query = sprintf("UPDATE `ptb_registrations` SET `registration_code` = '%s' WHERE email = \"$email\"",
                        mysql_real_escape_string($registrationcode));

    mysql_query($query)or die('Could not update members: ' . mysql_error());

    ?>

    <?php

     $subjectconfirm = " Thanks for your Registration";
     $headersconfirm = "To: signups@siteindex.com\r\n"; 
     $headersconfirm .= "From: siteindex.com <signups@siteindex>\r\n";                                                                                                                                                                                                          
     $headersconfirm .= "Content-type: text/html\r\n"; 

      $sep = sha1(date('r', time()));
     $bodyconfirm = <<< EOF

    (DIFFERENT EMAIL BODY)

    EOF;


     // Finally, send the email
     mail($email, $subjectconfirm, $bodyconfirm, $headersconfirm);

    ?>
4

2 に答える 2

3

メールのマニュアル ページからわかるように、最初のパラメーターはメールの送信先です。あなたはそれを変更していません。ヘッダーのみを変更しました。他の人に電子メールを送信するには、次のように変更します。

mail($email, $subjectconfirm, $bodyconfirm, $headersconfirm);

に:

mail('signups@siteindex.com', $subjectconfirm, $bodyconfirm, $headersconfirm);

もちろん、このコードをすべて複製するよりも、自分自身に BCC を送信する方がはるかに賢明です。

于 2012-12-07T18:25:41.553 に答える
0

コードを複製する必要はないと思います。次の 2 つのメールを送信するだけです。

$emails = 'youremail@email.com, theiremail@email.com';
mail($emails, $subjectconfirm, $bodyconfirm, $headersconfirm);

または自分でBCC:

$headersconfirm .= 'Bcc: youremail@email.com' . "\r\n";

ここを見てください。

于 2012-12-07T18:27:22.063 に答える