Złe kodowanie PL znaków w mailach (krzaki)

Started by KosiMazaki, June 27, 2014, 06:07:13 AM

Previous topic - Next topic

KosiMazaki

Witam serdecznie

Od jakiegoś czasu borykam się z problemem rozjechanych PL znaków w mailach rozsyłanych przez forum w powiadomieniach. Forum stoi na aktualnym skrypcie 2.0.8, domyślne kodowanie znaków to UTF-8. Zainstalowane mody:

Post Count Visible Only To Admin    1.0.2
SimpleColorizer     1.1
Post History    1.03
Tapatalk SMF 2.0 Plugin    4.0.1

Styl forum domyślny. Próbowałem maile rozsyłać bezpośrednio przez SMTP jak i PHP niestety raz na jakiś czas losowo przychodzi taki mail:


Mogliśmy wysłać Ci kartkę urodzinową. Mogliśmy wysłać Ci bukiet kwiatów lub
tort.

Ale tego nie zrobiliśmy.

Mogliśmy nawet wysłać Ci jedną z tych automatycznie generowanych wiadomości z
życzeniami urodzinowymi, gdzie nawet nie trzeba umieszczać Twojego imienia.

Ale tego nie zrobiliśmy.

Napisaliśmy te Serdeczne Życzenia Urodzinowe dokładnie dla Ciebie!

Chcielibyśmy życzyć Ci naprawdę wyjątkowych urodzin!


Tak wygląda pełen nagłówek:


Return-Path: <[email protected] >
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from firkin.vectranet.pl (firkin.vectranet.pl [88.156.222.80])
     (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
     (No client certificate requested)
     by poczta.vectranet.pl (Postfix) with ESMTP id 67D0A695D176
     for <[email protected] >; Fri, 27 Jun 2014 01:05:13 +0200 (CEST)
Received: from firkin.vectranet.pl (localhost [127.0.0.1])
     by firkin.vectranet.pl (Postfix) with ESMTP id A0FA437B73C
     for <[email protected] >; Fri, 27 Jun 2014 01:05:19 +0200 (CEST)
X-Virus-Scanned: amavisd-new at firkin.vectranet.pl
X-Spam-Flag: NO
X-Spam-Score: -0.169
X-Spam-Level:
X-Spam-Status: No, score=-0.169 tagged_above=-9999 required=6.2
     tests=[BAYES_00=-1.9, MIME_BASE64_TEXT=1.741, T_RP_MATCHES_RCVD=-0.01]
     autolearn=ham
Received: from firkin.vectranet.pl ([127.0.0.1])
     by firkin.vectranet.pl (fulcrum.vectranet.pl [127.0.0.1]) (amavisd-new, port 10024)
     with ESMTP id WMaE2eTOUuoD for <[email protected] >;
     Fri, 27 Jun 2014 01:05:14 +0200 (CEST)
Received: froum n25.netmark.pl (smtp2.n25.netmark.pl [94.124.9.112])
     by firkin.vectranet.pl (Postfix) with ESMTPS id 4A06337B5CD
     for <[email protected] >; Fri, 27 Jun 2014 01:05:14 +0200 (CEST)
Received: from forum by n25.netmark.pl with local (Exim 4.82)
     (envelope-from <[email protected] >)
     id 1X0IjB-000FVt-Ek
     for [email protected] ; Fri, 27 Jun 2014 01:05:13 +0200
To: [email protected]
Subject: W dniu Twoich urodzin...
X-PHP-Script: forum.pl/index.php for 89.67.97.23
From: "=??B?Rm9ydW0gTWnFgm/Fm25pa8OzdyBTeW11bGF0b3LDs3cgTG90bmljenljaA==?=" <[email protected] >
Date: Thu, 26 Jun 2014 23:05:13 -0000
X-Mailer: SMF
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="SMF-1978c469134d386f8d82c18d496cd1f9"
Content-Transfer-Encoding: 7bit
Message-Id: <[email protected]>
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - n25.netmark.pl
X-AntiAbuse: Original Domain - dami.pl
X-AntiAbuse: Originator/Caller UID/GID - [1211 1208] / [47 12]
X-AntiAbuse: Sender Address Domain - n25.netmark.pl
X-Get-Message-Sender-Via: n25.netmark.pl: authenticated_id: forum/only user confirmed/virtual account not confirmed


Jedyna zmiana to ukrycie nazwy mojego maila tak na wszelki wypadek ;). Jakieś pomysły?

Pozdrawiam
Mazak

cieplutki

Może ...
Administracja -> konserwacja -> Mail ... -> Opcje maili
Zmień w konfiguracji: Typ Emailu - na domyślny PHP.

powinno pomóc




.

KosiMazaki

Dziękuję za odpowiedź. Tak jak napisałem w pierwszym poście wypróbowałem obie opcje i nic się nie poprawiło na lepsze. Babol jest gdzieś indziej :).

Adrek

Spróbuj w Subs-Post.php wykonać taką zmianę:
Code (Znajdź) Select
$headers .= 'Content-Type: multipart/alternative; boundary="' . $mime_boundary . '"' . $line_break;
Code (Zamień na) Select
$headers .= 'Content-type: text/html; charset=utf-8' . $line_break;
Polskie wsparcie SMF na simplemachines.org

the simplest solution is most likely the right one

KosiMazaki

Dziękuję za pomoc. W tej chwili dokonałem zmiany i dam znać czy to coś pomogło. Ponadto w weekend udało mi się wygenerować wiadomość dobrze wyświetlającą się. W ramach ciekawostki dodam ją do tematu może pomoże znaleźć źródło problemu :).

Treść wiadomości:

Mogliśmy wysłać Ci kartkę urodzinową. Mogliśmy wysłać Ci bukiet kwiatów lub tort.

Ale tego nie zrobiliśmy.

Mogliśmy nawet wysłać Ci jedną z tych automatycznie generowanych wiadomości z
życzeniami urodzinowymi, gdzie nawet nie trzeba umieszczać Twojego imienia.

Ale tego nie zrobiliśmy.

Napisaliśmy te Serdeczne Życzenia Urodzinowe dokładnie dla Ciebie!

Chcielibyśmy życzyć Ci naprawdę wyjątkowych urodzin!


Pełny nagłówek wiadomości:


