PHP скрипт электронной почты не работает. В чем дело? - PullRequest
0 голосов
/ 27 октября 2010

Любая помощь будет высоко ценится.Вот код:

<?php include 'header_admin.php'; ?>
<?php
include 'dbc.php';
page_protect();
checkAdmin();
?>
<?PHP
require_once "Mail.php";

$con = mysql_connect("host","username","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("db_name", $con);

$elist = mysql_query("SELECT cEmail FROM tblUsers WHERE intUserID = '20'");

$from = "FROM E-MAIL";
$subject = $_POST['eSubject'];
$body = $_POST['eMessage'];

$host = "smtp.domain.com";
$port = "465";
$username = "username";
$password = "password";

echo "<div class='entry'>"; 

if(mysql_num_rows($elist) > 0)
{                   
    while($eresult = @mysql_fetch_array($elist)) {
        $headers = array ('From' => $from, 'To' => $eresult['cEmail'], 'Subject' => $subject);
        $smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password));
        $mail = $smtp->send($elist_result['cEmail'], $headers, $body);
    }   
}

echo "<table align='center'><p>Message successfully sent!</p></table></div>";

mysql_close($con);

?>

Я убедился, что настройки smtp были правильными, и я вручную проверил мой запрос mysql, чтобы убедиться, что он захватывает адрес электронной почты.также я сделал отдельную команду "echo", чтобы убедиться, что $ body и $ subject были правильными.

Ответы [ 3 ]

0 голосов
/ 27 октября 2010

Вы используете там $elist_result['cEmail'], если оно отличается от $eresult['cEmail'], откуда оно взято?
Это не очевидно из приведенного выше кода (думаю, это просто ошибка ввода)

0 голосов
/ 27 октября 2010

Метод $smtp->send() возвращает объект PEAR_Error, если что-то взрывается (или логическое значение ИСТИНА, если вызов выполнен успешно). Измените свой код на что-то вроде этого:

$ret = $smtp->send();
if ($ret !== TRUE) {
    echo "Mail send failed: ", $err::getMessage();
}

, который должен повторить любые детали неудачи для вас.

0 голосов
/ 27 октября 2010

Попробуйте использовать почтовую функцию PHP: http://php.net/manual/en/function.mail.php

...