2012-03-08 12 views
-4

私は&を読んだが、いくつかの投稿を試しましたが、この問題を解決することはできません。私は、データベース内のアドレスにメールを送信しようとしているが、次のエラーを取得しています:警告:メールは()パラメータ3が与えられた文字列、配列であることを期待...PHPはデータベース内のアドレスからメールを送信します

include 'datalogin.php'; 
$sql10 = "SELECT * FROM ex_usrs_admin_dept WHERE linked_dept = '$newdept1'"; 
$res10 = mysql_query($sql10); 
while ($row10 = mysql_fetch_assoc($res10)) { 
    $adminid1 = $row10['adminid']; 

    $elist = mysql_query("SELECT mail_address FROM ex_usrs WHERE id = '$adminid1'"); 
    $subject = "This is the subject"; 
    $headers = "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 

    $message = '<h3>This is the message</h3>'; 

    ini_set(SMTP, "10.xxx.xxx.xx"); 
    ini_set(smtp_port, 25); 
    ini_set('display_errors', '1'); 
    ini_set("sendmail_from", "[email protected]"); 

    if (mysql_num_rows($elist) > 0) { 
     while ($elist_result = mysql_fetch_array($elist)) { 
      $headers = array('To' => $elist_result['mail_address']); 
      mail($subject, $message, $headers); 
     } 
    } 
} 
+0

を忘れてしまったparam.thatするのですか?質問は何ですか? – zerkms

+2

エラーメッセージは非常に明確です。 '$ headers'は配列であってはいけません。 – Ohas

+1

これは、['mail()'](http://php.net/mail)がパラメータ3が文字列であると期待しているためですが、配列が与えられているためです。 – rid

答えて

0

あなたは...あなたは以下を送信する必要があるメール機能のパラメータを混同している:

mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

$toフィールドに注意してください。開始時。あなたのwhileループは

$headers = array('To' => $elist_result['mail_address']); 
mail($subject, $message, $headers); 

から変更するには、配列として$ヘッダを与えている

1

オプション3である必要があります文字列が、あなたは、配列を与えた:

$headers = array('To' => $elist_result['mail_address']); 
mail($subject, $message, $headers); 

また、オプション3がメッセージです。

mail (string $to , string $subject , string $message [, string $additional_headers ... 

は、マニュアルに見てください:http://php.net/manual/en/function.mail.php

1

The PHP documentation is very detailed

mail($elist_result['mail_address'],$subject, $message, $headers); 

に:

$headers = array('To' => $elist_result['mail_address']); 
mail($subject, $message, $headers); 

正しい構文は次のようになります。

mail($elist_result['mail_address'], $subject, $message); 
1

私は-1を作るのではありません。

あなたはエラーを読んだことがありますか?あなたのエラーを説明します。 mail機能の正しい使用方法を見つけることができます:PHPのspecification..firstによるhttp://php.net/manual/en/function.mail.php

1

あなたがそう

bool mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 
関連する問題