Что ж, теперь вы знаете, как извлечь вложения из источника электронной почты из ответа Lars.
Я думаю, вам также может понадобиться расшифровать вложение.
Для этого нужно знать, как это было закодировано.
1. base64_encode ()
2. chunk_split ()
Код для кодирования файла выглядит так:
<?php
$body .= "--".$boundary1 . $this->line;
$body .= "Content-Type: " . $file_type . "; name=\"" . $file_name . "\"" . $this->line;
$body .= "Content-Transfer-Encoding: base64" . $this->line;
$body .= "Content-Disposition: attachment; filename=\"" . $file_name . "\"; size=" . $file_size . ";" . $this->line;
$body .= $this->line; // empty line
$fp = fopen($file_url, 'r');
do {
$data = fread($fp, 8192);
if (strlen($data) == 0) break;
$content .= $data;
}
while (true);
$body .= chunk_split(base64_encode($content));
$body .= $this->line;
$body .= $this->line;
?>
Результат примерно такой:
--ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ
Content-Type: text/plain; name="sample.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="sample.txt"; size=123;
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
Теперь, чтобы расшифровать его, вам нужно снова сделать две вещи в обратном порядке.
1. возьмите закодированную часть и удалите все строки, чтобы у вас была строка из одной строки
2. расшифровать его
.. и, конечно, сохранить файл на диск:)