lukasz_biovico Posted May 22, 2013 Share Posted May 22, 2013 Witam Sprawa polega na tym że chciałbym wyeliminować z tytułów maili symbole " [ nadawca ] ". A dokładniej: Gdy klient otrzymuje maila powiedzmy z potwierdzeniem płatności bądź wykonania zakupu w temacie maila mam coś takiego: [nazwa_sklepu] Potwierdzenie zamówienia a chciałbym aby w temacie pojawiało się tylko Potwierdzenie zamówienia Sprawdzając tematy szablonów email znajduje się w nich normalny tytuł bez znaków "[ " i nazwy sklepu. Sprawdzając pliki w folderze /mails także nie ma tej części wiadomości. Próbowaliście kiedyś usunąć nazwę sklepu z tytułów maili? Link to comment Share on other sites More sharing options...
Piotr Kaczor Posted May 22, 2013 Share Posted May 22, 2013 (edited) Cześć Aby usunąć z tytułów wiadomości e mail, nazwę sklepu w nawiasach kwadratowych (Prestashop 1.5.4.1) trzeba napisać override pliku /classes/Mail.php Interesuje nas fragment kodu około linii 231 /* Create mail and attach differents parts */ $message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject); Po zmianie go na: /* Create mail and attach differents parts */ $message = new Swift_Message($subject); Tematy wiadomości nie zawierają już nazwy sklepu ani nawiasów kwadratowych. Czyli trzeba: stworzyć plik /override/classes/Mail.php umieścić w nim kod: <?php class Mail extends MailCore { public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null) { $configuration = Configuration::getMultiple(array( 'PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_SMTP_ENCRYPTION', 'PS_MAIL_SMTP_PORT', 'PS_MAIL_METHOD', 'PS_MAIL_TYPE' ), null, null, $id_shop); // Returns immediatly if emails are deactivated if ($configuration['PS_MAIL_METHOD'] == 3) return true; $theme_path = _PS_THEME_DIR_; // Get the path of theme by id_shop if exist if (is_numeric($id_shop) && $id_shop) { $shop = new Shop((int)$id_shop); $theme_name = $shop->getTheme(); if (_THEME_NAME_ != $theme_name) $theme_path = _PS_ROOT_DIR_.'/themes/'.$theme_name.'/'; } if (!isset($configuration['PS_MAIL_SMTP_ENCRYPTION'])) $configuration['PS_MAIL_SMTP_ENCRYPTION'] = 'off'; if (!isset($configuration['PS_MAIL_SMTP_PORT'])) $configuration['PS_MAIL_SMTP_PORT'] = 'default'; // Sending an e-mail can be of vital importance for the merchant, when his password is lost for example, so we must not die but do our best to send the e-mail if (!isset($from) || !Validate::isEmail($from)) $from = $configuration['PS_SHOP_EMAIL']; if (!Validate::isEmail($from)) $from = null; // $from_name is not that important, no need to die if it is not valid if (!isset($from_name) || !Validate::isMailName($from_name)) $from_name = $configuration['PS_SHOP_NAME']; if (!Validate::isMailName($from_name)) $from_name = null; // It would be difficult to send an e-mail if the e-mail is not valid, so this time we can die if there is a problem if (!is_array($to) && !Validate::isEmail($to)) { Tools::dieOrLog(Tools::displayError('Error: parameter "to" is corrupted'), $die); return false; } if (!is_array($template_vars)) $template_vars = array(); // Do not crash for this error, that may be a complicated customer name if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name)) $to_name = null; if (!Validate::isTplName($template)) { Tools::dieOrLog(Tools::displayError('Error: invalid e-mail template'), $die); return false; } if (!Validate::isMailSubject($subject)) { Tools::dieOrLog(Tools::displayError('Error: invalid e-mail subject'), $die); return false; } /* Construct multiple recipients list if needed */ if (is_array($to) && isset($to)) { $to_list = new Swift_RecipientList(); foreach ($to as $key => $addr) { $to_name = null; $addr = trim($addr); if (!Validate::isEmail($addr)) { Tools::dieOrLog(Tools::displayError('Error: invalid e-mail address'), $die); return false; } if (is_array($to_name)) { if ($to_name && is_array($to_name) && Validate::isGenericName($to_name[$key])) $to_name = $to_name[$key]; } if ($to_name == null) $to_name = $addr; /* Encode accentuated chars */ $to_list->addTo($addr, '=?UTF-8?B?'.base64_encode($to_name).'?='); } $to_plugin = $to[0]; $to = $to_list; } else { /* Simple recipient, one address */ $to_plugin = $to; if ($to_name == null) $to_name = $to; $to = new Swift_Address($to, '=?UTF-8?B?'.base64_encode($to_name).'?='); } try { /* Connect with the appropriate configuration */ if ($configuration['PS_MAIL_METHOD'] == 2) { if (empty($configuration['PS_MAIL_SERVER']) || empty($configuration['PS_MAIL_SMTP_PORT'])) { Tools::dieOrLog(Tools::displayError('Error: invalid SMTP server or SMTP port'), $die); return false; } $connection = new Swift_Connection_SMTP($configuration['PS_MAIL_SERVER'], $configuration['PS_MAIL_SMTP_PORT'], ($configuration['PS_MAIL_SMTP_ENCRYPTION'] == 'ssl') ? Swift_Connection_SMTP::ENC_SSL : (($configuration['PS_MAIL_SMTP_ENCRYPTION'] == 'tls') ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_OFF)); $connection->setTimeout(4); if (!$connection) return false; if (!empty($configuration['PS_MAIL_USER'])) $connection->setUsername($configuration['PS_MAIL_USER']); if (!empty($configuration['PS_MAIL_PASSWD'])) $connection->setPassword($configuration['PS_MAIL_PASSWD']); } else $connection = new Swift_Connection_NativeMail(); if (!$connection) return false; $swift = new Swift($connection, Configuration::get('PS_MAIL_DOMAIN', null, null, $id_shop)); /* Get templates content */ $iso = Language::getIsoById((int)$id_lang); if (!$iso) { Tools::dieOrLog(Tools::displayError('Error - No ISO code for email'), $die); return false; } $template = $iso.'/'.$template; $module_name = false; $override_mail = false; // get templatePath if (preg_match('#'.__PS_BASE_URI__.'modules/#', str_replace(DIRECTORY_SEPARATOR, '/', $template_path)) && preg_match('#modules/([a-z0-9_-]+)/#ui', str_replace(DIRECTORY_SEPARATOR, '/',$template_path), $res)) $module_name = $res[1]; if ($module_name !== false && (file_exists($theme_path.'modules/'.$module_name.'/mails/'.$template.'.txt') || file_exists($theme_path.'modules/'.$module_name.'/mails/'.$template.'.html'))) $template_path = $theme_path.'modules/'.$module_name.'/mails/'; elseif (file_exists($theme_path.'mails/'.$template.'.txt') || file_exists($theme_path.'mails/'.$template.'.html')) { $template_path = $theme_path.'mails/'; $override_mail = true; } if (!file_exists($template_path.$template.'.txt') && ($configuration['PS_MAIL_TYPE'] == Mail::TYPE_BOTH || $configuration['PS_MAIL_TYPE'] == Mail::TYPE_TEXT)) { Tools::dieOrLog(Tools::displayError('Error - The following e-mail template is missing:').' '.$template_path.$template.'.txt', $die); return false; } else if (!file_exists($template_path.$template.'.html') && ($configuration['PS_MAIL_TYPE'] == Mail::TYPE_BOTH || $configuration['PS_MAIL_TYPE'] == Mail::TYPE_HTML)) { Tools::dieOrLog(Tools::displayError('Error - The following e-mail template is missing:').' '.$template_path.$template.'.html', $die); return false; } $template_html = file_get_contents($template_path.$template.'.html'); $template_txt = strip_tags(html_entity_decode(file_get_contents($template_path.$template.'.txt'), null, 'utf-8')); if ($override_mail && file_exists($template_path.$iso.'/lang.php')) include_once($template_path.$iso.'/lang.php'); else if ($module_name && file_exists($theme_path.'mails/'.$iso.'/lang.php')) include_once($theme_path.'mails/'.$iso.'/lang.php'); else include_once(_PS_MAIL_DIR_.$iso.'/lang.php'); /* Create mail and attach differents parts */ $message = new Swift_Message($subject); /* Set Message-ID - getmypid() is blocked on some hosting */ $message->setId(Mail::generateId()); $message->headers->setEncoding('Q'); if (Configuration::get('PS_LOGO_MAIL') !== false && file_exists(_PS_IMG_DIR_.Configuration::get('PS_LOGO_MAIL', null, null, $id_shop))) $logo = _PS_IMG_DIR_.Configuration::get('PS_LOGO_MAIL', null, null, $id_shop); else { if (file_exists(_PS_IMG_DIR_.Configuration::get('PS_LOGO', null, null, $id_shop))) $logo = _PS_IMG_DIR_.Configuration::get('PS_LOGO', null, null, $id_shop); else $template_vars['{shop_logo}'] = ''; } /* don't attach the logo as */ if (isset($logo)) $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo))); $template_vars['{shop_name}'] = Tools::safeOutput(Configuration::get('PS_SHOP_NAME', null, null, $id_shop)); $template_vars['{shop_url}'] = Context::getContext()->link->getPageLink('index', true, Context::getContext()->language->id); $template_vars['{my_account_url}'] = Context::getContext()->link->getPageLink('my-account', true, Context::getContext()->language->id); $template_vars['{guest_tracking_url}'] = Context::getContext()->link->getPageLink('guest-tracking', true, Context::getContext()->language->id); $template_vars['{history_url}'] = Context::getContext()->link->getPageLink('history', true, Context::getContext()->language->id); $template_vars['{color}'] = Tools::safeOutput(Configuration::get('PS_MAIL_COLOR', null, null, $id_shop)); $swift->attachPlugin(new Swift_Plugin_Decorator(array($to_plugin => $template_vars)), 'decorator'); if ($configuration['PS_MAIL_TYPE'] == Mail::TYPE_BOTH || $configuration['PS_MAIL_TYPE'] == Mail::TYPE_TEXT) $message->attach(new Swift_Message_Part($template_txt, 'text/plain', '8bit', 'utf-8')); if ($configuration['PS_MAIL_TYPE'] == Mail::TYPE_BOTH || $configuration['PS_MAIL_TYPE'] == Mail::TYPE_HTML) $message->attach(new Swift_Message_Part($template_html, 'text/html', '8bit', 'utf-8')); if ($file_attachment && !empty($file_attachment)) { // Multiple attachments? if (!is_array(current($file_attachment))) $file_attachment = array($file_attachment); foreach ($file_attachment as $attachment) if (isset($attachment['content']) && isset($attachment['name']) && isset($attachment['mime'])) $message->attach(new Swift_Message_Attachment($attachment['content'], $attachment['name'], $attachment['mime'])); } /* Send mail */ $send = $swift->send($message, $to, new Swift_Address($from, $from_name)); $swift->disconnect(); return $send; } catch (Swift_Exception $e) { return false; } } } usunąć plik /cache/class_index.php Kolejne wysyłane wiadomości będą już z czystym tytułem. Pozdrawiam. Edited May 22, 2013 by Piotr Kaczor (see edit history) 1 Link to comment Share on other sites More sharing options...
lukasz_biovico Posted May 23, 2013 Author Share Posted May 23, 2013 Dzięki wielkie Piotrek, faktycznie jest tak jak mówisz i wszystko działa idealnie. Maile przychodzą już z prawidłowym formatowaniem Link to comment Share on other sites More sharing options...
grennet Posted April 4, 2014 Share Posted April 4, 2014 (edited) Witam. Od jakiegoś czasu , a właściwie chyba od samego początku otrzymuję w tytule wiadomości .Cytuję . Re: [] Potwierdzenie prośby o hasłoWkurza mnie ten znak po Re: jak się go pozbyć. A jest napisane na górze ( czyli problem rozwiązany )Drugi problem Cytuję . Twoje hasło zostało zresetowane, a nowe wysłane na poniższy adres e-mail: [email protected]ale ja nie jestem olatoys, nie mam takiego hasła. Co z tym jest nie tak ? Zamiast powinno wyświetlać się że hasło zostało wysłąne na mój adre email pokazuje email własciciela sklepu.Pozdrawiam i prosze o pomoc. Edited April 4, 2014 by grennet (see edit history) Link to comment Share on other sites More sharing options...
mike_sc Posted August 27, 2014 Share Posted August 27, 2014 Siemka, a zadziała to w Presta 1.6.0.8 czy kod juz trzeba mocno modyfikować?Walczę ze zmianą pola 'FROM', które wyświetla się w miejscu 'nadawca' np.w skrzynce odbiorczej w gmailu i za nic mi to nie wychodzi. Na chwilę obecną nazwa wygląda kretyńsko: część nazwy @ nazwa serwera.com część nazwy 2.... Link to comment Share on other sites More sharing options...
miccom Posted August 17, 2016 Share Posted August 17, 2016 Cześć A jak wykonać taka modyfikację w presta 1.6.1.5? Proszę o pomoc Link to comment Share on other sites More sharing options...
pikselkomp Posted September 12, 2016 Share Posted September 12, 2016 A jak to zmienić w wersji 1.6.1.7? /* Create mail and attach differents parts */ $subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject; $message->setSubject($subject); $message->setCharset('utf-8'); Link to comment Share on other sites More sharing options...
miccom Posted September 12, 2016 Share Posted September 12, 2016 NO tak, ale w którym pliku podmieniamy powyższe? Link to comment Share on other sites More sharing options...
pikselkomp Posted September 13, 2016 Share Posted September 13, 2016 Zmiana w pliku .../classes/Mail.php Konkretnie chodzi mi o usunięcie zawartości w nawiasie kwadratowym (wraz z nim) w temacie maila/powiadomienia. Link to comment Share on other sites More sharing options...
marekw81 Posted November 18, 2018 Share Posted November 18, 2018 A jak to zmienić w 1.7? Link to comment Share on other sites More sharing options...
endriu107 Posted November 18, 2018 Share Posted November 18, 2018 W 1.7 znaki [] są zapisane w tej linijce: /* Create mail and attach differents parts */ $subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $idShop).'] '.$subject; 1 Link to comment Share on other sites More sharing options...
turbo_rabbit Posted November 21, 2018 Share Posted November 21, 2018 Sorki za lamerskie pytanie ale czy dla 1.7 nie wystarczy wyciąć ty kwadraciaków z tego pliku ? czy muszę tworzyć wszystko wg instrukcji kolegi Piotra. W zasadzie jak chciałem sie pozbyć z maili tekstu "Powe..... by Prestashop] to przejechałem pod linuchem jednym skryptem pliki txt i html z szablonami i działa - na szczście sie dało bo tych szablonów było z 500 szt i chyba bym umarł jakby trezba było ręcznie rzeźbić. Dlatego zastanawia mie czy poprostu nie wyciać ? Link to comment Share on other sites More sharing options...
endriu107 Posted November 21, 2018 Share Posted November 21, 2018 Można wyciąć natomiast nie jest to trwałe rozwiązanie gdybyś w przyszłości chciał aktualizować sklep to zmiany zostaną nadpisane nowymi plikami. 1 Link to comment Share on other sites More sharing options...
marekw81 Posted November 21, 2018 Share Posted November 21, 2018 Dziękuję za odpowiedzi, zależało mi na pozbyciu się długiej nazwy sklepu z tytułu maili. Finalnie wpisałem tam na sztywno nazwę skróconą i jest ok. Link to comment Share on other sites More sharing options...
KamikStudio Posted April 9, 2021 Share Posted April 9, 2021 (edited) Sorry za odkop, jednak po co tworzyć nowy temat jak mamy ten W 1.7.6.4 /* Create mail and attach differents parts */ /*$subject = '[' . strip_tags($configuration['PS_SHOP_NAME']) . '] ' . $subject;*/ $subject = $subject; $message->setSubject($subject); Uzyskałem tytuł tematu mailla bez "" i [] jednak jeszcze pozostała kwestia nadawcy maila która jest w " " i nazwa to w sumie nazwa sklepu. Chciałbym wpisać ręcznie swoje np Patryk z sklep.jakistam.pl Jak to uzyskać? nie widze zmiennej $title Czy to są te linie? /* * Sending an e-mail can be of vital importance for the merchant, when his password * is lost for example, so we must not die but do our best to send the e-mail. */ if (!isset($from) || !Validate::isEmail($from)) { $from = $configuration['PS_SHOP_EMAIL']; } if (!Validate::isEmail($from)) { $from = null; } // $from_name is not that important, no need to die if it is not valid if (!isset($fromName) || !Validate::isMailName($fromName)) { $fromName = $configuration['PS_SHOP_NAME']; } gdzie zmieniam $from = $configuration['PS_SHOP_EMAIL']; na $from = 'Patryk z sklep.mojsklep.pl'; /* przykład */ jednak po zmianie efektu brak - mail wgl. nie dochodzi do mnie. Pytanie gdzie to zmienić? Edited April 9, 2021 by KamikStudio (see edit history) Link to comment Share on other sites More sharing options...
KamikStudio Posted April 12, 2021 Share Posted April 12, 2021 @Piotr Kaczor wspomożesz? lub @endriu107? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now