Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja mail() a polskie znaki
Forum PHP.pl > Forum > PHP
mario123
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
ennics
spróbuj jeszcze windows-1250 i zobacz czy są różnice z iso2
-SaraniS-
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
mario123
Nadal nie pomogło sad.gif jeśli ktoś ma jeszcze jakieś pomysły to bardzo proszę o pomoc.
Kas
A może UTF-8 pomoże?
mike
Przenieś się na PHPMailer'a.
mrbungle
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
tzi
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
gruszeq
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" :/
aogon
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!
kemot
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. ?>
Adawen
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. ?>
drPayton
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
phpion
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.
drPayton
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...
justyn
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
backen
tekst wystarczy miec w osobnym pliku winksmiley.jpg
edqard
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.