Аргерих Л. О языке РНР. Часть 2. Страница 126


$this->boundary = md5(uniqid(time()));

Если в сообщении есть вложения, нам нужен уникальный идентификатор. Воспользуемся для создания уникального разграничителя вызовом несколь­ких функций:

$this->boundary = md5(uniqid(time()));

Функция time() возвращает текущее время в формате временной отметки UNIX, которое используется в качестве начального числа функцией uniqid() для создания уникального идентификатора. В свою очередь, внешняя функ­ция md5() генерирует 32-символьный разграничитель, гарантируя отсутст­вие повторяющихся ID. Функция md5() основана на алгоритме, который принимает строку произвольной длины и создает на ее основе перемешан­ный ключ. Поскольку возможных значений ключа может быть 2 в степени 128, то генерирование двух одинаковых значений ключа практически ис­ключено. С помощью md5() мы, таким образом, гарантируем, что вероят­ность создания одинаковых ID практически равна нулю.

Это важно, потому что кто-нибудь может вложить копию сообщения элект­ронной почты в другое сообщение, и если границы MIME окажутся одинако­выми, выделение MIME на приемном конце будет поставлено в тупик:

$this->headers[] = "Content-Type: multipart/mixed; boundary=\"

$this->boundary\"\r\n"; $this->headers[] = $this->mime_msg . "\r\n"; $this->headers[] = "--" . $this->boundary;

}

$this->headers[] = "Content-Type: $this->type ; charset= $this->charset";

Установите $ this-> encoding в 8bit, если требуется поместить многобайтовые символы в текстовую часть тела:

$this->headers[] = "Content-Transfer-Encoding: $this->encoding";

)

buildBodyParts()

Это тот метод, который соединяет вместе части тела. Если в сообщении нет он просто возвращается в вызвавшую функцию.

function buildBodyPartsQ

{

if return true;

Текстовая часть тела идет в массиве первой. Обратите внимание на две пары символов CR/LF, которые отделяют ее от дополнительных частей тела:

$body_parts [0] .= $this->body . "\r\n\r\n"; :

Введем цикл, чтобы добавить в сообщение количество файлов, соответству­ющее числу элементов в массиве, содержащем части тела:

for ($i=0; $i < count($this->files); $i++) {

if (J ($fp = @fopen($this->filest$i]["file"], "r"))) {

$thiS->ERROR_MSG = $this->ERR_CANNOT_OPEN_FILE . " " . $this->files[$i]["file"];

' return false; }

Прочтем целиком содержимое указанного файла:




Если вам необходимо приобрести сухой корм Проплан для кастрированных котов, тогда наш интернет зоомагазин готов предложить вам только лучшее и по выгодной стоимости. Кроме того, в ассортименте нашего магазина есть масса необходимых для ваших питомцев кормов и товаров.