Я написал код, чтобы сделать электронное письмо автоматически отправлено на адрес электронной почты пользователя одним нажатием кнопки. Но по какой-то причине он не отправляет никаких писем, я проверил его с двумя разными адресами электронной почты.PHP auto send email не работает
код для кнопки:
form action="sendellie.php" method="post">
<input type="submit" value="Buy tickets"/>
</form>
Код для обработки страницы:
<?php
session_start();
include 'connect.php';
ini_set("sendmail_from", "********");
$user_id= $_SESSION['id'];
$sql = "SELECT username FROM user WHERE user_id = '$user_id'";
$result = mysql_query($sql) or die('Query failed. ' . mysql_error());
$uname = mysql_fetch_array($result);
$result = mysql_query($sql) or die('Query failed. ' . mysql_error());
$uemail = mysql_fetch_array($result);
$user_id= $_SESSION['id'];
$sql = "SELECT email FROM user WHERE user_id = '$user_id'";
$result = mysql_query($sql) or die('Query failed. ' . mysql_error());
$uemail = mysql_fetch_array($result);
while($row = mysql_fetch_array($result))
{
$name = $uname['username'];
$email = $uemail['email'];
$message = "This email is to confirm you have purchased one Ellie Goulding Ticket for the O2";
$subject = $uname['username'];
echo "sent to"." ".$email." ".$subject." ".$message."<p />";
mail($email, $subject, $message);
}
echo "Go check your mail box:";
include 'close.php';
?>
<?php echo $uemail['email'] ?><br>
<a href="ellie.php">Back</a>
Много вещей может предотвратить письмо от достижения чьей-то ящик, некоторые из которых должны сделать с кодом. Есть ли сообщение об ошибке в журналах? Ошибка с сервера SMTP? Когда вы проверяете это на макет SMTP-сервера, который вы контролируете, каково поведение? Когда вы отлаживаете это, вызван ли вызов 'mail()' вообще? (Замечание: почему вы дважды попадаете в базу данных, чтобы получить два поля из одной записи?) – David
Чтобы устранить неполадки, заберите все, что не имеет никакого отношения к отправке почты. Вместо этого отправьте простое электронное письмо самому себе и узнайте, получаете ли вы его. –
Вы уверены, что user_id является строкой? если это int, то сделайте так: $ sql = "SELECT username FROM user WHERE user_id = {$ user_id}"; –