使用php发送包含mysql数据的电子邮件
我试图使用cronjobs每周通过电子邮件将最近的条目列表发送到mysql表中一次。通常,要调用最近条目列表,我使用以下命令:使用php发送包含mysql数据的电子邮件,mysql,php,Mysql,Php,我试图使用cronjobs每周通过电子邮件将最近的条目列表发送到mysql表中一次。通常,要调用最近条目列表,我使用以下命令: $result = mysql_query("SELECT * FROM stock WHERE PurchaseDate < '$TODAY' AND PurchaseDate > '$LASTWEEK'") or die(mysql_error()); while ($list = mysql_fetch_array($result)) $result
$result = mysql_query("SELECT * FROM stock WHERE PurchaseDate < '$TODAY' AND PurchaseDate > '$LASTWEEK'")
or die(mysql_error());
while ($list = mysql_fetch_array($result))
$result=mysql\u查询(“从PurchaseDate<'TODAY'和PurchaseDate>'LASTWEEK'的股票中选择*)
或者死(mysql_error());
而($list=mysql\u fetch\u数组($result))
但很明显,我无法将此代码放入php邮件中的$message
变量中
有什么想法吗?邮件函数接受一个字符串,然后返回一个数组 所以你需要对它进行内爆
内爆(“,”,$list)代码>或使用结果集生成字符串
您应该使用PHPMailer、Zend Mail或Swift_-Mailer库,这些库更安全,例如可以防止头插入。$result=mysql_查询(“从PurchaseDate<'TODAY'和PurchaseDate>'LASTWEEK'的库存中选择*)或死亡(mysql_error());
$result = mysql_query("SELECT * FROM stock WHERE PurchaseDate < '$TODAY' AND PurchaseDate > '$LASTWEEK'") or die(mysql_error());
$entries = 'Entries: ';
while ($list = mysql_fetch_array($result)) {
$entries .= $list[entry] . ', ';
}
mail('someone@test.com', 'Stock', $entries);
$entries='entries:';
而($list=mysql\u fetch\u数组($result)){
$entries.=$list[entry].,';
}
邮件('someone@test.com“,”股票“,$分录);
这只是一个例子。不确定您的表是什么样子。试试看{
try {
$result = mysql_query("SELECT * FROM your_table WHERE blank = 'blank' AND blank2 ='blank2'");
$num_rows = mysql_num_rows($result);
if($num_rows < 1) {
throw new Exception('There is no user who qualifies...');
}
if(!$result) {
throw new Exception('An Error Occurred..');
}
//mail off whatever you need to each user that qualifies based on your query criteria..
while($row = mysql_fetch_array($result)) {
$firstname = stripslashes($row['firstname']);
$lastname = stripslashes($row['lastname']);
$email = stripslashes($row['email']);
//and any other variables you need for the email...
$subject = 'Some Subject';
$message = 'Hello '.$firstname.' blah..blah...';
mail($email, $subject, $message);
//do something else...
echo 'All users emailed.';
}
}
catch (Exception $e) {
echo $e->getMessage();
}
$result=mysql_查询(“从您的_表中选择*,其中blank='blank'和blank2='blank2');
$num\u rows=mysql\u num\u rows($result);
如果($num_行<1){
抛出新异常('没有符合条件的用户…');
}
如果(!$result){
抛出新异常('发生错误..');
}
//根据您的查询条件,将您需要的任何内容发送给符合条件的每个用户。。
while($row=mysql\u fetch\u数组($result)){
$firstname=stripslashes($row['firstname']);
$lastname=stripslashes($row['lastname']);
$email=stripslashes($row['email']);
//以及电子邮件所需的任何其他变量。。。
$subject='Some subject';
$message='Hello'.$firstname.'blah..blah…';
邮件($email,$subject,$message);
//做点别的。。。
回显“所有用户通过电子邮件发送”;
}
}
捕获(例外$e){
echo$e->getMessage();
}
。它们不再得到维护。看到了吗?改为了解,并使用或-将帮助您决定哪个。当我这样做时,它会起作用,但它只显示第一个结果。现在意识到..您只需要条目,而不是每个用户…抱歉。我只有几秒钟的时间扫描你的请求。