![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie, jako nowy użytkownik tego forum chciałem najepierw wszystkich powitać:
Witajcie ![]() A teraz problem:
tak wygląda funkcja wysyłania maila. Wzięta ze strony php.net. Problem polega na tym że mail wysłany za pomocą tej funkcji wygląda jak jedna wielka sieczka. Brak kodowania, wyświetlają się w treści nagłówki. A wystarczy, że zamienię "\r\n" na \n" i już wszystko działa jak należy. Wcześniej działało to na serwerze z PHP 5.16 obecnie jest PHP 5.20. Wersja php-mail to 1.1.6. Wcześniej ta sama wersja działała na serwerze FC 6.0 obecnie jest to Debian Etch. Może ktoś z Was miał tego typu problem? Będę wdzięczny za wszelkie podpowiedzi. Owszem istnieje jeszcze opcja zmiany tego na kilkuset stronach - ale wolałbym jej uniknąć ![]() Ten post edytował batman 15.05.2008, 21:10:10
Powód edycji: Dodałem bbcode. Tak na przyszłość - pamiętaj, by robić to samemu
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%) ![]() ![]() |
Server Linuxowy przewaznie nie wymaga \r takze mozesz sobie w konfigu zdefioniowac OS i w zaleznosci od tego ustawiac separator dla naglowka poczty.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Server Linuxowy przewaznie nie wymaga \r takze mozesz sobie w konfigu zdefioniowac OS i w zaleznosci od tego ustawiac separator dla naglowka poczty. Rozumiem że można to zrobić globalnie dla wszystkich stron. Znalazłem cos takiego w pakiecie php-mail, a ponieważ nie jestem mocny w PHP to pytam: /* Because the mail() function may pass headers as command * line arguments, we can't guarantee the use of the standard * "\r\n" separator. Instead, we use the system's native line * separator. */ $this->sep = (strstr(PHP_OS, 'WIN')) ? "\r\n" : "\n"; Jeśli ta część konfiguracji odpowiada za zmianę separatora - to jak to zmienić dla linuxa ? Właśnie przeglądam te funkcje w pakiecie php-mail ale wydaje mi się, że one i tak nie zmienią mi tego w nagłówkach maila. Zresztą próbowałem wstawić coś takiego: $this->sep = (strstr(PHP_OS, 'Linux')) ? "\n" : "\r\n"; Ale nie pomogło. ![]() ![]() Ten post edytował kefflar 15.05.2008, 10:41:53 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%) ![]() ![]() |
$this->sep =
rozumiem, ze masz obiekt ze skladowa -sep-, bo chyba nie wpisales tego tak sobie ? ![]() Rozwiazania masz dwa, jesli wykrycie systemu i podmiana separatora nie pomaga, bo faktycznie wykrywanie np. nie dziala, to umieszczasz we wlasnym pliku konfiguracyjnym wlasciwy separator i tyle. Wtedy jesli PHP_OS nie dziala z jakiegos powodu uzywasz danych z warunku. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Okazuje się że problem leży po stronie serwera pocztowego, lub jakiegoś komponentu zajmującego się przyjmowaniem poczty. Może spamassassin. Jak wysyłam pocztę na inny serwer to mail dochodzi prawidłowo.
![]() No cóż trzeba dalej grzebać w konfiguracji. Problem rozwiązany: a opisany jest tutaj: http://bugs.php.net/bug.php?id=15841 U mnie niestety nie działało rozwiązanie podane w linku na końcu. Jeśli ktoś z Was będzie miał podobny problem to zapraszam. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 4.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za ten post
-------------------- Less
:) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:50 |