Jump to content
  • 0

home.pl - problem z funkcją mail()


krizzu

Question

Witam serdecznie

 

Mam zainstalowany sklepik na home.pl i ostatnio przestały dochodzić maile, do wysyłania maili sklep uzywa funkcji mail() jedak jak się dowiedziałem ostatnio home wprowadził dodatkowy parametr do funkcji mail() aby ograniczyć wysyłanie spamu.

 

https://pomoc.home.pl/komunikaty/1067

 

Czy ktoś mi może podpowiedzieć do jaki plik (i najlepiej w jaki sposóB) zmodyfikować tak aby wysyłanie maili działało.

 

 

Z góry dziękuję za pomoc.

 

Link to comment
Share on other sites

64 answers to this question

Recommended Posts

  • 1

Dzięki za info będę próbował

Miałem ten problem. Ustaw ten sam adres e-mail w preferencje/kontakty sklepu i niżej preferencje/dane kontaktowe.

 

Wszysko działa nawet na home.pl :)

 

W zakładce zaawansowane adrees e-mail ustaw też ten sam co wyżej, a w ustawieniach:

Użyj funkcji mail() w PHP (zalecane; działa w większości przypadków)

 

pozdrawiam

Piotrek

Link to comment
Share on other sites

  • 0

 

WAŻNE! Adres e-mail nadawcy zawarty w nagłówku wiadomości musi istnieć w ramach konta, do którego nastąpiła autoryzacja. W przeciwnym wypadku wysyłka wiadomości nie zostanie zrealizowana. Dotyczy to programów pocztowych oraz skryptów, które obsługują wysyłkę wiadomości e-mail.

I po ptakach z mailami spoza home.pl :(

Link to comment
Share on other sites

  • 0

a możesz wyjaśnić o co chodzi z tym dodatkowym parametrem?

klasa do zmiany to klasa Mail (classes/Mail.php)

 

mail($to, $subject, $message, $headers, "-f [email protected]");

 

Wydaje mi się, że chodzi o -f dodane przed adresem ?

 

 

Najlepiej to skorzystaj z ustawień SMTP.

 

Próbowałeś skonfigurować SMTP home.pl na preście, cały czas wywala mi błąd w konfiguracji....

 

Sprawa jest lipna bo jeśli nikt nie dostaje maili to albo nie realizuje zamówienia i idzie gdzie indziej albo próbuje jeszcze raz.... ale z doświadczenia wiem że to pierwsze

Edited by krizzu (see edit history)
Link to comment
Share on other sites

  • 0

Oczywiście że tak, może podaj jak ty to konfigurujesz żebyśmy wiedzieli gdzie leży błąd.

 

Do tego celu założyłem sobie specjalnego maila  np. [email protected]

 

Domena adresu email: mojadomena.pl

Serwer SMTP: - tutaj próbowałem mojserwer.home.pl  lub też mojadomena.pl (takie ustawienie działa w thunderbirdzie)

Użytkownik SMTP: [email protected]  lub automat

Hasło SMTP: proste hasło litery + cyfry

Szyfrowanie: SSL

Port: 465

Link to comment
Share on other sites

  • 0

Czyli dalej chcesz używać home-a tylko jako SMTP? Najlepiej zrób sobie konto na gmailu i ustaw tak:

 

Domena adresu email: [email protected]

Serwer SMTP: smtp.gmail.com

Użytkownik SMTP: [email protected]

Hasło SMTP: proste hasło litery + cyfry

Szyfrowanie: SSL

Port: 465

 

Przy takim ustawieniu maile bedzie wysyłał gmail ale jako Twój podany email, ten pierwszy od góry w ustawieniach.

Link to comment
Share on other sites

  • 0

opiekowałem się sklepem który kiedyś przekroczył limity wysyłania wiadomości w google ;) darmowe konta gmail mają ograniczenia,

na chwilę obecną nie wiem jak duże (ale myślę ,że google podpowie) - w każdym razie sklep zrobił promocje na grouponie, na raz zwaliło się do sklepu prawie 300 osób na zakupy, i gmail nie uniósł blokując możliwość wysyłania wiadomości ;)

Link to comment
Share on other sites

  • 0

Tylko to nie jest darmowe konto - to jest skrzynka założona na płatnym serwerze.

 

 

Wg zaleceń zmodyfikowałem plik

 