Return-Path: <[email protected] >
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from firkin.vectranet.pl (firkin.vectranet.pl [88.156.222.80])
     (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
     (No client certificate requested)
     by poczta.vectranet.pl (Postfix) with ESMTP id 0BB12695BE63
     for <[email protected] >; Sat, 28 Jun 2014 01:00:21 +0200 (CEST)
Received: from firkin.vectranet.pl (localhost [127.0.0.1])
     by firkin.vectranet.pl (Postfix) with ESMTP id 071F537B630
     for <[email protected] >; Sat, 28 Jun 2014 01:00:28 +0200 (CEST)
X-Virus-Scanned: amavisd-new at firkin.vectranet.pl
X-Spam-Flag: NO
X-Spam-Score: -1.403
X-Spam-Level:
X-Spam-Status: No, score=-1.403 tagged_above=-9999 required=6.2
     tests=[BAYES_00=-1.9, MISSING_MID=0.497] autolearn=no
Received: from firkin.vectranet.pl ([127.0.0.1])
     by firkin.vectranet.pl (fulcrum.vectranet.pl [127.0.0.1]) (amavisd-new, port 10024)
     with ESMTP id ML69iaCzKZHv for <[email protected] >;
     Sat, 28 Jun 2014 01:00:22 +0200 (CEST)
Received: from n25.netmark.pl (smtp2.n25.netmark.pl [94.124.9.112])
     by firkin.vectranet.pl (Postfix) with ESMTPS id 8033237B403
     for <[email protected] >; Sat, 28 Jun 2014 01:00:22 +0200 (CEST)
Received: from n25.netmark.pl ([94.124.9.53]:38265 helo=mail.forum.pl)
     by n25.netmark.pl with esmtpa (Exim 4.82)
     (envelope-from <[email protected] >)
     id 1X0f81-002RwV-Iu
     for [email protected] ; Sat, 28 Jun 2014 01:00:22 +0200
Subject: W dniu Twoich urodzin...
To: <[email protected] >
From: "=?UTF-8?B?Rm9ydW0gTWnFgm/Fm25pa8OzdyBTeW11bGF0b3LDs3cgTG90bmljenljaA==?=" <[email protected] >
Date: Fri, 27 Jun 2014 23:00:21 -0000
X-Mailer: SMF
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="SMF-1d47963a09ae7e08d3b3ffaeddd26072"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - n25.netmark.pl
X-AntiAbuse: Original Domain - dami.pl
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dami.pl
X-Get-Message-Sender-Via: n25.netmark.pl: authenticated_id: [email protected]
Message-Id: <[email protected]>


Pozdrawiam
Mazak

Adrek

A gdzie odczytujesz wiadomość? Może program pocztowy lub strona na której odczytujesz emaile jest źle skonfigurowana?
Polskie wsparcie SMF na simplemachines.org

the simplest solution is most likely the right one

KosiMazaki

#6
Pocztę odczytuję w kilku programach - TheBat 6.2x (Pop3) + przez stronę www, Outlook 2010 (IMAP) + przez stronę www. jedno konto pocztowe mam w Vectrze, drugie na o2.pl [nofollow]. Na obu albo się tak samo krzaczyło albo było dobrze. Czasami w telefonie przez aplikację domyślną Email (IMAP) - Android 4.1. Co ciekawe tam te rozjechane wiadomości z życzeniami urodzinowymi wyświetlają się dobrze, natomiast cała korespondencja po zmianie w PHP ma takie same krzaki. Wygląd ana to, że ten domyślny klient w telefonie coś ignoruje i potrafi sobie poradzić z krzakami. Poza tym mała uwaga (teraz zauważyłem) jeśli na kompie wiadomość jest rozjechana, to w telefonie brakuje nadawcy. Ten się nie pojawia. Kiedy porównuję tą samą wiadomość urodzinową z tą która wyświetla się poprawnie na kompie; na telefonie mam i nadawcę i treść. Ponadto z tymi rozjechanymi życzeniami użytkownicy też mieli problem.

Teraz natomiast zauważyłem, że po sugerowanej wyżej zmianie w php zwykłe powiadomienia, korespondencja z forum się rozjeżdżają:


Rxxxr z Forum  wysłał do Ciebie wiadomość. UWAGA: Pamiętaj, to jest tylko powiadomienie. Proszę nie odpowiadać na ten email. Wysłana wiadomość brzmi: Wybrałem Lenovo B5400 z i3. Dzięki Wielkie. Odpowiedz na tą prywatną wiadomość tutaj: http://forum.pl/index.php?action=pm;sa=send;f=inbox;pmsg=49720;quote;u=20 --SMF-8fd7b3f8f6966f57c2d7c3811dd56810 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 UmVkc3BpZGVyIHogRm9ydW0gTWnFgm/Fm25pa8OzdyBTeW11bGF0b3LDs3cgTG90bmljenljaCB3 eXPFgmHFgiBkbyBDaWViaWUgd2lhZG9tb8WbxIcuDQoNClVXQUdBOiBQYW1pxJl0YWosIHRvIGpl c3QgdHlsa28gcG93aWFkb21pZW5pZS4gUHJvc3rEmSBuaWUgb2Rwb3dpYWRhxIcgbmEgdGVuIGVt YWlsLg0KDQpXeXPFgmFuYSB3aWFkb21vxZvEhyBicnptaToNCg0KV3licmHFgmVtIExlbm92byBC NTQwMCB6IGkzLg0KRHppxJlraSBXaWVsa2llLg0KDQpPZHBvd2llZHogbmEgdMSFIHByeXdhdG7E hSB3aWFkb21vxZvEhyB0dXRhajogaHR0cDovL2lsMmZvcnVtLnBsL2luZGV4LnBocD9hY3Rpb249 cG07c2E9c2VuZDtmPWluYm94O3Btc2c9NDk3MjA7cXVvdGU7dT0yMA== --SMF-8fd7b3f8f6966f57c2d7c3811dd56810--


Po przepuszczeniu przez translator z Base64 do txt UTF-8 coś się dało odczytać. Dodam, że w ustawieniach poczty na forum mam ustawione "PHP Standardowo".

Adrek

Polskie wsparcie SMF na simplemachines.org

the simplest solution is most likely the right one

KosiMazaki

To jest nas dwóch. Też już nie mam pomysłu czemu tak się dzieje. W dodatku czynnik losowy mnie dobija. Wczoraj kiedy testowałem i wysyłałem sobie wiadomości za pomocą Menadżera Zadań to każda była czytelna bez krzaków - wzorowa. Wysłałem ich około 10 sztuk w różnych odstępach czasu. Nie dałem się zwieść, ustawiłem sobie datę w profilu na dzisiejsza i czekałem na automat. Dziś rano sprawdzam, a ten same życzenia znowu rozjechane. WTF?... sobie myślę. Żeby było jeszcze zabawniej właśnie sobie podesłałem wspomnianym wyżej sposobem (ręcznie) życzenia i przyjechały dobre.

Przyznam szczerze, że nie ogarniam. Skrypt przeinstalowany (po żarcie programistycznym z wersją pliku SSI.php ;) ) pełną paczką 2.0.8, wcześniej było to samo, więc to nie jest błąd aktualizacji. Host twierdzi, że wszystko jest cacy. Forum nie sprawia mi problemów, nie jest zawalone modyfikacjami. Szczerze mówiąc nie wiem już nawet gdzie szukać. Jak nic nie wymyślę to wyłączę funkcję i trudno. Teraz jeszcze zmienię godzinę wysyłania takich powiadomień może akurat coś się mieli na serwerze o tych porach, jest większe obciążenie i pojawiają się takie kwiatki. Nie wiem...

