0

押すと、データベースにある電子メールの更新を電子メールで送信するボタンがあります。

これは私のコードです。私もフォーラムからこれを入手しましたが、データベースに電子メールが届かないのは何が悪いのかわかりません。

$form_action = $_POST['form_action'];
if ($form_action == 'REGISTER') {

//send to your self
$to ="admin@admin.com";

$subject = 'System Email';

// message
$message = "<html>".
"<head>".
" <title>System Email</title>".
"</head>".
"<body>".
"message here!".
"</body>".
"</html>";

//get email list

//open database connection
$username = "root";
$password = ""; //input your password here.
$database = "dbase";
//connect to database
$link=mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");

$query="SELECT email_address FROM db_other_details";
$result=mysql_query($query) or die('Error, query failed');
mysql_close($link);

$row=1;
$numrows=mysql_num_rows($result);
$bccfield="Bcc: ". mysql_result($result,0,"email_address");
while($row<$numrows)
{
$email=mysql_result($result,$row,"email_address");
$bccfield .= "," . $email; //seperate by comma 
$row++;
}
$bccfield .= "\r\n";

// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= $bccfield;

$headers .= 'From: System <admin@admin.com>' . "\r\n";

// Mail it
mail($to, $subject, $message,$headers);

 if (mail($to,$subject,$message,$headers)) {
   header("Location: ".WEBSITE_URL."email-all.html?result=success");
} else {
    header("Location: ".WEBSITE_URL."email-all.html?result=failed");
}
}

switch (trim($_GET['result'])) {
    case "failed":
        $sendmail_result    = "failed";
        $form_message       = "Cannot send email to " . $numrows . "registrants at this time. Please try again later.";
        break;
    case "success":
        $sendmail_result    = "success";
        $form_message       = "Email sent to" . $numrows ." registrants.";
}

これを行う方法について何か提案はありますか?私はここで同じ質問で他のいくつかのトピックをチェックしましたが、助けにはなりませんでした。

ありがとう!

4

2 に答える 2

0

1) PDO を使用します。

2) PHP のエラー メッセージがオンになっていることを確認します。

3) var_dump / print_r 変数と GET 要求を使用して、データが利用可能かどうかを確認します。

4) 潜在的なクエリ エラーがないか、mysql エラー ログを確認します。

5) データを php::mail() 関数で送信する前に UTF-8 でエンコードします。

于 2013-01-21T06:52:09.523 に答える
0

以下の代替案を試す必要があります。

http://swiftmailer.org/

http://code.google.com/a/apache-extras.org/p/phpmailer/

于 2013-01-21T06:44:47.597 に答える