0

メール内容:

<html><head></head><body><p> Message : 鏽嫌╒杜米土 杯屎</p>Share Link : <a href = "http://203.80.1.28/FlippingBook/development/flipV5.html?page=70"> Press here to enter </a><br><img src ='http://203.80.1.28/FlippingBook/development/demo/medium/Web081112_P070_medium.jpg' /></body></html>

PHP:

if (isset($_POST["data"])){
    $info = explode("&", $_POST["data"]);
    $headers  = 'MIME-Version: 1.0\r\n';
    $headers .= "Content-Type: text/html; charset = \"UTF-8\";\n";
    $headers = "From: =?UTF-8?B?" . base64_encode(substr($info[0],strpos($info[0],'=')+1, strlen($info[0]))) . "?=";
    $to = substr($info[1],strpos($info[1],'=')+1, strlen($info[1]));
    $subject = "=?UTF-8?B?" . base64_encode('日報分享') . "?=";
    $message = trim(substr($info[2],strpos($info[2],'=')+1, strlen($info[2])));
    $message = '<html><head></head><body><p> Message : '.$message;
    $url = substr($info[3],strpos($info[3],'=')+1, strlen($info[3]));
    $message = $message. '</p>Share Link : <a href = "'.$url.'"> Press here to enter </a>'; 

    if (isset($info[4])){
    $firstImg = substr($info[4],strpos($info[4],'=')+1, strlen($info[4]));
    $message = $message."<br><img src ='".$firstImg."' />";
    }

    if (isset($info[5])){
    $secondImg = substr($info[5],strpos($info[5],'=')+1, strlen($info[5]));
    $message = $message."<br><img src ='".$secondImg."' />";
    }
    $message = $message.'</body></html>';

    if (mail($to, $subject, $message, $headers))
    die ('Mail sent');
    else
    die ('Fail');
}else{
    die ('Fail');
}

メールを送信するための簡単なプログラムを書いています。ただし、私のメール コンテンツは英語ベースではないため、utf-8 を使用してエンコードしました。

エンコード方法を変更したところ、処理された html コードを送信できず、代わりにメール コンテンツが上記の生の html コードになっています。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

PEAR lib の使用に問題がない場合は、メールまたは HTML コンテンツを送信するための Pear Mail-Mime lib を探すことができます。ここから詳細を取得できます - http://pear.php.net/manual/en/package.mail.mail-mime.example.php

于 2013-01-02T08:20:08.030 に答える