Ps. Będąc przy temacie czy w którymś z plików PHP są ustawienia parametrów rozsyłanych maili?

cieplutki

Wszystkie te schematy życzeń itp są w pliku Themes\default\languages\EmailTemplates.polish-utf8.php
Sprawdźcie tam czy jest kodowanie utf-8 bez boom, jak tak to sprawa jest php systemu poczty?




.

KosiMazaki

@Cieplutki

To akurat wiem ale dziękuję za przypomnienie :). Mi bardziej chodziło nie tyle o edycje życzeń co jakiś funkcji związanych z rozsyłaniem powiadomień tak aby wymusić ręcznie np. kodowanie znaków. Innymi słowy ustawić coś na sztywno. Wspomniany plik sprawdziłem w Notepad++ i kodowanie ma ustawione UTF-8 bez BOM. Na forum w podglądzie też wszystko się dobrze wyświetla. Specjalnie nie wiem już gdzie szukać.

Swoją drogą w kolejnej wersji tłumaczenia paczki może warto by usunąć jedną linię (1279) właśnie w tym pliku ze schematami życzeń. Zaczyna się od "Mogliśmy Ci wysłać jedną z tych wiadomości automatycznych...", a na końcu maila jest wpis "Ta wiadomość została wygenerowana automatycznie". U siebie ją usunąłem ręcznie ale ktoś nie zauważy to rozsyła tak jak jest ;). Wracając do meritum...

Zmieniłem w harmonogramie godzinę rozsyłania wiadomości urodzinowych na późniejszą. Za pierwszym razem automat przysłał prawidłową, ładną wiadomość. Zachowując umiarkowany optymizm stwierdziłem, że do trzech razy sztuka i jeszcze potestuję. Niestety za drugim razem przyjechały znowu rozjechane życzenia. Wróciłem do punktu wyjścia. Rozumiem, że to nie jest najważniejszy "ficzer" skryptu SMF, nikt specjalnie nie przykłada do niego uwagi i zresztą świat się nie zawali jak go wyłączę ale chciałbym ustalić co go boli zwłaszcza, że walczę z tym od roku. Swojego czasu zakładałem temat na forum smf.pl [nofollow] o tym ale zainteresowanie nie urywało tylnej części ciała :). Być może ktoś z angielskiej części forum umiał by pomóc ale nie dam rady tego opisać precyzyjnie w ichniejszym języku :).

W każdym razie dziękuję za zainteresowanie i chęć pomocy. Jak ktoś ma jeszcze jakiś pomysł to chętnie wysłucham :).

cieplutki

Witaj,
sprawdź jeszcze to co na screnie w bazie danych.
Innych pomysłów nie mam.




.

KosiMazaki

Przepraszam za brak kontaktu. U mnie to wygląda tak.

cieplutki

To już tylko ustawienia ogólne mysqla
odszukaj: Sortowanie połączenie z serwerem - mam ustawione utf8_general_ci
jak nie to się poddaję.




.

KosiMazaki


Nik-a

Ustawić na utf beza lub przekontrolować tak   pliki trzeba
Może ci się spodobać: The Stytlish tube - Zdrowie i Uroda

impreza

Zróbcie tylko kopie bazy przed konwertem na utf8. A to działanie powinno pomóc w tej sprawie
Portal ToTemat.pl - treści w postaci artykułów i filmów tematycznych.

KosiMazaki

Rzecz w tym, że baza danych została przekonwerterowana na UTF-8 i wszystko jest cacy. Jedynie w tym konkretnym przypadku życzenia losowo potrafią się wysłać "z krzakiem". Wszędzie PL znaki są dobrze wyświetlane, a jak wspominałem losowo w życzeniach potrafią się wysypać.

rafalkaminski

Teraz to szaleństwo nie mieć utf tylko jakieś iso. Zawsze warto mieć kodowanie unikode.

Advertisement: