Материалы. Отправка почты из php с файлами 

10 лет назад

Сегодня возникла необходимость отправить письмо с приложенными файлами из php.

Задача довольно простая. Тем более что решение есть на OpenNET. Единственное, что нехватало, это отправки нескольких файлов.

Решение до банальности простое, взять существующий код и чуть-чуть обработать напильником, а именно: Часть отвечаюущую за формирование файла взять в цикл, в котором и сформировать все приложения. Примерно так:

 
        foreach($files as $filename){ 
        if (filesize($filename)==0) continue; 
        $f         = fopen($filename,"rb"); 
        $zag      .= "------------".$un."n"; 
        $zag      .= "Content-Type: application/octet-stream;"; 
        $zag      .= "name="".basename($filename).""n"; 
        $zag      .= "Content-Transfer-Encoding:base64n"; 
        $zag      .= "Content-Disposition:attachment;"; 
        $zag      .= "filename="".basename($filename).""nn"; 
        $zag      .= chunk_split(base64_encode(fread($f,filesize($filename))))."n"; 
        fclose($f); 
        }

Готовая функция присоединённом файле.

Если у вас проблемы с русскими именами файлов и темой, то можно взять более свежий файл из этой темы: Отправка php файлов с русскими именами и русскими буквами в теме.

Присоединенный файлы: