Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt mail() php nie czyta znaków HTML
mielekwalinko
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.12.2015

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


Witam. Sklepałem formularz kontaktowyvlecz mam problem z wysyłaniem znaków html, niby tekst wysyła się jako html np po wpisaniu w formularzu <h1> aaaa teks </h1> treśc maila dochodzi tak jak powinna czyli duży napis "aaaa teks", problem jest gdy próbuję dodać kod html zdjęcia, wydaje mi się że mam złe kodowanie bo podczas wysyłki kod html zdjęcia coś się zmienia i dlatego już w otrzymanej wiadomości email nie wyświetla się fotka.

Oto mój formularz
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>      
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="Keywords" content="wyraz1, wyraz2, wyraz3..." />
    <meta name="description" content="Opis strony" />
    
</head>
<body>
<form action="mail.php" method="post">
    <fieldset>
    <legend></b>FORMULARZ</b></legend>
                

        <label for="temat">Temat: </label><br>
        <input type="text" id="temat" name="temat"/>
                    <br>
        <label for="wiadomosc">Wiadomość:</label><br>
        <textarea id="wiadomosc" name="wiadomosc" cols="40" rows="10"></textarea>
                    <br>
        <input type="submit" value="wyslij" id="send" name="send" />
    </fieldset>
</form>
</body>
</html>


a tu .php
Kod
<?php
//filtruje dane użytkownika
$mail = "mojastrona@dsa.pl";
$temat =  htmlspecialchars(trim($_POST['temat']));
$wiadomosc = $_POST['wiadomosc'];
$wiadomosc = addslashes($wiadomosc);
$wiadomosc = iconv("UTF-8","ISO-8859-2",$wiadomosc);
$send = $_POST['send'];
//mail na który będa wysyłane wiadomości
$odbiorca = "odbiooorca@dsa.pl";
$charset = 'iso-8859-2';
//nagłówki
$header =
      "MIME-Version: 1.0\r\n" .
      "Content-Type: text/plain; charset=$charset\r\n" .
      "Content-Transfer-Encoding: 8bit";

$header = "Content-type: text/html; charset=utf-8\r\nFrom: $mail";


    //Sprawdzam czy są błędy i wysyłam wiadomość
    if (empty($error))
        {
        $list = "$wiadomosc";
        
        if (mail($odbiorca, $temat, $list, $header))  
        {
         $error .= "Twoja wiadomość została wysłana";
         }
        else
            { $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później.";}  
        }
    
?>


Jeszcze jedno pytanie, mianowicie gdy chce wysłać maila muszę ciągle edytować plik mail.php
w jaki sposób zrobić tak żeby scrypt wysyłający maile pobierał adresy z notatnika.txt np wpisuje do notatnika 10 maili jeden pod drugim i żeby scrypt je ściągał i wysyłał.
Z góry dziękuje za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mielekwalinko
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.12.2015

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


Zrobiłem tak\

  1. <?php
  2. //filtruje dane użytkownika
  3. $mail = "xxxxx@xxxxl";
  4. $temat = htmlspecialchars(trim($_POST['temat']));
  5. $wiadomosc = $_POST['wiadomosc'];
  6. $send = $_POST['send'];
  7. //mail na który będa wysyłane wiadomości
  8. $file = file_get_contents('maile.txt', true);
  9.  
  10.  
  11. $pieces = explode("\n", $file);
  12. $string = $pieces;
  13. $charset = 'iso-8859-2';
  14. //nagłówki
  15. $header = "From: $wiadomosc\r\n";
  16. $header = "Content-type: text/html; charset=utf-8\r\n" . $header;
  17.  
  18. $header = "Content-type: text/html; charset=utf-8\r\nFrom: $mail";
  19.  
  20.  
  21. //Sprawdzam czy są błędy i wysyłam wiadomość
  22.  
  23.  
  24. foreach($string as $string) {
  25.  
  26. $odbiorca = $string;
  27. echo $string;
  28. if (mail($string, $temat, $wiadomosc, $header))
  29. {
  30. $error .= "Twoja wiadomość została wysłana";
  31. }
  32. else
  33. { $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później.";}
  34. }
  35.  
  36. ?>



i niby coś tam działa, wpisuje do pliku txt kilka maili np 10 a dochodzi tylko 9, dodam 20 dojdzie 19 lub 18 mailii ktoś coś podpowie ? (IMG:style_emoticons/default/smile.gif)

Ten post edytował mielekwalinko 1.01.2016, 19:05:37
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 16:33