wdaemon3
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Скачав последнюю версию кубика обнаружил, что рассылка в формате html с аттачами не работает на домашнем сервере (Mdaemon) и на сервере провайдера. Вероятно данная проблема встречается не только у меня. Покопавшись в спецификации Mime и php -функции mail(), я заставил эту штуку работать. Вот изменённый код Mail.Class.php: Код: <?php //================================================ ======= // Pure CMS 6.2 RUS Overdoze Team //================================================ ======= // thx censored! [antichat.ru], Arcanum [overdoze.ru], CBS [overdoze.ru], Master Daemon [overdoze.ru] // Modules,Fix & Hacks - censored!, Nulled, Maxssx, -=Freon=- // Testing & Clear - Overdoze.Team & Overdoze.Ru Users //================================================ ======= //======Great thanks for all people, who takes part in 6.x release //====== Die Grosse Danke fur Bjorn Wunderlich und Lieben Fatherland! //================================================ ======= class MIMEMail { var $_parts; var $xmailer; var $_mimesep; var $_mimeheader; var $from_name; var $from_email; var $signatur; var $cc; var $bcc; var $_i; var $subject; var $to; function MIMEMail() { $this->xmailer = "EKOT (".$HTTP_SERVER_VARS['HTTP_HOST'].")"; $this->_mimesep = "Boundary-=_" . md5(uniqid(time())); $this->from_name = ""; $this->from_email = ""; $this->cc = ""; $this->bcc = ""; $this->_mimeheader = ""; $this->_i = 0; $this->_parts = array(); $this->subject = ""; $this->to = ""; } function Headers () { global $bm_prefs; $mimeheader = "From: \"" . $this->from_name . "\" <" . $this->from_email . ">\r\n"; if (!($this->cc=="") or !isset($this->cc)) { $mimeheader .= "Cc: " . $this->cc . "\r\n"; } if (!($this->bcc=="") or !isset($this->bcc)) { $mimeheader .= "Bcc: " . $this->bcc . "\r\n"; } $mimeheader .= "Return-Path: <" . $this->from_email . ">\r\n"; $mimeheader .= "MIME-Version: 1.0\n"; $mimeheader .= "Content-Type: multipart/mixed;boundary=\"" . $this->_mimesep . "\"\r\n"; $mimeheader .= "X-Mailer: " . $this->xmailer . ""."\r\n"; $this->_mimeheader = $mimeheader; } function AddTextPart ($html,$text) { if ($html==true) { $delim = "html"; $brake = ""; } else { $delim = "plain"; $brake = "\r\n"; } $newmessage = "--" . $this->_mimesep . "\n"; $newmessage .= "Content-Type: text/".$delim." ; CHARSET=windows-1251\n\n"; $newmessage .= str_replace(array("\n\n","\r n") $brake, $text); $this->_parts[$this->_i] = $newmessage; $this->_i++; } function AddAttachment ($content,$filename,$typ,$af="ATTACHMENT&qu ot; { $newmessage = "\n--" . $this->_mimesep . "\n"; $newmessage .= "Content-Type: " . $typ . "; name=\"" . $filename . "\"\n"; $newmessage .= "Content-Transfer-Encoding: base64\n"; $newmessage .= "Content-Disposition: $af; filename=\"" . $filename . "\"\n\n"; $newmessage .= base64_encode($content); $this->_parts[$this->_i] = $newmessage; $this->_i++; } function Finish() { $newmessage = "\n--" . $this->_mimesep . "--\n"; $this->_parts[$this->_i] = $newmessage; $this->_i++; } function Send() { // $body = $this->_mimeheader; for ($i=0;$i<=count($this->_parts);$i++) { $body .= $this->_parts[$i]; } return (mail($this->to, $this->subject, $body, $this->_mimeheader)); } } ?> | Если эта проблема баян и давно уже решена, прошу прощения, почему она не была исправлена в последнем релизе? Добавлено: Ещё маленькое добавление для совместимости: Вместо: $newmessage .= base64_encode($content); Вписать: $newmessage .= wordwrap(base64_encode($content), 75, "\r\n",1); |