Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pokazywanie wiadomosci pobranych z pop3
Forum PHP.pl > Forum > PHP
noose
witam :]
dzisiaj zaczalem sobie pisac webmaila :] jestem z niego bardzo zadowolony :] problem z nim jest tylko w momencie w ktorym pojawiaja sie zalaczniki do maili :?
wywala mi tresc maila (wraz z naglowkami)
Kod
------------A5C61DD3883A919
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


jak sobie z tym poradzic :?:
kod
  1. <?
  2.  require 'funkcje.php';
  3.  session_name('webmail');
  4.   $login = $_SESSION['login'];
  5.   $haslo = $_SESSION['haslo'];
  6.   $host = '{localhost:110/pop3}';
  7. head();
  8.   $mbox = @imap_open(&#092;"$host\", \"$login\", \"$haslo\");
  9.   $id = $_GET['id'];
  10.   $naglowki = imap_header($mbox,$id);
  11.   $struktura = imap_fetchstructure($mbox, $i);
  12.   $temat = $naglowki->subject;
  13.    if ($temat == null)
  14.     {
  15.         $temat = '(brak tematu)';
  16.     }
  17.   $od = $naglowki->personal.&#092;"(\".$naglowki->from[0]->mailbox.\"@\".$naglowki->from[0]->host.\")\";
  18.   $data = explode(&#092;" \",$naglowki->date);
  19.   $data = $data[1].&#092;" \".$data[2].\" \".$data[3];
  20.   $wielkosc = round($struktura->bytes/1024,2);
  21.   ?>
  22.   <table>
  23.    <tr>
  24.     <td> Od: </td> <td> <? echo $od; ?> </td>
  25.    </tr>
  26.    <tr>
  27.     <td> Do: </td> <td> <? echo $do;?> </td>
  28.    </tr>
  29.    <tr>
  30.     <td> Data: </td> <td> <? echo $data; ?> </td>
  31.    </tr>
  32.    <tr>
  33.     <td> Temat: </td> <td> <? echo $temat; ?> </td>
  34.    </tr>
  35.    <tr>
  36.     <td colspan='2'> <a href='naglowki.php?id=<? echo $id;?>' target='_new'> Pokaz wszystkie naglowki </a> </td>
  37.    </tr>
  38.   <?
  39.   $wiadomosc = imap_body($mbox,$id);
  40.   $wiadomosc = eregi_replace(&#092;"n\",\"n <br>\",$wiadomosc);
  41.   $wiadomosc = eregi_replace(&#092;"([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\",\"<a href=\"\1://23\"> 1://23 </a>\",$wiadomosc); 
  42.    echo &#092;"<tr> <td colspan='2'>\";
  43.     echo $wiadomosc;
  44.    echo &#092;"</tr> </td>\";
  45.    echo &#092;"</table>\";
  46. tail();
  47. ?>
bregovic
poradzam przekopac sourca IohaMail. zwlaszcza ze jeszcze nie raz bedziesz pewnie potrzebowal pomocy biggrin.gif
noose
a moze ktos ma gotowe rozwiazanie :?: bo przeszukiwanie ilustam plikow w poszukiwaniu kompletu funkcji odpowiedzialnych za zalaczniki, nie usmiecha mi sie :?

znajdzie sie ktos dobry i mi napisze co mam zrobic :?:


edit:
moze sie komus przyda....

plik zobacz.php
  1. <?
  2.  require_once 'funkcje.php';
  3.  session_name('webmail');
  4. $login = $_SESSION['login'];
  5. $haslo = $_SESSION['haslo'];
  6. $host = $_SESSION['host'];
  7. head();
  8. $mbox = @imap_open(&#092;"$host\", \"$login\", \"$haslo\");
  9. $id = $_GET['id'];
  10. $naglowki = imap_header($mbox,$id);
  11. $struktura = imap_fetchstructure($mbox, $id);
  12. $temat = $naglowki->subject;
  13.  if ($temat == null)
  14. {
  15. $temat = '(brak tematu)';
  16. }
  17. $od_mail =$naglowki->from[0]->mailbox.&#092;"@\".$naglowki->from[0]->host;
  18. $od = $naglowki->from[0]->personal.&#092;"(\".$od_mail.\")\";
  19. $data = explode(&#092;" \",$naglowki->date);
  20. $data = $data[1].&#092;" \".$data[2].\" \".$data[3];
  21. $wielkosc = round($struktura->bytes/1024,2);
  22. ?>
  23. <table>
  24.  <tr>
  25. <td> Od: </td> <td> <a href='napisz.php?do=<? echo $od_mail; ?>'> <? echo $od; ?> </a> </td>
  26.  </tr>
  27.  <tr>
  28. <td> Data: </td> <td> <? echo $data; ?> </td>
  29.  </tr>
  30.  <tr>
  31. <td> Temat: </td> <td> <? echo $temat; ?> </td>
  32.  </tr>
  33.  <tr>
  34. <td colspan='2'> <a href='naglowki.php?id=<? echo $id;?>' target='_new'> Pokaz wszystkie naglowki </a> </td>
  35.  </tr>
  36. <?
  37. if ($struktura->subtype == 'MIXED')
  38. {
  39. for ($i = 1; $i <= $struktura->parts; $i++)
  40. {
  41.  if(($struktura->parts[$i]->subtype) == (('text/plain') or ('text/html')))
  42. {
  43. $wiadomosc = imap_fetchbody($mbox,$id,$i);
  44. break;
  45. }
  46. }
  47. }
  48. else
  49. {
  50. $wiadomosc = imap_body($mbox,$id);
  51. }
  52.  echo &#092;"<tr> <td colspan='2'>\";
  53. $wiadomosc = eregi_replace(&#092;"n\",\"n <br>\",$wiadomosc);
  54. $wiadomosc = eregi_replace(&#092;"([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\",\"<a href=\"\1://23\" target='_new'> 1://23 </a>\",$wiadomosc); 
  55. echo $wiadomosc;
  56.  echo &#092;"</tr> </td>\";
  57.  echo &#092;"</table>\";
  58. if ($struktura->subtype = 'MIXED')
  59. {
  60. echo &#092;"<hr> <table>\";
  61. $zalaczniki = $struktura->parts;
  62. $i=0;
  63. foreach($zalaczniki as $k => $v)
  64. {
  65. $zal[$i] = $zalaczniki[$i+1];
  66. $i++;
  67. }
  68. $zalaczniki = $zal;
  69. $i=0;
  70. foreach ($zalaczniki as $k => $v)
  71. {
  72. $i++;
  73. $typ = $struktura->parts[$i]->type;
  74. if ($typ == 0)
  75. {
  76. $typ = &#092;"text/\";
  77. }
  78. elseif ($typ == 1)
  79. {
  80. $typ = &#092;"multipart/\";
  81. }
  82. elseif ($typ == 2)
  83. {
  84. $typ = &#092;"message/\";
  85. }
  86. elseif ($typ == 3)
  87. {
  88. $typ = &#092;"application/\";
  89. }
  90. elseif ($typ == 4)
  91. {
  92. $typ = &#092;"audio/\";
  93. }
  94. elseif ($typ == 5)
  95. {
  96. $typ = &#092;"image/\";
  97. }
  98. elseif ($typ == 6)
  99. {
  100. $typ = &#092;"video\";
  101. }
  102. elseif($typ == 7)
  103. {
  104. $typ = &#092;"other/\";
  105. }
  106. $typ .= $struktura->parts[$i]->subtype;
  107. $wielkosc = round($struktura->parts[$i]->bytes/1024,2);
  108. if ($v != null)
  109. {
  110. echo &#092;"<tr> <td> Zalacznik \".$i.\" </td> <td> Nazwa: <a href='zalacznik.php?id=\".$id.\"&part=\".$i.\"' target='_new'>\".$struktura->parts[$i]->dparameters[0]->value.\" </a></td> <td> Typ <small> [\".$typ.\"] </small> </td> <td> Rozmiar: \";
  111. if ($wielkosc < 512) echo $wielkosc.&#092;" kB\"; else echo round($wielkosc/1024,2).\" MB\";
  112. echo &#092;" </td></tr>\";
  113. }
  114. }
  115. echo &#092;"</table>\";
  116. }
  117. tail();
  118. ?>


plik zalacznik.php
  1. <?
  2. require 'funkcje.php';
  3.  
  4.  foreach ($_GET as $k => $v)
  5.  {
  6.  $$k = $v;
  7.  }
  8.  $login = $_SESSION[&#092;"login\"];
  9.  $haslo = $_SESSION[&#092;"haslo\"];
  10.  $host = $_SESSION[&#092;"host\"];
  11.  
  12. $mbox = imap_open(&#092;"$host\", \"$login\", \"$haslo\");
  13. $struktura = imap_fetchstructure($mbox, $id);
  14. $wiadomosc = imap_fetchbody($mbox,$id,$part);
  15. $nazwa = $struktura->parts[$part]->dparameters[0]->value;
  16. $typ = $struktura->parts[$part]->type;
  17. ############## Typ
  18. if ($typ == 0)
  19. {
  20. $typ = &#092;"text/\";
  21. }
  22. elseif ($typ == 1)
  23. {
  24. $typ = &#092;"multipart/\";
  25. }
  26. elseif ($typ == 2)
  27. {
  28. $typ = &#092;"message/\";
  29. }
  30. elseif ($typ == 3)
  31. {
  32. $typ = &#092;"application/\";
  33. }
  34. elseif ($typ == 4)
  35. {
  36. $typ = &#092;"audio/\";
  37. }
  38. elseif ($typ == 5)
  39. {
  40. $typ = &#092;"image/\";
  41. }
  42. elseif ($typ == 6)
  43. {
  44. $typ = &#092;"video\";
  45. }
  46. elseif($typ == 7)
  47. {
  48. $typ = &#092;"other/\";
  49. }
  50. $typ .= $struktura->parts[$part]->subtype;
  51. ######## Koniec typow
  52.  
  53. header(&#092;"Content-type: \".$typ);
  54. header(&#092;"Content-Disposition: attachment; filename=\".$nazwa);
  55.  
  56. ######## Kodowanie
  57. $kodowanie = $struktura->parts[$part]->encoding;
  58. if ($kodowanie == 0)
  59. {
  60. $wiadomosc = imap_7bit($wiadomosc);
  61. }
  62. elseif ($kodowanie == 1)
  63. {
  64. $wiadomsoc = imap_8bit($wiadomosc);
  65. }
  66. elseif ($kodowanie == 2)
  67. {
  68. $wiadomosc = imap_binary($wiadomosc);
  69. }
  70. elseif ($kodowanie == 3)
  71. {
  72. $wiadomosc = imap_base64($wiadomosc);
  73. }
  74. elseif ($kodowanie == 4)
  75. {
  76. $wiadomosc = quoted_printable($wiadomosc);
  77. }
  78. elseif ($kodowanie == 5)
  79. {
  80. $wiadomosc = $wiadomosc;
  81. }
  82. echo $wiadomosc;
  83. ########## Kodowanie koniec 
  84.  imap_close($mbox);
  85. ?>


pozdro
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.