Php 将mysql查询添加到此电子邮件功能
在我的注册过程中,我有以下功能,在注册过程完成后将向用户发送和发送电子邮件。我想电子邮件的文本是不同的,这取决于他们是什么类型的用户。我有业务用户和个人用户,其在数据库中标识为1或0。这就是我目前所拥有的Php 将mysql查询添加到此电子邮件功能,php,function,email,Php,Function,Email,在我的注册过程中,我有以下功能,在注册过程完成后将向用户发送和发送电子邮件。我想电子邮件的文本是不同的,这取决于他们是什么类型的用户。我有业务用户和个人用户,其在数据库中标识为1或0。这就是我目前所拥有的 function SendBusWelcomeEmail(&$user_rec) { $result = mysql_query("SELECT business FROM users") or die(mysql_error());
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;
}
也许是这样的
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子句,这样您就不会每次都查询整个users表。我删除了
while
循环,因为您在发送电子邮件后返回。有问题吗?您的问题是什么?问题是我想根据用户类型、业务或个人发送不同的电子邮件。这是正确的方法吗?@Steven:你可能可以把一些重复的代码放在开关前,然后把$mailer->Send()
放在开关后。同意Rocket的说法。它将最小化错误。除此之外,不要使用mysql\u查询,因为它已被弃用。试试mysqli调用。