Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyświetlanie załącznika
Forum PHP.pl > Forum > PHP
marrrecki
Witam!
Napisałem sobie skrypt do mailingu - działa prawie cacy.
Wszytskie pliki jakie chce dołączyć do maila są dołączane, tekst i style są ładnie wyświetlane, ale problem jest z wyświetlaniem załączników (załącznik jest grafiką - plik .jpg .gif).
Gdzieś w googlach znalazłem, że link do pliku z załącznika powinien wyglądać tak:
  1. <img src="!attachment:plik.jpg">

Niestety to nie działa.
Czy ktoś rozwiązał taki problem, lub zna magicznbe kilka linkjek kodu które mi wyświetlą grafikę w mailu?
heaven
Witam.
Nie wiem czy dam Ci rade pomóc ale wystarczy obejrzec zródło jakiego maila w ktorym wyswietlany jest dolaczony zalacznik.
zalacznk zaczyna sie tak
------------=_1172535197-3221-1295--

--107902846-na-kolkach
Content-Type: image/gif; name=./stopa.gif
Content-Transfer-Encoding: base64
Content-ID: <47637823c7f769566ecbc7b13331b5244>

R0lGODlh4AE5ALMAAP/////3///09//u7/3Y2/fCx/Wtte+cre+cpe+Sn++D
kOhreuZVaOZIWuA9UN4xSiwAAAAA4AE5AAAI/gABCBxIsKDBgwgTKlzIsKHD
hxAjSpxIsaLFixgzapQ44IHHjw4+igwp0iNJAwtAljS58gHJki9HPiAw0ICD
itd......

i jest tu cos takiego jak Content-ID o numerze 47637823c7f769566ecbc7b13331b5244

w tekscie wiadomosci natomiast jest cos takiego
....
<img border=3D"0" width=3D"480"= height=3D"57" src=3D"cid:47637823c7f769566ecbc7b13331b5244" alt=3D"">

czyli uzyty jest ten identyfikator. Podejrzewam ze trzeba to jakos dodac przy toworzeniu maila i pewnie trzeba uzyc jakiejs funkcji z klasy ktora tworzysz maila (PEAR::mail czy jakas inna) np z kodem html ale nic wiecej nie wiam bo sam nigdy tego (jeszcze) nie robilem.
pozdr
marrrecki
dzięki za dobre chęci, ale te napisy z tego coi już się dowiedziałem są tworzone gdy ktoś zamówi mailing np na wp. Wp'owcy automatycznie to dodają jakoś - przynajmniej tak mi się wydaje.
heaven
W PEAR jest specjalna clasa Mail_mime do tworzenia mailiHTML i jest tam funkcja i podejrzewam ze too to chodzi http://pear.php.net/manual/pl/package.mail...ddhtmlimage.php

