http://img11.imageshack.us/img11/8249/scrv.jpg
A tak wygląda to kiedy maile wysyłane są na maila obsługiwanego programem pocztowym outloock. (w dodatku nie ma polskich znaków)
http://img21.imageshack.us/img21/4158/scrlw.jpg
poniżej przedstawiam poszczególne fragmenty mojego kodu:
plik: formularz.php
<style type="text/css"> * { margin: 0; padding: 0; } body { font: 100% normal Arial, Helvetica, sans-serif; background: #161712; } form, input, select, textarea { margin:0; padding:0; color:#000; } div.box { margin:0 auto; width:500px; background:#161712; position:relative; top:50px; border:1px solid #161712; } div.box h1 { color:#80197f; font-size:14px; text-transform:uppercase; padding:5px 0 5px 5px; } div.box label { width:100%; display: block; background:#161712; border-top:1px solid #161712; border-bottom:1px solid #161712; padding:10px 0 10px 0; } div.box label span { display: block; color:#fff; font-size:12px; float:left; width:100px; text-align:right; padding:5px 20px 0 0; } div.box .wpis { padding:10px 10px; width:200px; background:#b4b4b4; border-bottom: 1px double #161712; border-top: 1px double #161712; border-left:1px double #161712; border-right:1px double #161712; } div.box .wiadomosc { padding:7px 7px; width:350px; background:#b4b4b4; border-bottom: 1px double #161712; border-top: 1px double #161712; border-left:1px double #161712; border-right:1px double #161712; overflow:hidden; height:150px; } div.box .button { margin:0 0 10px 0; padding:4px 7px; background:#80197f; border:0px; position: relative; top:10px; left:382px; width:100px; border-bottom: 1px double #161712; border-top: 1px double #161712; border-left:1px double #161712; border-right:1px double #161712; } } #contact_form #formularz label { color: #FFF; } </style> #komunikat# <div class="box"> <form action="#strona#" method="post" id="formularz"> <h1>Formularz kontaktowy :</h1> <label><span>Imie i Nazwisko</span> <input type="text" class="wpis" name="nick" id="nick" value="#nick#" /> </label> <label><span>Temat :</span> <input type="text" class="wpis" name="temat" id="temat" value="#temat#"/> </label> <label> <input type="text" class="wpis" name="mail" id="mail" value="#mail#"/> </label> <label> <span>Wiadomość :</span> <textarea class="wiadomosc" name="tresc" id="tresc">#tresc#</textarea> </label> <label> <ul> <input name="Wyślij" type="submit" class="button" value="Wyślj" /> </ul> </label> </form> </div>
mail.php
<?php include ('ustawienia.php'); include('formularz.php'); function wyswietl_forme($komunikat='') { '#komunikat#', '#strona#', '#nick#', '#mail#', '#temat#', '#tresc#' ); $komunikat, $_SERVER['REQUEST_URI'], $_POST['nick'], $_POST['mail'], $_POST['temat'], $_POST['tresc'] ); return $formularz; } function waliduj() { if( $valid['nick'] > 0 ) { $walidacja['nick'] = $komunikat['nick']; } } if( $valid['mail'] == 1 ) { if(!filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL)) { $walidacja['mail'] = $komunikat['mail']; } } if( $valid['temat'] > 0 ) { $walidacja['temat'] = $komunikat['temat']; } } if( $valid['tresc'] > 0 ) { $walidacja['tresc'] = $komunikat['tresc']; } } return 'true'; }else{ return $walidacja; } } // Działanie if (($_SERVER['REQUEST_METHOD'] == 'POST')) {// wejście postem $walidacja = waliduj(); if ($walidacja == 'true'){ //poprawnie wypełniony formularz if(mail($adres_odbiorcy,"=?UTF-8?B?".base64_encode($_POST['temat'])."?=",'<p>Od: <b>'.$_POST['nick'].'</b></p><pre>'.$_POST['tresc'].'</pre>','From:'.$_POST['mail']."\r\nContent-Type: text/html; charset=utf-8")){ //sukces print ' <div id="sukces"> <p>'.$komunikat['sukces'].'</p> </div> '; }else{ //bląd serwera print ' <div id="blad"> <p>'.$komunikat['fail'].'</p> </div> '; } }else{ //błędna walidacja $blad_walidacji = $walidacja; $blad_walidacji = ' <div id="blad"> <p>'.$komunikat['blad'].'</p> <ul> '; foreach ($walidacja as $wpis) { $blad_walidacji .= '<li>'.$wpis.'</li>'; } $blad_walidacji .= ' </ul> </div> '; } }else{ // nowe wejście } ?>
ustawienia.php
<?php /* Ustawienia formularza kontaktowego */ $adres_odbiorcy = 'uslugigraficzne@gmail.com'; //tu wpisz adres e-mail na który mają przychodzić wiadomości /* Ustawienia wymaganych pól */ /* Pamiętaj, żeby oznaczyć wymagane pola w formularzu - plik formularz.php */ $valid['nick'] = 2 ; // Nick: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik $valid['mail'] = 1 ; // e-mail: 0 - oznacza pole nieobowiązkowe, 1 - pole wymagane $valid['temat'] = 3 ; // Temat: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik $valid['tresc'] = 5 ; // Treść: 0 - oznacza pole nieobowiązkowe, inna liczba minimalną ilość znaków jakie musi wpisać użytkownik /* Komunikaty */ $komunikat['sukces'] = 'Dziękujemy. Twoja wiadomość została wysłana.'; //Wiadomość po udanym wysłaniu formularza $komunikat['blad'] = 'Wiadomość <b>NIE</b> została wysłana. Popraw poniższe błędy.'; //Wiadomość przy błędzie w sprawdzaniu danych, błędy zostaną wymienione poniżej $komunikat['nick'] = 'Nick musi mieć min. 2 znaki.'; //Wpisz właściwą ilość znaków jeśli pole wymagane $komunikat['mail'] = 'Podaj poprawny adres e-mail.'; //Wiadomość po błędnym wpisaniu adresu e-mail $komunikat['temat'] = 'Temat musi mieć min. 3 znaki.'; //Wpisz właściwą ilość znaków jeśli pole wymagane $komunikat['tresc'] = 'Treść musi mieć min. 5 znaków'; //Wpisz właściwą ilość znaków jeśli pole wymagane $komunikat['fail'] = 'Przepraszamy wystąpił chwilowy błąd. Spróbuj ponownie później'; //W przypadku nieudanego wyslania wiadomości np. błędu serwera ?>