../tools/swift/Swift/plugin/MailSend.php

 public function __construct($params="-f %s")
  {
    $this->setAdditionalParams($params);
    $this->setOS(PHP_OS);
  }

gdzie -f to dodatkowy parametr

 

oraz dodatkowo

 

 

../tools/swift/Swift/Message.php

  $this->setFrom("[email protected]");

przy wysyłaniu testowego maila dalej dostaje

 

Błąd: proszę sprawdzić konfigurację
Sending failed using mail() as PHP's default mail() function returned boolean FALSE.

Edited by krizzu (see edit history)
Link to comment
Share on other sites

  • 0

Znów "domek.pl" ....

Z dnia na dzień wywaliło formularz kontatktowy w sporym sklepie :(

Posypały się gromy od klientów że składali zapytania i nie otrzymywali żadnej odpowiedzi. Teraz wszystko jasne.

 

Dziękuję!

 

 

 

To akurat nie ma nic wspólnego z prestą, mialem tak ostatio na osc. Home.pl zmienili ustawienia antyspamowe tak, ze nie dochodziło nic co było wysłane przez formularz kontaktowy.

Edited by san_merah (see edit history)
Link to comment
Share on other sites

  • 0

Mam podobny problem, z tym że do tej pory wszystkie maile były wysyłane przez smtp. Do czasu kiedy home zmienił ustawienia antyspamowe, teraz żaden mail z formularza kontaktowego nie dochodzi do obsługi. Czy komuś udało się zmusić preste na home.pl do współpracy?

Link to comment
Share on other sites

  • 0

U mnie nie zadziałało, z tym że nie mam czegość takiego jak preferencje/kontakty sklepu tylko klienci/kontakty. Moja wersja presty to 1.5.6.1

 

 

zerknij na wersję 1.6

http://demo.prestashop.com/pl/?view=back

i znajdź w swojej wersji:

PREFERENCJE / KONTAKTY SKLEPU

przewiń stronę w dół tam jest pole wypwłnine adresem  [email protected].

 

potem przejdz do:

ZAAWANSOWANE / ADRES E-MAIL 

i tu wybierz Użyj funkcji mail() w PHP (zalecane; działa w większości przypadków)

 

powodzenia

Link to comment
Share on other sites

  • 0

U mnie nie zadziałało, z tym że nie mam czegość takiego jak preferencje/kontakty sklepu tylko klienci/kontakty. Moja wersja presty to 1.5.6.1

 

Miałem ten problem. Ustaw ten sam adres e-mail w preferencje/kontakty sklepu i niżej preferencje/dane kontaktowe.

 

Wszysko działa nawet na home.pl :)

 

W zakładce zaawansowane adrees e-mail ustaw też ten sam co wyżej, a w ustawieniach:

Użyj funkcji mail() w PHP (zalecane; działa w większości przypadków)

 

pozdrawiam

Piotrek

 

U mnie też nie chciało na home.pl działać, ale wg tego co pisze palcerzak udało mi się w końcu odpalić wysyłanie maili. Mam preste 1.5.6.2.

Link to comment
Share on other sites

  • 0