a jesli Ty robisz to recznie to nie mam pojecia jak smile.gif
marrrecki
o tak:
  1. <?php
  2. /* This is Version 1.4
  3. * Notes from rozhik@ziet.zhitomir.ua 25 Mar 2000:
  4. * Improvements: Multi attachmends in one e-mail, ability to post html & plain trext, up to 3x speed improved.
  5. * USSAGE - mimetype example for attacment
  6. * $m = new CMIMEMail($to,$from,$subject);
  7. * $m->mailbody("This is simply text","<html><body><h1>This is HTML text</h1>");
  8. * $m->attach("example.html","text/html",$filebody);
  9. * $m->attachFile("resume.gif","image/gif");
  10. * $m->send();
  11. *******
  12. * Notes from maho
  13. * i added $cc to this.
  14. *********
  15. * To Do:
  16. * 1 Test with different Mail clients
  17. */
  18.  
  19.  
  20.  
  21. class CMIMEMail {
  22.  var $to;
  23.  var $boundary;
  24.  var $smtp_headers;
  25.  var $filename_real;
  26.  var $body_plain;
  27.  var $body_html;
  28.  var 
  29. $atcmnt;
  30.  var $atcmnt_type;
  31.  function CMIMEMail($to,$cc,$from,$subject,$priority=3) {
  32.  $this->to=$to; $this->from=$from; $this->cc=$cc; 
  33.  $this->subject=$subject; $this->priority=$priority;
  34.  $this->boundary="----=_NextPart_".time()."_".md5(time())."_";
  35.  }
  36.  function mailbody( $plain, $html="" ) {
  37.  $this->body_plain=$plain;
  38.  $this->body_html=$html;
  39.  }
  40.  function attach( $name, $content_type, $data ) {
  41.  }
  42.  function attachfile( $fname, $content_type ) {
  43. $this->attachfile_raw($fname,$fname,$content_type);
  44.  }
  45.  function attachfile_raw( $fname, $mailFileName, $content_type ) {
  46.  if($f=@fopen($fname,"r")) {
  47. $this->atcmnt[$mailFileName]=fread($f,filesize($fname));
  48. $this->atcmnt_type[$mailFileName]=$content_type;
  49. fclose($f);
  50. } 
  51.  }
  52.  function clear() {
  53.  unset( $atcmnt );
  54.  unset( $atcmnt_type );
  55.  }
  56.  function makeheader() {
  57.  $out ="From: ".$this->from."n";
  58.  $out.="Reply-To: ".$this->from."n";
  59.  $out.="CC: ".$this->cc."n";
  60.  $out.="MIME-Version: 1.0n".
  61. "Content-Type: multipart/mixed;nt boundary="".$this->boundary.""n".
  62. "X-Priority: ".$this->priority."n".
  63. "X-Mailer: php_pAgEmAil(phpMimeMail+rymo)(http://www.pagema.net)n";
  64.  return $out;
  65.  }
  66.  function makebody() {
  67.  $boundary2= "----=_NextAttachedPart_".time()."_".md5(time()+101)."_";
  68.  $out="";
  69.  if( " ".$this->body_html!=" " ) {
  70.  $out="nThis is a multi-part message in MIME format.nn";
  71.  $out.="--".$this->boundary."nContent-Type: multipart/alternative;ntboundary="$boundary2"n";
  72.  $out.="$body_plann".
  73.  "--$boundary2nContent-Type: text/plainn".
  74. #  "Content-Disposition: inlinen".
  75.  "Content-Transfer-Encoding: quoted-printablenn".
  76.  $this->body_plain.
  77.  "nn--$boundary2n".
  78.  "Content-Type: text/htmln".
  79. #  "Content-Disposition: attachment;ntfilename="message.html"n".
  80.  "Conent-Transfer-Encoding: quoted-printablen".
  81.  "n$this->body_htmlnn".
  82.  "--$boundary2--n";
  83.  } else {
  84.  $out="nn".$this->body_plain."nn";
  85.  $out.="--".$this->boundary."n".
  86. "Content-Type: text/plainn".
  87. "Content-Transfer-Encoding: quoted-printablenn".
  88. $this->body_plain.
  89. "nn--".$this->boundary.
  90. "n";
  91.  }
  92.  if( is_array( $this->atcmnt_type ) ) {
  93.  reset( $this->atcmnt_type);
  94.  while( list($name, $content_type) = each($this->atcmnt_type) ) {
  95.  $out.="n--".$this->boundary."nContent-Type: $content_typenContent-Transfer-Encoding: base64nContent-Disposition: attachment; filename="$name"nn".
  96.  chunk_split(base64_encode($this->atcmnt[$name]))."n";
  97.  }  
  98.  }
  99.  $out.="n--".$this->boundary."--n";
  100.  return $out;
  101.  }
  102.  function send(){
  103.  mail( $this->to, $this->subject, $this->makebody(),$this->makeheader() );
  104.  }
  105.  function sendto($email){
  106.  mail( $email, $this->subject, $this->makebody(),$this->makeheader() );
  107.  }
  108. }
  109. ?>

wygląda klasa z której ja korzystam


PS. nie chce korzystać z PEAR. wie ktoś jak to zrobić czy etam?

Umysły tego forum. POMÓŻCIE
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.