繁体   English   中英

PHP电子邮件脚本不起作用。 怎么了?

[英]PHP E-mail Script not working. What's wrong?

任何帮助将非常感激。 这是代码:

<?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是正确的。

尝试使用PHP邮件功能: http : //php.net/manual/zh/function.mail.php

如果$elist_result['cEmail']$eresult['cEmail']不同,则使用$eresult['cEmail'] ,它从哪里来?
从上面发布的代码来看,这并不明显(猜测这只是一个输入错误)

如果发生$smtp->send()如果调用成功,则布尔值TRUE $smtp->send()$smtp->send()方法将返回PEAR_Error对象。 将您的代码更改为如下所示:

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

它应该为您提供失败的任何详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM