В общем ищу модуль (хак) для рассылки сообщений с вложенным файлом (прайс-лист). Может кто писал или у кого есть модуль. Буду признателен. Пока нашел код Код: <?php function multi_attach_mail($to, $files, $sendermail){ // email fields: to, from, subject, and so on $from = "Files attach <".$sendermail.">"; $subject = date("d.M H:i")." F=".count($files); $message = date("Y.m.d H:i:s")."\n".count($files)." attachments"; $headers = "From: $from"; // boundary $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // headers for attachment $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // multipart boundary $message = "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // preparing attachments for($i=0;$i<count($files);$i++){ if(is_file($files[$i])){ $message .= "--{$mime_boundary}\n"; $fp = @fopen($files[$i],"rb"); $data = @fread($fp,filesize($files[$i])); @fclose($fp); $data = chunk_split(base64_encode($data)); $message .= "Content-Type: application/octet-stream; name=\"".basename($files[$i])."\"\n" . "Content-Description: ".basename($files[$i])."\n" . "Content-Disposition: attachment;\n" . " filename=\"".basename($files[$i])."\"; size=".filesize($files[$i]).";\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } $message .= "--{$mime_boundary}--"; $returnpath = "-f" . $sendermail; $ok = @mail($to, $subject, $message, $headers, $returnpath); if($ok){ return $i; } else { return 0; } } ?>
Посмотрите эту тему, вам скорее всего тоже подойдет http://wmasteru.ru/threads/Отправка-вложенных-файлов-покупателю-через-админку.5771/
Посмотрите в код файла system/library/mail.php Там есть готовая обвязка PHP: public function addAttachment($file, $filename = '') {if (!$filename) {$filename = basename($file);} $this->attachments[] = array('filename' => $filename,'file' => $file);} Если посмотреть в контроллер /information/contact.php : PHP: $mail = new Mail();$mail->protocol = $this->config->get('config_mail_protocol');$mail->parameter = $this->config->get('config_mail_parameter');$mail->hostname = $this->config->get('config_smtp_host');$mail->username = $this->config->get('config_smtp_username');$mail->password = $this->config->get('config_smtp_password');$mail->port = $this->config->get('config_smtp_port');$mail->timeout = $this->config->get('config_smtp_timeout');$mail->setTo($this->config->get('config_email')); $mail->setFrom($this->request->post['email']); $mail->setSender($this->request->post['name']); $mail->setSubject(sprintf($this->language->get('email_subject'), $this->request->post['name'])); $mail->setText(strip_tags(html_entity_decode($this->request->post['enquiry'], ENT_QUOTES, 'UTF-8'))); $mail->send(); То здесь чтобы письмо было с вложением - нужно добавить перед $mail->send(); еще одну строку PHP: $mail->addAttachment('Путь к файлу')