Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja mail() a polskie znaki
mario123
post 20.11.2005, 14:41:29
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.11.2005

Ostrzeżenie: (0%)
-----


Witam! Mam pytanie dotyczące funkcji mail(): jakie nagłówki należy dodać aby treść wiadomości została przesłana w formacie html wraz z zachowaniem polskich znaków.
Najpierw urzywałem funkcji w ten sposób:
Kod
mail('adres@adres.pl','temat',$tresc_wiadom,'Content-type: text/html; charset=iso-8859-1\r\n from:adres@adres.pl')

po przeglądnięciu tego forum poprawiłem na:
Kod
mail('adres@adres.pl','temat',$tresc_wiadom, MIME-Version: 1.0 \r\n Content-Transfer-Encoding: 8bit\r\n Content-type: text/html; charset=iso-8859-2\r\n from:adres@adres.pl')

Bardzo proszę o pomoc i nie odsyłanie mnie do phpmailera (całość strony chce zrobić sam bez gotowych skryptów)
Z góry dziękuję i pozdrawiam
Go to the top of the page
+Quote Post
ennics
post 20.11.2005, 15:55:56
Post #2





Grupa: Zarejestrowani
Postów: 312
Pomógł: 0
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


spróbuj jeszcze windows-1250 i zobacz czy są różnice z iso2


--------------------
Go to the top of the page
+Quote Post
-SaraniS-
post 21.11.2005, 03:21:11
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 2.01.2005
Skąd: Opolskie

Ostrzeżenie: (0%)
-----


Witam
W swoim czasie ja rowniez mialem problem z polskim kodowaniem w funkcji mail(), nie pomoglo ustawianie iso-8859-2 ani cp1250 ani jakiejkolwiek innej strony kodowej sad.gif
Poradzilem sobie, zmieniajac wywolania mail() na imap_mail(). smile.gif
Pozdrawiam


--------------------
Workstation: Hardware: Toshiba Satellite L40-14B Software: Linux 2.6.30.3 - Slackware 12.2 - KDE3.5.10
Server: Hardware: Celeron 850MHz/ 256MiB Software: Linux 2.4.31 - Slackware 10.2 - Apache 2.2.0.59 + PHP 5.1.6 + MySQL 5.0.24a
Go to the top of the page
+Quote Post
mario123
post 22.11.2005, 09:25:09
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.11.2005

Ostrzeżenie: (0%)
-----


Nadal nie pomogło sad.gif jeśli ktoś ma jeszcze jakieś pomysły to bardzo proszę o pomoc.
Go to the top of the page
+Quote Post
Kas
post 22.11.2005, 09:28:34
Post #5





Grupa: Zarejestrowani
Postów: 425
Pomógł: 0
Dołączył: 28.05.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


A może UTF-8 pomoże?


--------------------
nospor, jestem z Wami.
Alpha IT
Go to the top of the page
+Quote Post
mike
post 22.11.2005, 09:30:20
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Przenieś się na PHPMailer'a.
Go to the top of the page
+Quote Post
mrbungle
post 23.11.2005, 23:23:15
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.11.2005

Ostrzeżenie: (10%)
X----


hejka,

ja mialem swojego czasu problemy z polskimi znakami w mejlach i znalazlem cos takiego aby zakodowac wiadomosc przez base64_encode()...

  1. <?php
  2.  
  3. $temat_mejla = "=?iso-8859-2?B?".base64_encode('A tutaj podajesz tresc do zakodowania z polskimi znakami')."?="
  4.  
  5. ?>


znalazlem to na jakiejs stronce i pomoglo... Problem kiedys mialem taki ze temat wyswietll bez polskich znakow. Mama nadzieje ze pomoglem snitch.gif

PZDR


--------------------
Mjuzik is maj aeroplejn
Go to the top of the page
+Quote Post
tzi
post 15.01.2006, 19:26:10
Post #8





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 12.10.2003
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Ja rozwiązałem problem tak:
  1. <?php
  2.  
  3. $tresc_do_wyslania = "<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head><body style="font-size: 12pt; font-family: Arial;" bgcolor="#4f7a58">";
  4.  
  5. $tresc_do_wyslania = $tresc_do_wyslania.$_POST[tresc_maila];
  6.  
  7. $tresc_do_wyslania = $tresc_do_wyslania."</body></html>";
  8.  
  9. $mail_ok = mail($line[email],$_POST[temat],$tresc_do_wyslania, "Content-type: text/html; charset=iso-8859-2");
  10.  
  11. ?>


Coprawda list jest wysyłany jako html ale są polskie znaki
Go to the top of the page
+Quote Post
gruszeq
post 15.01.2006, 21:23:40
Post #9





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 15.01.2006

Ostrzeżenie: (0%)
-----


Cytat(tzi @ 2006-01-15 18:26:10)
Ja rozwiązałem problem tak:
  1. <?php
  2.  
  3. $tresc_do_wyslania = "<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head><body style="font-size: 12pt; font-family: Arial;" bgcolor="#4f7a58">";
  4.  
  5. $tresc_do_wyslania = $tresc_do_wyslania.$_POST[tresc_maila];
  6.  
  7. $tresc_do_wyslania = $tresc_do_wyslania."</body></html>";
  8.  
  9. $mail_ok = mail($line[email],$_POST[temat],$tresc_do_wyslania, "Content-type: text/html; charset=iso-8859-2");
  10.  
  11. ?>


Coprawda list jest wysyłany jako html ale są polskie znaki

Kod
<?php

$ToEmail = "gruszeq@wp.pl";
$ToSubject = "Test";
$EmailBody = "Temat: $imie\n\nFirma: $firma\n\nWiadomosc:\n$wiadomosc\n";


$tresc_do_wyslania = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\"></head><body style=\"font-size: 12pt; font-family: Arial;\" bgcolor=\"#4f7a58\">";

$tresc_do_wyslania = $tresc_do_wyslania.$EmailBody;

$tresc_do_wyslania = $tresc_do_wyslania."</body></html>";

$mail_ok = mail($ToEmail,$ToSubject,$tresc_do_wyslania, "Content-type: text/html; charset=iso-8859-2");

?>

po malej modyfikacji dostalem dalej "krzaczki" :/
Go to the top of the page
+Quote Post
aogon
post 20.01.2008, 06:03:07
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


Wracam do tematu, bo sam tego szukalem i znalzelm. Rozwiazanie dla zainteresowanych (mail idzie jako txt :] ):

  1. <?php
  2. mail("$mail_adres", "$subject", $body,
  3. "Content-type: text/plain; charset=Windows-1250\n"
  4. ."Content-Transfer-Encoding: 8bit\n"
  5. ."From: $from_name <$from_mail>\n"
  6. ."X-Mailer: my_own/");
  7. ?>


:-)

pozdrawiam!
Go to the top of the page
+Quote Post
kemot
post 30.09.2008, 13:45:07
Post #11





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 27.09.2007

Ostrzeżenie: (0%)
-----


To ja może powiele to co koledzy, ale w nieco większym ładzie.

  1. <?php
  2.  
  3. $email='nick@domena';
  4. $temat='Test funkcji mail()';
  5. $text='Funkcja działa poprawnie i jest super haha.gif <br />Wyświetla wszystkie polskie znaki';
  6. $header .= "Content-typ: text/html; charset=utf-8r\n";
  7. $header .= "Content-Transfer-Encodin: 8bitr\n";
  8.  
  9. mail($email, $temat, $text, $header);
  10.  
  11. ?>


Ten post edytował kemot 30.09.2008, 14:00:01
Go to the top of the page
+Quote Post
Adawen
post 8.10.2008, 10:44:14
Post #12





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.11.2007

Ostrzeżenie: (0%)
-----


Tak też można i działa winksmiley.jpg
  1. <?php
  2. $headers  = "MIME-Version: 1.0\n";
  3. $headers .= "Content-type: text/html; charset=ISO-8859-2\n";
  4. $headers .= "Content-Transfer-Encoding: 8bit\n";
  5. ?>
Go to the top of the page
+Quote Post
drPayton
post 8.10.2008, 10:50:47
Post #13





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


PHPMailer - to najlepsze rozwiązanie. Żadne z powyższych nie daje pewności. To że Wam na jeden czy dwa serwery przyjdzie poprawnie o niczym jeszcze nie świadczy. A są serwery tak pokonfigurowane (w sensie głupio), że nawet ta biblioteka nie pomoże...

a to:
Cytat(aogon @ 20.01.2008, 07:03:07 ) *
(...) charset=Windows-1250\n" (...)

to już rekord świata jest normalnie haha.gif

Ten post edytował drPayton 8.10.2008, 10:51:14
Go to the top of the page
+Quote Post
phpion
post 8.10.2008, 10:56:38
Post #14





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(drPayton @ 8.10.2008, 11:50:47 ) *
PHPMailer - to najlepsze rozwiązanie.

Nie zgodzę się. Moim zdaniem aktualnie najlepszym rozwiązaniem jest Swift Mailer. Stosuję od dłuższego czasu i nie mam żadnych problemów z polskimi znakami. Polecam właśnie tą bibliotekę do wysyłania maili.
Go to the top of the page
+Quote Post
drPayton
post 8.10.2008, 11:13:43
Post #15





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Miałem raczej na myśli samą ideę korzystania z jakiejś dużej i sprawdzonej biblioteki, a nie konkretne rozwiązanie winksmiley.jpg
Choć z chęcią dowiem się, w czym Swift Mailer jest lepszy, bo nie słyszałem nawet wcześniej o tym...
Go to the top of the page
+Quote Post
justyn
post 22.02.2009, 16:52:09
Post #16





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.10.2008

Ostrzeżenie: (0%)
-----


Cytat(kemot @ 30.09.2008, 13:45:07 ) *
To ja może powiele to co koledzy, ale w nieco większym ładzie.

  1. <?php
  2. $email='nick@domena';
  3. $temat='Test funkcji mail()';
  4. $text='Funkcja działa poprawnie i jest super [img][/img]
  5. Wyświetla wszystkie polskie znaki';
  6. $header .= &#092;"Content-typ: text/html; charset=utf-8r\n\";
  7. $header .= &#092;"Content-Transfer-Encodin: 8bitr\n\";
  8.  
  9. mail($email, $temat, $text, $header);
  10.  
  11. ?>



To dziala Panowie smile.gif Wsio co bylo wczesniej to lipa lekka. Sprawdzane na gmail
Go to the top of the page
+Quote Post
backen
post 24.01.2011, 13:01:36
Post #17





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


tekst wystarczy miec w osobnym pliku winksmiley.jpg
Go to the top of the page
+Quote Post
edqard
post 28.11.2017, 11:11:32
Post #18





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 28.11.2017

Ostrzeżenie: (0%)
-----


Witam. Mam skrypt php wysyłający wiadomość z formularza:

  1. <?php
  2. header('Content-type: application/json');
  3. $status = array(
  4. 'type'=>'success',
  5. 'message'=>'Email sent!'
  6. );
  7.  
  8. $name = @trim(stripslashes($_POST['name']));
  9. $email = @trim(stripslashes($_POST['email']));
  10. $subject = @trim(stripslashes($_POST['subject']));
  11. $message = @trim(stripslashes($_POST['message']));
  12. $phone = @trim(stripslashes($_POST['phone']));
  13.  
  14. $email_from = $email;
  15. $email_to = 'xxx@xxx.pl';
  16.  
  17. $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Telefon: ' . $phone . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;
  18.  
  19. $success = @mail($email_to, $subject, $body, 'Reply-to: <'.$email_from.'>', '-f yyy@yyy.pl');
  20.  
  21.  
  22. echo json_encode($status);
  23. die;
  24. ?>


próbowałem wielu rozwiązań zarówno z forum, jak i z google, niestety nie mogę dojść co zmienić aby wiadomość wysyłana była z polskimi znakami. Cały czas wyświetla mi �� zamiast polskich znaków. Bardzo proszę o pomoc. Pozdrawiam

Ten post edytował edqard 28.11.2017, 13:10:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 03:43