-2
<html>
<body>
<?php

include 'index.php';
include '../db.php';
$query_email = "SELECT email FROM email_addresses"; 
$result_query_email = mysqli_query($query_email)
or die(mysqli_error());

while ($row = mysqli_fetch_array()($result_query_email)) {

//$email_user = $row[10];
$email_user = $row['email'];

$data = date("Y.m.d");
$subject = "Good news";
$message = ("Hello!");

$sentemail = mail($email_user, $subject, $message, 
"From: abc <xyz.com>\nX-Mailer: PHP/" . phpversion());
}
if($sentemail) 
{

    print("Email has been sent successfully.<br>");
}
else
{
  print("There was a problem while sending email.<br>");
}

?>

</body>
</html>

このコードは、データベースから電子メールアドレスを選択し、それらに電子メールを送信するためのものです。私のコードの何が問題になっていますか、メールが届きません。ヘルプをいただければ幸いです。ありがとう!

4

3 に答える 3

3

error_reportingdisplay_errorsを設定して)

while (mysql_fetch_array($result_query_email) {

于 2012-11-27T16:30:02.583 に答える
3

この行はここにあります

while (mysql_fetch_array($result_query_email)

の戻り値を変数に割り当てて、ループmysql_fetch_array()で使用できるようにする必要があります。また、欠落しているクロージングも使用できます。while())

例えば

while ($emaildata = mysql_fetch_array($result_query_email)) {
{
    $email_user = $emaildata['email'];
 //.....rest of code

また

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、非推奨プロセスが開始されています。赤いボックスを参照してください。代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDOを選択した場合は、ここに優れたチュートリアルがあります。

編集

mysql_fetch_assoc()また、変数を、その代わりに使用する必要のある連想配列として使用しようとしているようですmysql_fetch_array()

于 2012-11-27T16:30:19.543 に答える
0

ソースコードで提供しない場合は、サーバーPHP.iniに正しいSMTPサーバーアドレスを設定してください。

于 2012-11-27T16:28:39.090 に答える