Php “名字”字段已两次插入电子邮件
我正在使用以下代码发送电子邮件,我遇到的问题是,当我发送电子邮件时,人员名称导入的时间与燃油类型一样长,但出于某种原因,它似乎两次将$name值引入 例如,我收到这样的电子邮件: 亲爱的汤姆·索耶汤姆·索耶,这是你的价格: 亲爱的威尔·辛普森威尔·辛普森,这是你的柴油和天然气价格 以下是我的价值观的简要说明: $templatename=电子邮件模板,其中存储了发送给客户的消息,加上一个名为{name}的花括号和另一个名为{fuel}的花括号 {name}从$name中提取并替换为人名,{fuel}提取模板的名称,即正在使用的燃料的名称。这是通过str_replace函数完成的 所以结果应该是昂贵的,人名,这是你的燃料类型价格,但我实际得到的是,由于某种原因,人名重复了两次Php “名字”字段已两次插入电子邮件,php,mysql,html,preg-replace,str-replace,Php,Mysql,Html,Preg Replace,Str Replace,我正在使用以下代码发送电子邮件,我遇到的问题是,当我发送电子邮件时,人员名称导入的时间与燃油类型一样长,但出于某种原因,它似乎两次将$name值引入 例如,我收到这样的电子邮件: 亲爱的汤姆·索耶汤姆·索耶,这是你的价格: 亲爱的威尔·辛普森威尔·辛普森,这是你的柴油和天然气价格 以下是我的价值观的简要说明: $templatename=电子邮件模板,其中存储了发送给客户的消息,加上一个名为{name}的花括号和另一个名为{fuel}的花括号 {name}从$name中提取并替换为人名,{fue
<?php
$formid = mysql_real_escape_string($_GET[token]);
$templatequery = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addmailinglistmessage WHERE cf_id = '$formid'") or die(mysql_error());
$templateData = mysql_fetch_object($templatequery);
$gasoiluserTemplate = $templateData->gasoilusers;
$dervuserTemplate = $templateData->dervusers;
$kerouserTemplate = $templateData->kerousers;
$templateMessage = $templateData->mailinglistgroupmessage;
$templatename = $templateData->mailinglistgroupname;
require_once('./send/class.phpmailer.php');
$mailer= new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch
// Grab the FreakMailer class
require_once('./send/MailClass.inc');
// Grab our config settings
require_once('./send/config.php');
// Setup body
$htmlBody = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>#title {text-align:center;font-family:"Times New Roman", Times, serif; font-size:130% !important; font-weight:bold; color:#fff;} .address {color:#fff; font-size:60%; font-family:Verdana, Geneva, sans-serif;}</style>
</head>
<body>
<div style="background:
none repeat scroll 0% 0% rgb(6, 38,
97); width:650px; height:auto;">
<img id="_x0000_i1030" style="padding-left:5%;padding-right:5%"
src="http://www.chandlersoil.com/images/newsletter/header.gif"
alt="Chandlers Oil and Gas"
border="0" height="112"
width="580">
<div id="title">' . $templateMessage . '</div>
<div style="background:#344ea2; width:501px; height:65px; margin-left:70px;"></div>
<div style="background:#13155C; height:30px; width:501px; margin-left:70px;"></div>
<div style="background:#fff; width:501px; height:365px; margin-left:70px;"></div>
<div style="background:
none repeat scroll 0% 0% rgb(6, 38,
97); height:60px; width:501px; margin-left:70px;"></div>
<div style="background:#000139;height:100px; width:580px; margin-left:35px;" >
<table cellspacing="0" cellpadding="0" class="address" style="margin-left:5px;">
<tr>
<td valign="top" width="21%"><p><strong>Chandlers Depots</strong></p>
<table class="address" border="0" cellpadding="0" cellspacing="0" width="87%">
<tbody>
<tr>
<td width="57%"><p>Grantham</p></td>
<td width="43%"><p>Spalding</p></td>
</tr>
<tr>
<td><p>Lincoln</p></td>
<td><p>Corby</p></td>
</tr>
<tr>
<td><p> Spilsby</p></td>
<td><p>Retford</p></td>
</tr>
</tbody>
</table></td>
<td valign="top" width="79%"><p><strong>Address<br />
<br />
</strong>Chandlers Oil & Gas, Warren Way, Alma Park, Grantham, Lincolnshire, NG31 9SE<br />
<br />
<strong>TEL: </strong>08456 202010 <strong>FAX:</strong> 01476 568147 <strong>E-Mail: </strong><a href="mailto:websitesales@chandlersoil.com">websitesales@chandlersoil.com</a></p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td><p align="right"> </p></td>
</tr>
</tbody>
</table></td>
</tr>
</table>
</div>
</div>
</body>
</html>
';
$textBody = "$templateData->mailinglistgroupmessage";
// instantiate the class
$mailer = new FreakMailer();
// Get the user's Email
$sql = mysql_query("SELECT leadname,businessname,email,mailtype FROM hqfjt_chronoforms_data_addupdatelead WHERE keromailinglist='$kerouserTemplate' AND dervmailinglist='$dervuserTemplate' AND gasoilmailinglist='$gasoiluserTemplate'");
while($row = mysql_fetch_object($sql))
{
// Send the emails in this loop.
$name = $row->leadname;
$businessname = $row->businessname;
$to_email = $row->email;
$mailtype = $row->mailtype;
if(!empty($row->businessname))
{
$name .= ' '.$row->leadname;
}
$to_name = $name;
if($row->mailtype == 'html')
{
$mailer->Body = str_replace(array('{name}', '{fuel}'), array($name, $templatename), $htmlBody);
$mailer->isHTML(true);
$mailer->AltBody = str_replace(array('{name}', '{fuel}'), array($name, $templatename), $textBody);
$mailer->AddAddress($to_email, $name);
$mailer->Subject = "Your Fuel Prices From Chandlers Oil & Gas";
$mailer->FromName = "Chandlers Oil & Gas";
}
else
{
$mailer->Body = str_replace(array('{name}', '{fuel}'), array($name, $templatename), $textBody);
$mailer->isHTML(false);
$mailer->Subject = "Your Fuel Prices From Chandlers Oil & Gas";
$mailer->FromName = "Chandlers Oil & Gas";
$mailer->AddAddress($to_email, $name);
}
$mailer->Send();
$mailer->ClearAddresses();
$mailer->ClearAttachments();
$mailer->IsHTML(false);
echo "Mail sent to: $name - $to_email<br />";
}
?>
我想我在这里看到了:
if(!empty($row->businessname))
{
$name .= ' '.$row->leadname;
}
你是说
if(!empty($row->businessname))
{
$name .= ' '.$row->businessname;
}
:)
非常简单,这是基于所需条件连接不需要的变量 我想我在这里看到了:
if(!empty($row->businessname))
{
$name .= ' '.$row->leadname;
}
你是说
if(!empty($row->businessname))
{
$name .= ' '.$row->businessname;
}
:)
非常简单,这是基于所需条件连接不需要的变量 变化:
if(!empty($row->businessname))
{
$name .= ' '.$row->leadname;
}
致:
更改:
if(!empty($row->businessname))
{
$name .= ' '.$row->leadname;
}
致:
它应该做的是,如果business name字段为空,它应该使用firstname字段,理想情况下应该是……。如果business name=''$name=$saltation&$leadname else$name=$businessname,但我不确定如何在其中编码saltation和leadname,例如,如果公司字段为空,请使用JONES先生,如果不是空,请使用JONES CORP。在获取对象后,将$name字段设置为$row->leadname,并用$row->leadname填充,在这里,您的基本意思是“如果businessname不为空,请将另一个$row->leadname放入其中”正如。=你们不再替换,你们的安曼,所以在我的回答中有替换代码,你们会得到类似“琼斯先生公司”的东西。所以你的意思是,当businessname不为空时,使用businessname而不是leadname,对吗?还是我弄错了?啊,我想我可能没有从一开始就对其进行编码,我的意思是如果leadname为空,则应使用业务名称,如果不为空,则使用称呼,leadname。嘿,没问题,很乐意帮助:)它应该做的是,如果business name字段为空,则应使用firstname字段,理想情况下,它应该是这样的……。如果businessname=''$name=$saltation&$leadname else$name=$businessname,但我不知道如何在其中编码saltation和leadname,因此,例如,如果company字段为空,请使用JONES先生,如果不为空,请在获取对象后使用JONES CORP.远高于此值,您已经设置了$name字段并用$row->leadname填充,在这里您基本上说“如果businessname不是空的,那么请在那里再放一个$row->leadname”,就像。=您不再替换,您的ammending,因此在我的回答中,您会得到类似“MR JONES CORP”的替换代码。所以你的意思是,当businessname不为空时,使用businessname而不是leadname,对吗?还是我弄错了?啊,我想我可能没有从一开始就对其进行编码,我的意思是如果leadname为空,则应使用业务名称,如果不为空,则使用称呼,leadname。嘿,没问题,很乐意帮助:)它应该做的是,如果business name字段为空,则应使用firstname字段,理想情况下,它应该是……。如果businessname=''$name=$saltation&$leadname else$name=$businessname,但我不确定如何在其中编码saltation和leadname,因此,例如,如果company字段为空,请使用MR JONES,如果它不是空的,请使用JONES CORP。它应该做的是,如果business name字段是空的,它应该使用firstname字段,理想情况下应该是这样的……。如果businessname=''$name=$Salitation&$leadname else$name=$businessname,但我不确定如何在其中编码称呼和leadname,例如,如果company字段为空,请使用MR JONES,如果不为空,请使用JONES CORP。