2014-01-24 4 views
0

Я написал код, чтобы сделать электронное письмо автоматически отправлено на адрес электронной почты пользователя одним нажатием кнопки. Но по какой-то причине он не отправляет никаких писем, я проверил его с двумя разными адресами электронной почты.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> 
+1

Много вещей может предотвратить письмо от достижения чьей-то ящик, некоторые из которых должны сделать с кодом. Есть ли сообщение об ошибке в журналах? Ошибка с сервера SMTP? Когда вы проверяете это на макет SMTP-сервера, который вы контролируете, каково поведение? Когда вы отлаживаете это, вызван ли вызов 'mail()' вообще? (Замечание: почему вы дважды попадаете в базу данных, чтобы получить два поля из одной записи?) – David

+0

Чтобы устранить неполадки, заберите все, что не имеет никакого отношения к отправке почты. Вместо этого отправьте простое электронное письмо самому себе и узнайте, получаете ли вы его. –

+0

Вы уверены, что user_id является строкой? если это int, то сделайте так: $ sql = "SELECT username FROM user WHERE user_id = {$ user_id}"; –

ответ

0

Это должно работать (проверьте примечания ниже):

<?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']; 
$youremail = "[email protected]"; 
$yoursubject = " Subject of the email"; 
    $message = "This email is to confirm you have purchased one Ellie Goulding Ticket for the O2"; 
    $subject = $uname['username']; 

    mail($email , $yoursubject, $message, "From:" . $youremail); 

    echo "sent to"." ".$email." ".$yoursubject." ".$message."<p />"; 
    } 

    echo "Go check your mail box:"; 
    include 'close.php'; 
    ?> 
<?php echo $uemail['email'] ?><br> 
<a href="ellie.php">Back</a> 

Примечания:

В Функция PHP mail() Синтаксис

mail(to,subject,message,headers,parameters) 
0

Я использую этот код для отправки почты попробовать этот

<html> 
    <body> 

    <?php 
    if (isset($_REQUEST['email'])) 

     { 

     $email = $_REQUEST['email'] ; 
     $subject = $_REQUEST['subject'] ; 
     $message = $_REQUEST['message'] ; 
     mail("[email protected]", $subject, 
     $message, "From:" . $email); 
     echo "Thank you for using our mail form"; 
     } 
    else 

     { 
     echo "<form method='post' action='mailform.php'> 
     Email: <input name='email' type='text'><br> 
     Subject: <input name='subject' type='text'><br> 
     Message:<br> 
     <textarea name='message' rows='15' cols='40'> 
     </textarea><br> 
     <input type='submit'> 
     </form>"; 
     } 
    ?> 

    </body> 
    </html>