0

以前使っていたごく普通のメール作成機能を使っているのですが、なぜかうまくいきません。どんな内容を入れても空メールが送られてきます。

function sendToUser($email,$admin_email,$subject,$content){
    $to=$email;

    $random_hash = md5(date('r', time())); 
    $headers = "From: Site Name <$admin_email>";
    $headers .= "\r\nReply-To: $admin_email";
    $headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\""; 
    ob_start(); //Turn on output buffering
    ?>
    --PHP-alt-<?php echo $random_hash; ?> 
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 7bit

    <?php echo $content; ?>

    --PHP-alt-<?php echo $random_hash; ?>--
    <?
    //copy current buffer contents into $message variable and delete current output buffer
    $message = ob_get_clean();

    mail($to, $subject, $message, $headers);
}

今、私がこのように呼び出すと:

sendToUser("myprivatemail@yahoo.com","admin@site.com","Testing","E-mail content");

電子メールを送信しますが、空で届きます。誰かがここで何が悪いのか分かりますか? それとも、私がよく知らないサーバー設定でしょうか?

4

1 に答える 1

0

--PHP-alt-<?php echo $random_hash;その前に空白を含めることはできません。

これを試して:

function sendToUser($email,$admin_email,$subject,$content){
    $to=$email;

    $random_hash = md5(date('r', time())); 
    $headers = "From: Site Name <$admin_email>";
    $headers .= "\r\nReply-To: $admin_email";
    $headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\""; 
    ob_start(); //Turn on output buffering
    ?>
--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit

<?php echo $content; ?>

--PHP-alt-<?php echo $random_hash; ?>--
    <?
    //copy current buffer contents into $message variable and delete current output buffer
    $message = ob_get_clean();

    mail($to, $subject, $message, $headers);
}
于 2012-08-21T19:05:48.227 に答える