Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja mail i maile html a gmail
Forum PHP.pl > Forum > Przedszkole
Ardziej
Witam serdecznie i proszę o pomoc w sprawdzeniu poprawności mojego kodu
Kod ten pobiera zmienne ze Flasha i następnie wysyła maila z danymi z formularza we Flashu
  1. <?php
  2. if ($_POST['ar_code']=="ar_mail")
  3. {
  4.  
  5. // pobieranie danych z formularza flash
  6. $name = $_POST['name'];
  7. $email = $_POST['email'];
  8. $message = $_POST['message'];
  9.  
  10. $name = trim($name);
  11. $email = trim($email);
  12. $message = trim($message);
  13.  
  14.  
  15. // ustawienia
  16. $feedback = $_POST['feedback'];
  17. $to_mail = $_POST['to_mail'];
  18.  
  19.  
  20. $ip = $_SERVER['REMOTE_ADDR'];
  21. $data = date('d.m.Y');
  22. $czas = date('H:i');
  23. // message
  24. $messages = "
  25. <html>
  26. <head>
  27. <title>Formularz Kontaktowy - ForumFlash.pl by_Ardziej</title>
  28. </head>
  29. <body>
  30. <h1>Nowa wiadomość !</h1>
  31. <br><b>Imię i Nazwisko:</b> $name
  32. <br><b>Email:</b> $email
  33. <br><b>Wiadomość:</b> $message
  34. <br><br>Dodatkowe informacje
  35.  
  36. <br><b>Wysłano z IP:</b> $ip
  37. <br><b>Dnia:</b> $data
  38. <br><b>O godzinie:</b> $czas
  39.  
  40. </body>
  41. </html>
  42. ";
  43.  
  44.  
  45. if ($_POST['feedback']=="1")
  46. {
  47. // feedback
  48. $feedback_text = "
  49. <html>
  50. <head>
  51. <title>Formularz Kontaktowy - ForumFlash.pl by_Ardziej</title>
  52. </head>
  53. <body>
  54. <h1>Wiadomość Wysłano !</h1>
  55. <br><b>Imię i Nazwisko:</b> $name
  56. <br><b>Email:</b> $email
  57. <br><b>Wiadomość:</b> $message
  58. <br><br>
  59. </body>
  60. </html>
  61. ";
  62.  
  63. mail($email, $subject1, $feedback_text, $headers);
  64.  
  65. }
  66.  
  67. elseif ($_POST['feedback']=="0")
  68. {}
  69.  
  70. else
  71. {}
  72.  
  73. // Temat E-Maila
  74. $subject = 'Nowa wiadomość ! ';
  75. $subject1 = 'Wiadomość Wysłano ! - ForumFlash.pl by_Ardziej';
  76. // Dodatkowe nagłówki potrzebne do poprawnego wysyłania formualrza z polskim znakami i w formacie HTML
  77. $headers = 'MIME-Version: 1.0' . "\r\n";
  78. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  79. $headers .= 'From: $name <$email>' . "\r\n";
  80. $headers .= 'Reply-To: <$email>' . "r\n";
  81. $headers .= 'Return-Path: $email' . "r\n";
  82.  
  83. if (preg_match ("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg
    |bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|c
    om|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|
    fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr
    |ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky
    |kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|m
    s|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|
    org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|s
    g|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|t
    t|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i"
    , $email)) {
  84. mail($to_mail, $subject, $messages, $headers);
  85. //czyszczenie zmiennych
  86. $name='';
  87. $email='';
  88. $message='';
  89. echo "response=passed";
  90. } else {
  91. echo "response=invalid";
  92. }
  93.  
  94. }
  95. else
  96. {
  97.  
  98. echo 'A Ty gdzie bocie ? ;) | ';
  99. echo 'Zapraszam do wysłania wiadomości po przez formularz na stronie ;)';
  100.  
  101. }
  102. ?>

Wszystko niby działa jak należy, ale czy da radę coś usprawnić czy poprawić ?
Jedyne co to problem jest z

  1. $headers .= 'From: $name <$email>' . "\r\n";
  2. $headers .= 'Reply-To: <$email>' . "r\n";
  3. $headers .= 'Return-Path: $email' . "r\n";

Zamiast emaila wyświetla się $email

Drugie pytanie dotyczy wysyłania maili w html'u
Pobrałem sobie darmowy szablon do mailingu w html'u, wiadomość się wysyła, ale do spamu w Gmailu, ktoś wie dlaczego ?
Da rade jakoś tak to skonfigurować aby moje maile nie lądowały w spamie bo inne w HTML'u mailingi są w folderze Odebrane

Pozdrawiam, Ardziej smile.gif
thek
Czemu wpisuje $email zamiast emaila? Poczytaj o różnicy między ' a " i prawidłowym używaniu stringów. oraz zmiennych w nich.

Drugie pytanie jest złożone i nie da się na nie odpowiedzieć z mostu bo przyczyn może być więcej niż tylko jedna. Począwszy od wpisania Twojego serwisu rzez gmail na listę spamerów, poprzez błędne ustawienia rekordów MX po zawartość, która może podpadać filtrom.
Ardziej
Sorka, głupi błąd, naprawione, dzięki smile.gif
Naprawione nagłówki From i Reply i poczta nie w spam idzie smile.gif
Jeszcze jedno pytanko, pobrałem szablon z http://www.campaignmonitor.com/templates/
Lecz formatowania nie widać
thek
Formatowanie maili samemu to męczarnia. Możliwe, że użyli sposobów, które nie są prawidłowo interpretowane przez klienty poczty. Trudno cokolwiek powiedzieć nie widząc kodu szablonu.
Ardziej
Dobra daję radę smile.gif
Jak skończę to dam jeszcze raz kod to przelookania smile.gif
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.