Ниже приведено поле HTML Select, которое получает все электронные письма из моей базы данных. Теперь я пытаюсь отправить одно или несколько писем с помощью php. Но он не отправляет никаких писем. Можете ли вы рассказать мне, что не так с моим кодом?Php email send issue
HTML код:
<tr>
<td valign="top">To</td>
<td>
<select multiple="multiple" size="7" name="to[]">
<?php
$getemail = mysql_query("SELECT email FROM clients");
while($res = mysql_fetch_array($getemail)){
$email = inputvalid($res['email']);
echo "<option value='$email'>$email</option>";
}
?>s
</select>
</td>
</tr>
Php Код:
foreach($to as $total){
$total;
$headers = "From: $from\r\n";
$headers .= "Content-type: text/html\r\n";
$mail = mail($total, $subject, $msg, $headers);
}
Update-Полный код:
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" />
<table width="400" border="0" cellspacing="10" cellpadding="0" style="float:left;
position:relative;">
<tr>
<td>Subject</td>
<td><input type="text" name="subject" value="<?php if(isset($_POST['subject'])) echo
$_POST['subject']; ?>" class="tr"/></td>
</tr>
<tr>
<td valign="top">Message</td>
<td><textarea name="msg" class="textarea_email"><?php if(isset($_POST['msg'])) echo
$_POST['msg']; ?></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Send Message" class=" submit" name="Submit"/></td>
</tr>
</table>
<table style="float:left; position:relative; border:0px #000 solid;" width="400" border="0"
cellspacing="10" cellpadding="0">
<tr>
<td valign="top">To</td>
<td>
<select multiple="multiple" size="7" name="to[]">
<?php
$getemail = mysql_query("SELECT email FROM clients") or die(mysql_error());;
while($res = mysql_fetch_array($getemail)){
$email = inputvalid($res['email']);
echo "<option value='$email'>$email</option>";
}
?>s
</select>
</td>
</tr>
</table>
</form>
Php код:
if(isset($_POST['Submit']) && $_POST['Submit'] == "Send Message")
{
$subject = inputvalid($_POST['subject']);
$msg = inputvalid($_POST['msg']);
$to = $_POST['to'];
if(isset($subject) && isset($msg) && isset($to)){
if(empty($subject) && empty($msg) && empty($to))
$err[] = "All filed require";
}
else{
if(empty($to))
$err[] = "Please select email address";
if(empty($subject))
$err[] = "Subject require";
if(empty($msg))
$err[] = "Message require";
}
if(!empty($err))
{
echo "<div class='error'>";
foreach($err as $er)
{
echo "<font color=red>$er.</font>
<br/>";
}
echo "</div>";
echo "<br/>";
}
else{
foreach($to as $total){
echo $total;
$headers = "From: $from\r\n";
$headers .= "Content-type: text/html\r\n";
$mail = mail($total, $subject, $msg,
$headers);
}
if($mail)
echo "<font color=green>Successfully sent your message. We will be get in
touch with you. Thank You.</font/><br/><br/>";
header("Refresh:10; url=email.php");
}
}
Каковы ваши ошибки? Какова стоимость '$ mail'? Вы проверили свои почтовые журналы? Это зависит от вашего почтового сервера/MTA, когда он получает входные данные из команды PHP 'mail()'. PHP просто передает его в MTA, и любые ошибки там появятся в ваших почтовых журналах (то есть до тех пор, пока они не будут отправлены, когда они будут отправлены, это зависит от принимающей MTA). Также проверьте настройки брандмауэра. – BLaZuRE
@BLaZuRE Я проверил свой адрес электронной почты. У меня не было электронной почты. Нет ошибки, но это не работает. Если вы хотите, я могу показать свой полный код. –
Это не так просто. PHP не отправляет почту. Он сообщает другой программе для отправки почты. Мы не знаем, есть ли у вас такая программа просто по вашему коду. Прочитайте [документацию] (http://php.net/manual/en/function.mail.php) в функции 'mail()'. Он вернет false, если ваша электронная почта не будет принята для доставки такой программой. ** PHP не отправляет почту. Он использует другую программу для отправки почты ** Вам необходимо проверить почтовые журналы такой программы (Postfix, Sendmail и т. Д.). Выведите значение '$ mail' (используя' var_dump ($ mail); 'полезно). – BLaZuRE