Witam,
mam podobny problem z home.pl i nie dochodzeniem maili. Wiem że mam edytować nagłówek FROM i wstawić tam adres e-mail pochodzący z home, oraz reply-to w którym będzie podawany adres e-mail nadawcy wiadomości.
Czy ktoś może podpowiedzieć czy w tym miejscu (zaznaczyłem /////) to edytować i jak sformułować kod? Jeżeli to nie ten fragment kodu mogę wrzucić resztę.

class ContactControllerCore extends FrontController
{
	public $php_self = 'contact-form.php';
	public $ssl = true;

	public function preProcess()
	{
		parent::preProcess();

		if (self::$cookie->isLogged())
		{
			self::$smarty->assign('isLogged', 1);
			$customer = new Customer((int)(self::$cookie->id_customer));
			if (!Validate::isLoadedObject($customer))
				die(Tools::displayError('Customer not found'));
			$products = array();
			$orders = array();
			$getOrders = Db::getInstance()->ExecuteS('
			SELECT id_order
		/////	FROM '._DB_PREFIX_.'orders
			WHERE id_customer = '.(int)$customer->id.' ORDER BY date_add');
			foreach ($getOrders as $row)
			{
				$order = new Order((int)$row['id_order']);
				$date = explode(' ', $order->date_add);
				$orders[(int)$row['id_order']] = Tools::displayDate($date[0], self::$cookie->id_lang);
				$tmp = $order->getProducts();
				foreach ($tmp as $key => $val)
				$products[$val['product_id']] = $val['product_name'];
			}

Edited by bienio (see edit history)
Link to comment
Share on other sites

  • 0

Też miałem ten problem i pomogło przerobienie pliku ContactController.php który się znajduję: controllers/front/ContactController.php. W lini numer 196 usunąłem $from i w to miejsce wpisałem adres mailowy sklepu który jest na domenie home.pl. Oczywiście też ten adres trzeba wpisać w Preście w Zaawansowane/Adresy e-mail. Poniżej zamieszam przerobioną linijkę kodu. U mnie ładnie działa.

$var_list, $contact->email, $contact->name, '[email protected]', ($customer->id ? $customer->firstname.' '.$customer->lastname : ''),
  • Like 1
Link to comment
Share on other sites

  • 0

Wielkim fanem domku.pl nie jestem ale Presta działa bez problemu (w końcu zdali sobie sprawę aby jej nie sabotować? ;) )

nie uwierze, ze po instalacji ot tak wsyzstko dziala poprawnie bez zmiany paru rzeczy.... niestety 'domek' jest na takiej konfigracji, ze nie ma moliwosci, zeby od pierwszego presta ruszyla, a przede wszystkim dzialala sprawnie w 100%.

drugie, ciezko sie doprosic zeby zmienili tak trywialne rzeczy jak np. max_input_vars, a bez tego zapomnijmy o prostym tlumaczeniu sklepu, allow_memory - zpomnijmy o wiekszej ilosci kategorii czy sporej ilosci produktow, klientow, ogolnie ruchu na stornie.

Edited by design4VIP (see edit history)
Link to comment
Share on other sites

  • 0

Co innego jak za sklep zabiera się ktoś niedoświadczony i kupuje sobie sprawdzony "markowy" hosting w "promocji" i narzeka, że tamto siamto nie działa, a co innego jak za pracę zabiera się specjalista, który nie ma wyjścia i musi wykorzystać środki jakimi dysponuje klient z takich a nie innych przyczyn.

 

1) max_input_vars, a tym samym tłumaczenia "z admina" - nie są żadnym problemem a wszystko udokumentowane jest jak to osiągnąć samodzielnie (nie trzeba sie nikogo prosić - a i tak sami tego nie zrobią),

2) zmiana .htaccess w modules, themes to już norma i nie stanowi przeszkody w dalszym działaniu sklepu.

 

Nie jestem fanem jak wspomniałem i uważam że support pozostawia bardzo złe wrażenie (ile ja żółci tam wylałem to głowa mała), ale jeśli chodzi o samą pracę i stabilność ustawionego sklepu (nie jednego...) nie mogę mieć od jakiegoś czasu żadnych zastrzeżeń.

 

Podam pewien cytat: "Jeśli ktoś chce znajdzie sposób. Jeśli ktoś nie chce znajdzie powód"

Link to comment
Share on other sites

  • 0

no i poruszyles dosc istatotna kwestie... "kowalski" kontra specjalista.... ilu jest specjalistow a ilu "kowalskich" starajacych sie postawic sklep jak najtanszym kosztem (najlepiej za darmo) poswiecajaych swoj wlasny czas... to dla nich jest to forum ;)

 

co do punktow:

1. stawialem juz sklepy na wielu serwerach i zazwyczaj nie bylo problemu ze zmiania wposmnianych wartosci przez support lub wyslanie przynajmniej informacji gdzie i co nalezy zmienic samemu. w home, ale nie ma w ogole odpowiedzi albo "nie da sie" - "zaplaciles na 3 lata to teraz sie martw sam, widzialy galy co braly" - to powinni miec wielkimi literami na stronie glownej jako motto przewodnie :D

 

2. z tym htacces to tez nie takie "wprost" dla "Kowalskiego". po pierwsze trzeba wiedziec co to za plik i do czego sluzy, po drugie trzeba wiedziec co i gdzie wprowdzic. owszem, zaraz napiszesz, ze bylo to tyle razy pisane juz na forach... owszem, ale tez trzeba wiedziec co i gdzie szukac. a to wcale nie jest takie oczywiste dla poczatkujacego.

 

sam jak psizesz straciles wiele nerwow na poczatku, wiec sam powiniens teraz klaniac sie pytajacym tutaj ;) sam to przechodziles, a ze przeszedles to teraz jestes "Panem" ;) "Kowalki" jak przez to przebrnie tez nim bedzie i miejmy nadzieje, na przyszlosc bedzie dzielil sie rowniez swoja wiedza ;)

 

