Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Email w formacie HTML z osadzoną grafiką
Forum PHP.pl > Forum > PHP
dudzio
Witam !
Mam problem musze stworzyc skrypt wysylajacy majla w formacie HTML z grafika. Grafika nie moze byc pobierana z serwera zewnetrznego tylko ma byc osadzona w mailu. Znalazlem nawet skrypt ktory cos takiego robi ale nie dziala i nie wyswietla obrazkow. Czy ktos cos takiego juz robil prosze o pomoc. Testowy skrypt ponizej.

  1. <?php
  2. $from_name = &#092;"Name\";
  3. $from_email = &#092;"email@xyz.com\";
  4. $to_name = &#092;"ToName\";
  5. $to_email = &#092;"email@email.pl\";
  6. $subject = &#092;"Test\";
  7. $headers = &#092;"From: $from_name<$from_email>n\";
  8. $headers .= &#092;"Reply-To: <$from_email>n\";
  9. $headers .= &#092;"MIME-Version: 1.0n\";
  10. $headers .= &#092;"Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"n\";
  11. $headers .= &#092;"X-Sender: $from_name<$from_email>n\";
  12. $headers .= &#092;"X-Mailer: PHP4n\"; 
  13. $headers .= &#092;"X-Priority: 3n\"; 
  14. $headers .= &#092;"Return-Path: <$from_email>n\";
  15. $headers .= &#092;"This is a multi-part message in MIME format.n\";
  16. $headers .= &#092;"------=MIME_BOUNDRY_main_message n\";
  17. $headers .= &#092;"Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_message_parts\"n\";
  18. $message = &#092;"------=MIME_BOUNDRY_message_partsn\";
  19. $message .= &#092;"Content-Type: text/plain; charset=\"iso-8859-1\"n\";
  20. $message .= &#092;"Content-Transfer-Encoding: quoted-printablen\";
  21. $message .= &#092;"n\";
  22. $message .= &#092;"text versionn\";
  23. $message .= &#092;"n\";
  24. $message .= &#092;"------=MIME_BOUNDRY_message_partsn\";
  25. $message .= &#092;"Content-Type: text/html;n charset=\"iso-8859-1\"n\";
  26. $message .= &#092;"Content-Transfer-Encoding: quoted-printablen\";
  27. $message .= &#092;"n\";
  28. $message .= &#092;"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">n\";
  29. $message .= &#092;"<HTML><BODY>n\";
  30. $message .= &#092;"<b>html</b> versionn\";
  31. $message .= &#092;"<IMG src=3D\"cid:Nowy-1.jpg\">n\";
  32. $message .= &#092;"</BODY></HTML>n\";
  33. $message .= &#092;"n\";
  34. $message .= &#092;"------=MIME_BOUNDRY_message_parts--n\";
  35. $message .= &#092;"n\";
  36. $message .= &#092;"------=MIME_BOUNDRY_main_messagen\";
  37. $message .= &#092;"Content-Type: image/jpg; n name=\"Nowy-1.jpg\"n\";
  38. $message .= &#092;"Content-Transfer-Encoding: base64n\";
  39. $message .= &#092;"Content-ID: <Nowy-1.jpg>n\";
  40. $message .= &#092;"n\";
  41. $dateiname = &#092;"Nowy-1.jpg\";
  42. $message .= chunk_split(base64_encode(fread(fopen($dateiname, &#092;"r\"), filesize($dateiname))));
  43. $message .= &#092;"nn\";
  44. $message .= &#092;"------=MIME_BOUNDRY_main_message--n\";
  45.  
  46. // send the message
  47. mail(&#092;"$to_name<$to_email>\", $subject, $message, $headers);
  48. ?>


Pozdrawiam
Dudzio
opto
Polecam klasę Phpmailer.

Ja podczepiam się do wątku. MAM PROBLEM. Otóż tworzę maila w formacie HTML i dołączam jakiś obrazek, który ma być widoczny w treści maila (a nie jako załącznik), w tym celu wywołuję:

  1. <?php
  2.  
  3. $mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg '));
  4.  
  5. ?>


I problem tkwi w tym, że odbierając pocztę przez www - jest wszystko ok - obrazek jest w treści, a jak ściagnę pocztę przez klienta poczty który jest w Netscape, obrazek jest jako załącznik, a zamiast niego jest puste pole. W przypadku Outlooka i TheBata obrazki wyświetlają się poprawnie. Gdzie zatem tkwi błąd.
Puciek
Problem tkwi w kliencie który jest taki a nie inny ^^
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.