2013-02-21 171 views
0

我在注册过程中具有以下功能,可在完成注册过程后发送并通过电子邮件发送给用户。我希望电子邮件的文本根据他们是什么类型的用户而有所不同。我有企业用户和个人用户,并在数据库中将其标识为1或0.这就是我迄今为止的情况。将mysql查询添加到此电子邮件功能

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; 
    } 
+1

有问题吗? – 2013-02-21 19:05:21

+0

你的问题是什么? – 2013-02-21 19:05:41

+0

问题是我想根据用户类型,业务或个人发送不同的电子邮件。这是正确的方法吗? – Steven 2013-02-21 19:06:35

回答

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; 
} 

我假设查询应该包含某种where子句,以便每次不查询整个用户表。自从您发送电子邮件后返回,我删除了while循环。