nie twierdze, ze nie da sie postawic Presta (niewielkiego) na home, da sie, ale wymaga to paru zmian i dostosowan presta do specyficznej konfiguracji tego serwera: htacces, dopisanie zwiekszenia wartosci zmiennych czy wpisania "na twardo" w kontroler adresu email do wysylki.... a to dopiero poczatek ;)  

Link to comment
Share on other sites

  • 0

Przetestowałem wszystkie porady z tego wątku, nadal dla mail() otrzymuję:

 

Błąd: proszę sprawdzić konfigurację
Sending failed using mail() as PHP's default mail() function returned boolean FALSE.

zaś dla SMTP czy to home.pl czy gmail.com:

 

The SMTP connection failed to start  [...] : fsockopen returned Error Number 0 and Error String ''

 

Wersja PrestaShop 1.6.0.14

Wersja PHP 5.3.29

Wersja MySQL 5.5.41

Link to comment
Share on other sites

  • 0

Poprawka w trzech plikach. Działa w 1.5.6.2 (w 1.6 nie sprawdzałem) na serwerze home.pl klasy podstawowej (nie biznesowej)

  • /tools/swift/Swift/Plugin/MailSend.php
  • /tools/swift/Swift/Message.php
  • /tools/swift/Swift.php

/tools/swift/Swift/Plugin/MailSend.php

Z:
$headers = $headers->build();

Na:
$headers = $headers->build();
$params = "";

/tools/swift/Swift/Message.php

Z:
$this->setFrom("");

Na:
$this->setFrom("twó[email protected]");

/tools/swift/Swift.php

Z:
if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);

Na:
if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);
if (!$has_reply_to[0]) $message->setReplyTo($from->getAddress());

Link to comment
Share on other sites

  • 0

Witam

 

Od jakiegoś czasu mam analogiczny problem funkcja mail() wysyła mail testowy, jednak zamówienia i potwierdzenia nie przychodzą..

Nie mogę skonfigurować skrzynki smtp z home.pl przy zalecanych ustawieniach.

Działam na wersji 1.6

Link to comment
Share on other sites

  • 0

Tak przy okazji kochani forumowicze  ^_^

Tak na logikę (oczywiście moja "subiektywna" opinia dotyczy w/w problemu"):

- kupujesz serwer (pierwszy rok w promocji później różnie bywa)

- płacisz za niego

- chcesz prowadzić na nim sklep Prestashop

- wiesz, że będą problemy (już po samej instalacji jak i z pocztą)

- w kilka dni po instalacji zaczynasz szukać "cudownych" rozwiązań ponieważ dziwnym  ;) trafem Twój sklep nie chce prawidłowo działać

- tracisz nerwy. czas i ciągle szukasz, pytasz... 

- ludzie na tym forum oczywiście pomagają  :D

- w tym czasie administrator Twojego serwera też się pewnie zastanawia czemu zapłaciłeś mu za to żeby z "bananem" pod nosem skutecznie utrudniał Ci życie...?

Stąd pytanie: po co to wszystko?????? Po co na własne życzenie i za własne pieniądze kupować sobie problemy???? - czy ktoś potrafi odpowiedzieć na to pytanie?

  • Like 1
Link to comment
Share on other sites

  • 0

u mnie nadal nie działa żadna z metod jaką opisujecie .
nawet w tym pliku 
CONTACT CONTROLlER.PHP
 
mój kod wygląda inaczej nie co od tego wyżej, może ktoś pomuc mi go zmodyfikowac. bo nie wiem co jeszcze i gdzie moge zmienić 
 
to kod:

<?php
/*
* 2007-2016 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2016 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
 
class ContactControllerCore extends FrontController
{
    public $php_self = 'contact';
    public $ssl = true;
 
    /**
    * Start forms process
    * @see FrontController::postProcess()
    */
    public function postProcess()
    {
        if (Tools::isSubmit('submitMessage')) {
            $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
            $file_attachment = Tools::fileAttachment('fileUpload');
            $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
            if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
                $this->errors[] = Tools::displayError('Invalid email address.');
            } elseif (!$message) {
                $this->errors[] = Tools::displayError('The message cannot be blank.');
            } elseif (!Validate::isCleanHtml($message)) {
                $this->errors[] = Tools::displayError('Invalid message');
            } elseif (!($id_contact = (int)Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) {
                $this->errors[] = Tools::displayError('Please select a subject from the list provided. ');
            } elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) {
                $this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
            } elseif (!empty($file_attachment['name']) && !in_array(Tools::strtolower(substr($file_attachment['name'], -4)), $extension) && !in_array(Tools::strtolower(substr($file_attachment['name'], -5)), $extension)) {
                $this->errors[] = Tools::displayError('Bad file extension');
            } else {
                $customer = $this->context->customer;
                if (!$customer->id) {
                    $customer->getByEmail($from);
                }
 
                $id_order = (int)$this->getOrder();
 
                if (!((
                        ($id_customer_thread = (int)Tools::getValue('id_customer_thread'))
                        && (int)Db::getInstance()->getValue('
SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm
WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->id.' AND token = \''.pSQL(Tools::getValue('token')).'\'')
                    ) || (
                        $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($from, $id_order)
                    ))) {
                    $fields = Db::getInstance()->executeS('
SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email
FROM '._DB_PREFIX_.'customer_thread cm
WHERE email = \''.pSQL($from).'\' AND cm.id_shop = '.(int)$this->context->shop->id.' AND ('.
                        ($customer->id ? 'id_customer = '.(int)$customer->id.' OR ' : '').'
id_order = '.(int)$id_order.')');
                    $score = 0;
                    foreach ($fields as $key => $row) {
                        $tmp = 0;
                        if ((int)$row['id_customer'] && $row['id_customer'] != $customer->id && $row['email'] != $from) {
                            continue;
                        }
                        if ($row['id_order'] != 0 && $id_order != $row['id_order']) {
                            continue;
                        }
                        if ($row['email'] == $from) {
                            $tmp += 4;
                        }
                        if ($row['id_contact'] == $id_contact) {
                            $tmp++;
                        }
                        if (Tools::getValue('id_product') != 0 && $row['id_product'] == Tools::getValue('id_product')) {
                            $tmp += 2;
                        }
                        if ($tmp >= 5 && $tmp >= $score) {
                            $score = $tmp;
                            $id_customer_thread = $row['id_customer_thread'];
                        }
                    }
                }
                $old_message = Db::getInstance()->getValue('
SELECT cm.message FROM '._DB_PREFIX_.'customer_message cm
LEFT JOIN '._DB_PREFIX_.'customer_thread cc on (cm.id_customer_thread = cc.id_customer_thread)
WHERE cc.id_customer_thread = '.(int)$id_customer_thread.' AND cc.id_shop = '.(int)$this->context->shop->id.'
ORDER BY cm.date_add DESC');
                if ($old_message == $message) {
                    $this->context->smarty->assign('alreadySent', 1);
                    $contact->email = '';
                    $contact->customer_service = 0;
                }
 
                if ($contact->customer_service) {
                    if ((int)$id_customer_thread) {
                        $ct = new CustomerThread($id_customer_thread);
                        $ct->status = 'open';
                        $ct->id_lang = (int)$this->context->language->id;
                        $ct->id_contact = (int)$id_contact;
                        $ct->id_order = (int)$id_order;
                        if ($id_product = (int)Tools::getValue('id_product')) {
                            $ct->id_product = $id_product;
                        }
                        $ct->update();
                    } else {
                        $ct = new CustomerThread();
                        if (isset($customer->id)) {
                            $ct->id_customer = (int)$customer->id;
                        }
                        $ct->id_shop = (int)$this->context->shop->id;
                        $ct->id_order = (int)$id_order;
                        if ($id_product = (int)Tools::getValue('id_product')) {
                            $ct->id_product = $id_product;
                        }
                        $ct->id_contact = (int)$id_contact;
                        $ct->id_lang = (int)$this->context->language->id;
                        $ct->email = $from;
                        $ct->status = 'open';
                        $ct->token = Tools::passwdGen(12);
                        $ct->add();
                    }
 
                    if ($ct->id) {
                        $cm = new CustomerMessage();
                        $cm->id_customer_thread = $ct->id;
                        $cm->message = $message;
                        if (isset($file_attachment['rename']) && !empty($file_attachment['rename']) && rename($file_attachment['tmp_name'], _PS_UPLOAD_DIR_.basename($file_attachment['rename']))) {
                            $cm->file_name = $file_attachment['rename'];
                            @chmod(_PS_UPLOAD_DIR_.basename($file_attachment['rename']), 0664);
                        }
                        $cm->ip_address = (int)ip2long(Tools::getRemoteAddr());
                        $cm->user_agent = $_SERVER['HTTP_USER_AGENT'];
                        if (!$cm->add()) {
                            $this->errors[] = Tools::displayError('An error occurred while sending the message.');
                        }
                    } else {
                        $this->errors[] = Tools::displayError('An error occurred while sending the message.');
                    }
                }
 
                if (!count($this->errors)) {
                    $var_list = array(
                                    '{order_name}' => '-',
                                    '{attached_file}' => '-',
                                    '{message}' => Tools::nl2br(stripslashes($message)),
                                    '{email}' =>  $from,
                                    '{product_name}' => '',
                                );
 
                    if (isset($file_attachment['name'])) {
                        $var_list['{attached_file}'] = $file_attachment['name'];
                    }
 
                    $id_product = (int)Tools::getValue('id_product');
 
                    if (isset($ct) && Validate::isLoadedObject($ct) && $ct->id_order) {
                        $order = new Order((int)$ct->id_order);
                        $var_list['{order_name}'] = $order->getUniqReference();
                        $var_list['{id_order}'] = (int)$order->id;
                    }
 
                    if ($id_product) {
                        $product = new Product((int)$id_product);
                        if (Validate::isLoadedObject($product) && isset($product->name[Context::getContext()->language->id])) {
                            $var_list['{product_name}'] = $product->name[Context::getContext()->language->id];
                        }
                    }
 
                    if (empty($contact->email)) {
                        Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment);
                    } else {
                        if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]',
                            $var_list, $contact->email, $contact->name, null, null,
                                    $file_attachment, null,    _PS_MAIL_DIR_, false, null, null, $from) ||
                                !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) {
                            $this->errors[] = Tools::displayError('An error occurred while sending the message.');
                        }
                    }
                }
 
                if (count($this->errors) > 1) {
                    array_unique($this->errors);
                } elseif (!count($this->errors)) {
                    $this->context->smarty->assign('confirmation', 1);
                }
            }
        }
    }
 
    public function setMedia()
    {
        parent::setMedia();
        $this->addCSS(_THEME_CSS_DIR_.'contact-form.css');
        $this->addJS(_THEME_JS_DIR_.'contact-form.js');
        $this->addJS(_PS_JS_DIR_.'validate.js');
    }
 
    /**
    * Assign template vars related to page content
    * @see FrontController::initContent()
    */
    public function initContent()
    {
        parent::initContent();
 
        $this->assignOrderList();
 
        $email = Tools::safeOutput(Tools::getValue('from',
        ((isset($this->context->cookie) && isset($this->context->cookie->email) && Validate::isEmail($this->context->cookie->email)) ? $this->context->cookie->email : '')));
        $this->context->smarty->assign(array(
            'errors' => $this->errors,
            'email' => $email,
            'fileupload' => Configuration::get('PS_CUSTOMER_SERVICE_FILE_UPLOAD'),
            'max_upload_size' => (int)Tools::getMaxUploadSize()
        ));
 
        if (($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && $token = Tools::getValue('token')) {
            $customer_thread = Db::getInstance()->getRow('
SELECT cm.*
FROM '._DB_PREFIX_.'customer_thread cm
WHERE cm.id_customer_thread = '.(int)$id_customer_thread.'
AND cm.id_shop = '.(int)$this->context->shop->id.'
AND token = \''.pSQL($token).'\'
');
 
            $order = new Order((int)$customer_thread['id_order']);
            if (Validate::isLoadedObject($order)) {
                $customer_thread['reference'] = $order->getUniqReference();
            }
            $this->context->smarty->assign('customerThread', $customer_thread);
        }
 
        $this->context->smarty->assign(array(
            'contacts' => Contact::getContacts($this->context->language->id),
            'message' => html_entity_decode(Tools::getValue('message'))
        ));
 
        $this->setTemplate(_PS_THEME_DIR_.'contact-form.tpl');
    }
 
    /**
    * Assign template vars related to order list and product list ordered by the customer
    */
    protected function assignOrderList()
    {
        if ($this->context->customer->isLogged()) {
            $this->context->smarty->assign('isLogged', 1);
 
            $products = array();
            $result = Db::getInstance()->executeS('
SELECT id_order
FROM '._DB_PREFIX_.'orders
WHERE id_customer = '.(int)$this->context->customer->id.Shop::addSqlRestriction(Shop::SHARE_ORDER).' ORDER BY date_add');
 
            $orders = array();
 
            foreach ($result as $row) {
                $order = new Order($row['id_order']);
                $date = explode(' ', $order->date_add);
                $tmp = $order->getProducts();
                foreach ($tmp as $key => $val) {
                    $products[$row['id_order']][$val['product_id']] = array('value' => $val['product_id'], 'label' => $val['product_name']);
                }
 
                $orders[] = array('value' => $order->id, 'label' => $order->getUniqReference().' - '.Tools::displayDate($date[0], null) , 'selected' => (int)$this->getOrder() == $order->id);
            }
 
            $this->context->smarty->assign('orderList', $orders);
            $this->context->smarty->assign('orderedProductList', $products);
        }
    }
 
    protected function getOrder()
    {
        $id_order = false;
        if (!is_numeric($reference = Tools::getValue('id_order'))) {
            $reference = ltrim($reference, '#');
            $orders = Order::getByReference($reference);
            if ($orders) {
                foreach ($orders as $order) {
                    $id_order = (int)$order->id;
                    break;
                }
            }
        } elseif (Order::getCartIdStatic((int)Tools::getValue('id_order'))) {
            $id_order = (int)Tools::getValue('id_order');
        }
        return (int)$id_order;
    }
}
Edited by endriu107
Używaj znaczników code <> (see edit history)
Link to comment
Share on other sites

  • 0

Co i po co chcesz zmieniać? Konfiguracja poczty przez SMTP i sklep w aktualnych wersjach 1.6.1.x powinien działać bez przeróbek.

Powinien ale nie działa, nie wiem co i gdzie i jak jeszcze moge zmienić aby naprawić ten błąd jakieś pomysły ??

http://oloedition.com/pl/kontakt

 

nadal mam ten sam błąd :(

jest 1 błąd

  1. Wystąpił błąd podczas wysyłania wiadomości.
Link to comment
Share on other sites

  • 0

 

Powinien ale nie działa, nie wiem co i gdzie i jak jeszcze moge zmienić aby naprawić ten błąd jakieś pomysły ??

http://oloedition.com/pl/kontakt

 

nadal mam ten sam błąd :(

jest 1 błąd

  1. Wystąpił błąd podczas wysyłania wiadomości.

 

Twoje problemy nie polegają na błędach w plikach sklepu.

Używasz w sklepie poczty "gmail.com" na serwerze home_pl, a oni od pewnego czasu wprowadzili kolejne "usprawnienie" dla klientów - poniżej cytat:

 

"WAŻNE! Adres e-mail nadawcy zawarty w nagłówku wiadomości musi istnieć w ramach konta, do którego nastąpiła autoryzacja. W przeciwnym wypadku wysyłka wiadomości nie zostanie zrealizowana. Dotyczy to programów pocztowych oraz skryptów, które obsługują wysyłkę wiadomości e-mail."

 

Dlatego aby ze sklepu wysyłać pocztę załóż konto na Swoim serwerze (najlepiej w domenie sklepu), przypisz tę skrzynkę w ustawieniach sklepu i sprawdź czy wysyła...?

Powinno być OK :D  

Link to comment
Share on other sites

  • 0

tak zrobiłem, ma na home.pl email [email protected] , bezpośrednio na te poczte nic nie działa, więc wyczytałem tu żeby zrobić przekierowanie w home na gmail, tak też ustawiłem w home.pl. a w ustawieniach w panelu dałem adres email z gmail, wszędzie kdzie tylko opcja taka wstawienia była, i niestety nadal to samo. 

Link to comment
Share on other sites

  • 0

Kombinujesz za bardzo  ;) Przekierowanie nic nie pomoże na ten filtr w home...

Utwórz nowe konto pocztowe i ustaw je w sklepie w zakładce:

- Preferencje > Kontakty sklepu

- i co najważniejsze również w: Klienci > Kontakty (sklep wysyła wiadomość na adres jaki tu jest wpisany oraz na adres klienta potwierdzenie).

Po tych zmianach sprawdź e-mail testowy czy jest wysyłany (Zaawansowane > Adres e-mail na dole strony).

 

Ps. przywróć również plik, w którym robiłeś zmiany na oryginalny (jeśli zmiany były w nim robione).

Link to comment
Share on other sites

  • 0

też nic. żadne ustawienia nie pomagają to jakiś inny problem. 

podejżewam że to związane z SSL, home pl wręcz zmusza do wykupienia pakietu, a druga sprawa, na poczte wysyła email gdzie masz potwierdzić swój email przypisany do domeny albo ci ją wyłączą :) jebadełka ....... napewno jest jakies rozwiązanie, nie może tak być ze wprowadzają wymaszanie na zakupy ich produktów. 

 

tu potrzeba wiedzy kogoś doświadczonego w tej dziedzinie aby to ominąc albo jakiś wymyśleć moduł dla presty na te ewentualność .

Link to comment
Share on other sites

  • 0

Błąd jest prawdopodobnie gdzieś po Twojej stronie  ;)  Na home działa wiele sklepów Prestasop (jedne lepiej inne gorzej - ale to już inny temat) i w tych które znam, a jest ich kilkaset poczta działa prawidłowo i home niczego od nich nie wymusza (certyfikatu też nie - kupuje je kto chce).

Z takim nastawieniem to raczej problemu nie rozwiążesz  :(

Link to comment
Share on other sites

  • 0

łatwo się mówi, skozystałem z każdej możliwej opcji jaka tu znalazłem i sugestii a mimo to błąd nadal sie pojawia taki sam. . no nic, co zrobić. poszukam płatnie usługi , może ona pomoże to opisze co było powodem tego błędu .Dziękuje za wszelkie chęci pomocy z tym tematem. 

Link to comment
Share on other sites

  • 0

Już nie podawaj tych dostępów do panelu sklepu...

Wstaw tylko czysty (bez przekierowań) adres e-mail w te miejsca:

- Preferencje > Kontakty sklepu

- i co najważniejsze również w: Klienci > Kontakty

i daj znać czy jest OK???  :P

Link to comment
Share on other sites

  • 0

Ja pitole ,  2 tyg pitolenia i działa, powiedz teraz gdzie popełniłem błąd abym wiedział w przyszłośći co i jak zrobić . i Serdecznie dziękuje za wszelką pomoc .

Dwa błędy:

1 - zmieniłeś plik w katalogu: ..../classes/Mail.php na błędny z GitHub - pisałem Ci kilka postów wcześniej abyś zmienił na oryginalny i nie zmieniłeś  :(

2 - błędna konfiguracja SMTP - zmieniłem Ci na PHP Mail (SMTP też będzie działać lecz musisz to prawidłowo skonfigurować - poprawne ustawienia znajdziesz gdzieś w pomocy home_pl).

I to tyle... ;)  

Link to comment
Share on other sites

  • 0

Kurcze byłem pewny że te pliki dałem poprawne. tak to jest dziesiątki kombinacji aż czlowiek sam się pogubił. Jesteś wielki dziękuje naprawdę za te pomoc, byłem gotów zapłacić za te usługe, wiec i tak bym stracił, chce się odwdzięczyc i te kase przeleje tobie. podaj na priv dane do przelewu, chciaż tak się odwdziecze . 

Link to comment
Share on other sites

  • 0

Kurcze byłem pewny że te pliki dałem poprawne. tak to jest dziesiątki kombinacji aż czlowiek sam się pogubił. Jesteś wielki dziękuje naprawdę za te pomoc, byłem gotów zapłacić za te usługe, wiec i tak bym stracił, chce się odwdzięczyc i te kase przeleje tobie. podaj na priv dane do przelewu, chciaż tak się odwdziecze . 

Nie trzeba - na tym forum pomoc jest za FREE  :D - Powodzenia...

Link to comment
Share on other sites

  • 0

Mało takich Forum jak te, to przyzna mi setki osób tu kożystających, no i osób jak PMaster . DZIĘKUJE

no i zapraszam w przyszłości do mego sklepu, zaczynam jako producent wyrobów gipsowych i betonowych oraz form. panele 3d , imitacja drewna itd

 . cała strona ze współpracy z tym forum powstała. a jak zaczynałem to nawet nie wiedziałem co to CMS hehehe

http://www.oloedition.com

Pazdrawiam <Marcin

Edited by inspir (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...