Dodaj do ulubionych

VBA, FreeMail

07.01.15, 01:06
Nie mogę zmusić FreeMaila, by wysłał treść z zachowaniem przejścia do nowej linijki
Chr(13) & Chr(10).
Drań przy wysyłaniu zastępuje KAŻDY zestaw znaków sterujących z zakresu 9 do 13 zwykłą spacją Chr(32).
.strTransferEncoding = "8bit"
.strCharset = "windows-1250"
.strContentType = "Text/plain"
Przecież z TEGO wynika, że ten zestaw znaków powinien być normalnie "używalny", a k.... nie jest, albo - czort wie czemu - FreeMail jest jakoś wewnętrznie zazbrojony przeciw akurat tym znakom.
Miał ktoś z czymś takim do czynienia?
Obserwuj wątek
    • wariant_b Re: VBA, FreeMail 07.01.15, 08:03
      Niewiele pamiętam już z poprzedniej dyskusji na temat tej biblioteki
      i wysyłania maili spod Accessa. Będziesz musiał przypomnieć mi trochę
      na temat rozwiązania i podesłać kod VBA oraz wygenerowanego maila.

      Objawowo wygląda to tak, jakby gdzieś wepchał się html zamiast czystego tekstu.
      Być może rozwiązaniem będzie przesyłanie właściwego tekstu w załączniku
      a nie w treści maila.
            • kocinos Re: VBA, FreeMail 07.01.15, 12:30
              Fakt, że nie najmądrzejsze to pytanie było, ale nie często wysyłam tu coś na priv, więc musiałem troszkę poszperać, jak się dopchać do Twojego adresu ;)
              Już się smaży, tylko spreparuję pliki, by było prościej "użyć" ...
              • wariant_b Re: VBA, FreeMail 07.01.15, 14:27
                Przyszło, ale trochę potrwa, zanim postawię maszynę wirtualną i zabiorę się za analizę.
                W międzyczasie przypomnij mi używaną konfigurację (wersja Windows i Accessa) oraz podeślij
                przykładowego maila, zrzut formatki z ekranu źródłowego oraz goły tekst maila w pliku .txt w załączniku.
                Podeślij także wersję maila z łamaniem wierszy za pomocą <CTRL>+<ENTER> w formatce.
                          • kocinos Re: VBA, FreeMail 08.01.15, 01:55
                            Sorry, ale maila wysłałeś na adres, który używam tylko z drugiego komputera (notebooka), tak, że Twój załącznik zobaczyłem dopiero przed chwilą.
                            Wysłałem Ci (i sobie ...) go (z ustawieniem text/html) i u mnie wreszcie pojawił się sformatowany jak trzeba ...
                            Mam przez to rozumieć, że będzie trzeba napisać procedurę "przepisującą" tekst do postaci html'owskiej przed wysłaniem?
                            • kocinos Re: VBA, FreeMail 08.01.15, 12:54
                              Znalazłem przyczynę, może się komuś przyda ...
                              FreeMail wysyła teraz bez błędów "tworzenia nowej linii" w trybie text/plain, ALE:
                              ciąg znaków przed poleceniem tworzenia nowej linii NIE MOŻE kończyć się znakiem "," (przecinek). Nie wiem czemu, ale postawienie tego znaku na końcu linii (PRZED Chr(13) & Chr(10)) powoduje ignorowanie tych znaków specjalnych MIMO prawidłowego użycia znaku " zamykającego ciąg znaków String ...
                              wariant_b - Dzięki za cierpliwość i zainteresowanie, bo - wbrew pozorom - bez Twojej podpowiedzi nie wpadł bym na tą "wszę" ...
                              • wariant_b Re: VBA, FreeMail 08.01.15, 16:08
                                To podpowiem od razu drugą "wszę" tym razem dotycząca text/html
                                znaczniki <br> działają i poprawnie łamią linię, a ponieważ pozostałe znaczniki
                                można bez większych konsekwencji pominąć, przygotowanie tekstu jest prostsze
                                niż ze wstawianiem DOS-owych kodów nowej linii.

                                Ale wstawienie w tym miejscu tekstu sformatowanego jako strona html
                                też ma sens z uwagi na większe możliwości edycyjne. Można go łatwo
                                uzyskać formatując maila dowolnym klientem obsługującym format html
                                (czyli praktycznie każdym współczesnym), wysyłając maila do siebie
                                i kopiując fragment z postaci źródłowej jako tekst do wklejenia w Accessie.
                                • kocinos Re: VBA, FreeMail 08.01.15, 17:23
                                  Dzięki.
                                  Poradziłem sobie trochę inaczej, bo user tej bazy raczej nie będzie formatował osobno tekstu w edytorze innym niż okno tej bazy ...;)
                                  Napisałem krótką procedurę podmieniającą znaki (Chr(13) & Chr(10)) na <br> i doklejającą na początku i końcu odpowiednie znaczniki, gdy tryb jest txt/html, a korygujący ten "przecinek", gdy jest txt/pain.
                                  Za Twoją radą użyję standardu html jako główny ...
                                  Nawiasem mówiąc, to nomen omen, że dosowski tryb nazywa się ... pain? ;)
                                    • wariant_b Re: VBA, FreeMail 08.01.15, 21:45
                                      Poczta jest w ogóle mocno starym rozwiązaniem pamiętającym jeszcze
                                      epokę przedinternetową, Znaki sterujące, z którymi masz problem kiedyś
                                      faktycznie sterowały mechaniką i elektryką urządzeń, a ślady dawno
                                      zapomnianego 7-bitowego kodowania są w mailach wszechobecne.

                                      Na html namawiam bardzo ostrożnie - o ile w nadajniku, który mi podesłałeś,
                                      nie stanowi większego problemu, to zdaje się masz również część odbiorczą,
                                      a tam bardziej złożony mail html może być trudny do obróbki programowej.

                                      Plain text, to czysty, niesformatowany tekst wygodny w obróbce. Robi się
                                      mniej więcej to, co zrobił u ciebie jakiś składnik oprogramowanie - usuwa
                                      "blanki" zastępując je pojedynczą spacją i można spokojnie przetwarzać.
                                      Wysuw może być używany do oddzielania paragrafów (akapitów), ale
                                      nie do zwykłego łamania tekstu. W przypadku html są to tagi <p> i </p>.
                                      • kocinos Re: VBA, FreeMail 09.01.15, 16:08
                                        Dzięki za uprzedzenie.
                                        Ta część "odbiorcza" FreeMaila jest mi potrzebna tylko jako "nośnik specyficznych załączników" i pozostanie jako plain, bo i tak jest odbierana z innego konta niż wysyłane są oferty, a treść jest używana tylko identyfikator, że "trzeba się zająć załącznikiem" ...
                                        Natomiast wysyłanie zróżnicowałem zależnie od tego, czy maszynka wysyła "do ludzi", czy do współpracującej bazy ...
                                        Jeśli Cię to interesuje, szczegółowiej mogę na priva, ale nie chcę "zaśmiecać" poczty ...;)
      • kocinos Re: VBA, FreeMail 07.01.15, 10:33
        Żeby było śmieszniej, kod
        "bla" & Chr(14) & Chr(8) & Chr(13) & Chr(10) & "bla" daje w odczycie "bla" & Chr(32) & "bla",
        ALE
        "bla" & Chr(14) & Chr(8) & Chr(13) & Chr(10) & "bla" daje w odczycie "bla" & Chr(14) & Chr(8) & "Coś" & Chr(32) & "bla" ...
        Nic nie rozumiem ...
        • wariant_b Re: VBA, FreeMail 07.01.15, 11:22
          Wygląda na to, że wysyłany tekst maila obkładany jest jakąś funkcją edycyjną typową dla html.
          Rozumiem, że przekłamanie następuje na etapie tworzenia, a nie przy odczytywaniu maila.
          Nie mam pojęcia, czy użycie znaczników właściwych dla html da jakiś pozytywny efekt.
          Ale najwyraźniej deklaracje typu "Text/plain" nie funkcjonują, a tylko są przenoszone.

          Naturalnym obejściem byłoby wysłanie problematycznej treści w załączniku,
          bo ten nie podlega obróbce innej niż kodowanie transmisji, a przy okazji można
          go skompresować i zaszyfrować, a treść odzyskać również przez oprogramowanie
          po stronie odbiorczej. Może okazać się, że także zapis treści maila do pliku pośredniego
          i pobranie tekstu maila z pliku działa skutecznie, czyli omija dodatkową edycję tekstu.
          Ale póki co mam za mało wiedzy o stosowaniu VBA z biblioteką FreeMail i muszę "pomacać".
          Dawno temu praktykowałem transport mailowy z linią poleceń Pegasusa i działało to poprawnie.

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka