Пример #1
0
function mailenc($mail)
{
    list($head, $body) = preg_split("/\r?\n\r?\n/s", $mail, 2);
    $encoding = '';
    $re = '/^Content-type:\\s*\\S+\\s*;\\s*charset\\s*=\\s*(\\S+)/mi';
    if (preg_match($re, $head, $p)) {
        $encoding = $p[1];
    }
    $newhead = "";
    foreach (preg_split('/\\r?\\n/s', $head) as $line) {
        $line = mailenc_header($line, $encoding);
        $newhead .= "{$line}\r\n";
    }
    return "{$newhead}\r\n{$body}";
}
Пример #2
0
function mailenc($mail)
{
    // Разделяем тело сообщения и заголовки.
    list($head, $body) = preg_split("/\r?\n\r?\n/s", $mail, 2);
    // Определяем кодировку письма по заголовку Content-type.
    $encoding = '';
    $re = '/^Content-type:\\s*\\S+\\s*;\\s*charset\\s*=\\s*(\\S+)/mi';
    if (preg_match($re, $head, $p)) {
        $encoding = $p[1];
    }
    // Проходимся по всем строкам-заголовкам.
    $newhead = "";
    foreach (preg_split('/\\r?\\n/s', $head) as $line) {
        // Кодируем очередной заголовок.
        $line = mailenc_header($line, $encoding);
        $newhead .= "{$line}\r\n";
    }
    // Формируем окончательный результат.
    return "{$newhead}\r\n{$body}";
}