我的php代码遇到了麻烦。我有一个名为:prof_ales的表,有3列:cnp, evaluat和evaluator。
和一个按钮"发送电子邮件"。当客户端按下按钮时,我想发送电子邮件到2个特定的电子邮件地址,这些地址已经保存到我的表"prof_ales"中的列"evaluator"中。
这是我的代码,现在它正在工作,但消息是发送仅在最后的电子邮件地址。
<input class="buttom" name="submit" id="submit" tabindex="5" value="Send Email" type="submit">
<?php
if(isset($_POST['submit'])) {
$interogare = ("SELECT * FROM prof_ales WHERE cnp='".$_SESSION['sess_user']."'");
$rezultat = mysql_query($interogare);
while ($rand = mysql_fetch_assoc($rezultat)) {
$ev= $rand['evaluat'];
$to = $rand['evaluator'];
}
$message = "test email ";
$subject = "Received from $ev";
$body = <<<EMAIL
Etc etc
$message
Bla Bla
EMAIL;
$header = "From: quabits.ro";
}
if($_POST){
mail($to, $subject, $body, $header);
echo "Sent";
}
?>
正如我说的,我想发送到两个(或更多)电子邮件地址的任何时间,当按钮被按下。谢谢。
如上所述,您需要将mail()
函数的调用放在while()
-循环中。使用正确的格式可以使代码更容易阅读:
while ($rand = mysql_fetch_assoc($rezultat)) {
$ev= $rand['evaluat'];
$to = $rand['evaluator'];
$message = "test email ";
$subject = "Received from $ev";
$body = "Test";
$header = "From: quabits.ro";
if($_POST) {
mail($to, $subject, $body, $header);
}
}
必须将发送电子邮件的代码放在 while循环中。所以应该是:
<?php
$connect = mysqli_connect("","","","");
if(isset($_POST['submit'])) {
$interogare = ("SELECT * FROM prof_ales WHERE cnp='".$_SESSION['sess_user']."'");
$rezultat = mysqli_query($interogare,$connect);
while ($rand = mysqli_fetch_assoc($rezultat)) {
$ev= $rand['evaluat'];
$to = $rand['evaluator'];
$message = "test email ";
$subject = "Received from $ev";
$body = <<<EMAIL
Etc etc
$message
Bla Bla
EMAIL;
$header = "From: quabits.ro";
}
if($_POST){
mail($to, $subject, $body, $header);
echo "Sent";
}
}
?>
你写的代码的意思是:
从数据库中选择第一封电子邮件并将其保存到一个变量中。用第二个电子邮件替换变量中的值。发送邮件到变量中的地址
改进后的版本意味着:
从数据库中选择第一封电子邮件并将其保存到一个变量中。将邮件发送到变量中的地址。用第二个电子邮件替换变量中的值。发送邮件到变量中的地址