problem z wysyłaniem mail/zamówieniami

Wszystko na temat instalacji oprogramowania KQS.store oraz aktualizacji skryptu do najnowszej wersji. Dowiesz się także co nowego pojawiło się w sklepie KQS oraz znajdziesz pełną listę zmian które weszły w nowej wersji.

problem z wysyłaniem mail/zamówieniami

przez wesmar » 2020 cze 29, Pn 13:39

Witam chcę przenieść sklep na inny server. Środowisko php-fpm (wersje różne od 7.1 do 7.4) najnowszy ioncube, aktualnie 7.3, sklep w całości działa wersja 5.5 wczorajsza, ale i starsze, nawet świeży, nie wysyła, brak logów z php.mail. Wszystko utyka gdzieś wewnątrz (na 100% nie jest to kwestia portów, ustawień etc..). Inne sklepy nie kodowane wysyłają, to samo wordpress'y drupale itd.., przyczyną nie są ustawienia. Kolokwialnie php mail() działa. Ktoś wie jak to debuggować?. Przez pliki_zrodlowe... stndard.php? Miał ktoś taki przypadek. Można sprawdzić Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się modyfikując plik hosts np. pod windows dopisując:
91.185.187.251 artequipment.pl
91.185.187.251 Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
W trakcie odpalania certboota nastąpiło przekierowania na Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się i komunikat, że został dopisany do linii nielegalnych, ale jest legalny opłacony i raczej problem nie jest też tu ponieważ logów mailowych nie ma (apache'a są OK)!
Prawdziwy sklep chodzi na OVH. Jak ustawię mail.log na /path_serwisu/aaa.log to każdy z innych sklepów crm-ów odbije loga, a ten nie. Utyka to wszystko. Środowisko jest nowe, ale http/2, niestety co bym nie robił nie mam pomysłu jak złapać co się dzieje. Błąd klasyka:
"Wystąpił błąd! Nie udało się dokończyć zamówienia, spróbuj ponownie" Kombinuję z konkatenacjami mysql /myisam, innodb, ale nic. Tak jakby funkcja php mail () nie istniała. Testuję z poziomu quasi-domeny na:
Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
<?php
    ini_set( 'display_errors', 1 );
    error_reporting( E_ALL );
    $from = "sklep@artequipment.pl";
    $to = "moj_mail@domena.pl";
    $subject = "mail testowy z php";
    $message = "To jest mail testowy sprawdzający funkcję PHP mail";
    $headers = "From:" . $from;
    mail($to,$subject,$message, $headers);
    echo "wysłano wiadomość";
?>

To jest OK
 
Autor tematu
Posty: 10
Dołączył(a): 2010 mar 10, Śr 20:25
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: problem z wysyłaniem mail/zamówieniami

przez wesmar » 2020 cze 29, Pn 18:24

Działa. MySQL 8 ma ograniczoną obsługę MyISAM, przekonvertowałem bazę na InnoDB:
Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
DROP PROCEDURE IF EXISTS convertToInnodb;
DELIMITER //
CREATE PROCEDURE convertToInnodb()
BEGIN
mainloop: LOOP
   SELECT TABLE_NAME INTO [url=https://www.fosi.pl/memberlist.php?mode=viewprofile&un=convertTable][b]convertTable[/b][/url] FROM information_schema.TABLES
   WHERE `TABLE_SCHEMA` LIKE DATABASE()
   AND `ENGINE` LIKE 'MyISAM' ORDER BY TABLE_NAME LIMIT 1;
   IF [url=https://www.fosi.pl/memberlist.php?mode=viewprofile&un=convertTable][b]convertTable[/b][/url] IS NULL THEN
      LEAVE mainloop;
   END IF;
   SET [url=https://www.fosi.pl/memberlist.php?mode=viewprofile&un=sqltext][b]sqltext[/b][/url] := CONCAT('ALTER TABLE `', DATABASE(), '`.`', [url=https://www.fosi.pl/memberlist.php?mode=viewprofile&un=convertTable][b]convertTable[/b][/url], '` ENGINE = INNODB');
   PREPARE convertTables FROM [url=https://www.fosi.pl/memberlist.php?mode=viewprofile&un=sqltext][b]sqltext[/b][/url];
   EXECUTE convertTables;
   DEALLOCATE PREPARE convertTables;
   SET [url=https://www.fosi.pl/memberlist.php?mode=viewprofile&un=convertTable][b]convertTable[/b][/url] = NULL;
END LOOP mainloop;

END//
DELIMITER ;

CALL convertToInnodb();
DROP PROCEDURE IF EXISTS convertToInnodb;

Potem by zrzucić i zaimportować innodb zrobiłem jeszcze:
Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
sed -ie 's/ROW_FORMAT=FIXED//g'

Wyczyściłem logi binarne wsadowo:
PURGE BINARY LOGS TO 'binlog.000xxx';
Potem jeszcze:
mysql -i -BN -e 'SELECT Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się | grep -E 'ONLY_FULL_GROUP_BY|STRICT_TRANS_TABLES'
tak by uzyskać:
SHOW VARIABLES LIKE 'sql_mode'; ---> sql_mode | NO_ENGINE_SUBSTITUTION
Domyślnie w Ubuntu20.04 chcąc korzystać z dobrodziejstw zautomatyzowanego certboota, http/2, szybkiego php7.4, jajka z wyłaczeniem mityacji inspectre. meltodwn - bez zmian w MySQL 8.0.x nie będzie sklep wysyłał. MyISAM się skończyl po 20 latach, sklep ma ten mechanizm składowania jako domyślny
To tyle, nie chce mi się rozpisywać jak do tego doszedłem, wszystko już działa


P.S - w podglądzie widzę, że forum ma poważny błąd i mój kod zmiania na fosi.pl/.... co jest bzdurą kompletną, ale to już autor forum pewnie poprawi
 
Autor tematu
Posty: 10
Dołączył(a): 2010 mar 10, Śr 20:25
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy


Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości
cron