0

登録プロセスには、登録プロセスの完了時にユーザーに送信および電子メールで送信する以下の機能があります。ユーザーのタイプに応じて、メールのテキストを変えてほしい。ビジネス ユーザーと個人ユーザーがいて、データベースで 1 または 0 として識別されています。

 function SendBusWelcomeEmail(&$user_rec)
    {
 $result = mysql_query("SELECT business FROM users")
               or die(mysql_error());

                while ($row = mysql_fetch_array($result))
            {

            $actiontype = $row['business'];
            switch ($actiontype)
{
case "0":
        $mailer = new PHPMailer();

        $mailer->CharSet = 'utf-8';

        $mailer->AddAddress($user_rec['email'],$user_rec['name']);

        $mailer->Subject = "Welcome to ".$this->sitename;

        $mailer->From = $this->GetFromAddress();        

        $mailer->Body ="Hello ".$user_rec['name']."\r\n\r\n".
        "Welcome! Your registration  with ".$this->sitename." is completed.\r\n".
        "\r\n".
        "Regards,\r\n".
        "Webmaster\r\n".
        $this->sitename;

        if(!$mailer->Send())
        {
            $this->HandleError("Failed sending user welcome email.");
            return false;
        }
        return true;
break;
case "1":
  $mailer = new PHPMailer();

        $mailer->CharSet = 'utf-8';

        $mailer->AddAddress($user_rec['email'],$user_rec['name']);

        $mailer->Subject = "Welcome to ".$this->sitename;

        $mailer->From = $this->GetFromAddress();        

        $mailer->Body ="Hello ".$user_rec['name']."\r\n\r\n".
        "Welcome! thanks for your business etc etc with ".$this->sitename." is completed.\r\n".
        "\r\n".
        "Regards,\r\n".
        "Webmaster\r\n".
        $this->sitename;

        if(!$mailer->Send())
        {
            $this->HandleError("Failed sending user welcome email.");
            return false;
        }
        return true;
    }
4

1 に答える 1

0

このようなものかもしれません。

function SendBusWelcomeEmail(&$user_rec)
{
    $mailer = new PHPMailer();
    $mailer->CharSet = 'utf-8';
    $mailer->AddAddress($user_rec['email'], $user_rec['name']);
    $mailer->Subject = "Welcome to ".$this->sitename;
    $mailer->From = $this->GetFromAddress();        

    $result = mysql_query("SELECT business FROM users") or die(mysql_error());
    if (mysql_num_rows($result))
    {
        $row = mysql_fetch_assoc($result);

        $actiontype = $row['business'];
        switch ($actiontype)
        {
            case "0":
                $mailer->Body = "Hello ".$user_rec['name']."\r\n\r\n"."Welcome! Your registration  with ".$this->sitename." is completed.\r\n"."\r\n"."Regards,\r\n"."Webmaster\r\n".$this->sitename;
                break;

            case "1":
                $mailer->Body = "Hello ".$user_rec['name']."\r\n\r\n"."Welcome! thanks for your business etc etc with ".$this->sitename." is completed.\r\n"."\r\n"."Regards,\r\n"."Webmaster\r\n".$this->sitename;
                break;
        }

        if (!$mailer->Send())
        {
            $this->HandleError("Failed sending user welcome email.");
            return false;
        }
    }

    return true;
}

毎回 users テーブル全体をクエリしないように、クエリには何らかの where 句を含める必要があると思います。whileとにかくメールを送信した後、あなたが戻ってきたので、ループを削除しました。

于 2013-02-21T21:29:20.723 に答える