Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> obsługa poczty w php
pawel_k
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

Ostrzeżenie: (0%)
-----


witam,
mam zamiar (a raczej przymus (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) napisania systemu obsługi poczty jako modul do systemu CRM. jesli chodzi o wysyłanie poczty to nie jest to problem, gorzej z pobieraniem poczty i sprawdzanie konta... a ze nie znalazlem nic ciekawego na forum, to zakladam ten temat...

proszę o pomoc jeśli chodzi o kwestie takie jak wymagania stawiane przez taki system (czy konta pocztowe muszą być w jakikolwiek sposób związane z serwerem www, czy są inne ograniczenia), czy są jakieś gotowe biblioteki (najlepiej napisane w php5) lub gotowe moduły do php (chociazby w peclu), czy są stawiane jakiekolwiek wymagania odnosnie apacha czy php, w jaki sposób się komunikować z serwerem poczty itp... wlasciwie cokolwiek co moze sie przydac, szczegolnie Wasze doswiadczenia i sugestie w tym temacie

ps. proszę mnie nie odsyłać do gotowych narzędzi tego typu (wiem że są, np. dobre uebimiay czy roundcube-webmail), bo mi zalezy bardziej na podejsci niz na przegladaniu kodu, a wiem że raczej na pewno juz takie moduły pisaliscie wiec lepiej abyście naprowadzili mnie (i mysle ze nie tylko mnie) jak to ugyżć, z jakich bibliotek skorzystać i jakich problemów mogę się spodziewać...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
Tylko jak się do tego zabrać, co jest potrzebne? Otóż do stworzenia takiego czegoś potrzeba php, odrobiny inwencji, oraz rozszerzenia IMAP.

A ja na serwerze nie mam imap, nie robie to na localhosta. Znalazłem tylko skrypt wysyłajacy emaila (z danych smtp) działa na zasadzie fsockopen tyle że musze czytać maile (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Skrypt:
  1. <?php
  2. function smtp_mail($mail_to, $subject, $message, $headers)
  3. {
  4. global $mailer, $config;
  5.  
  6.  
  7. if (!$socket = fsockopen($config['smtp_host'], 25, $errno, $errstr, 20))
  8. return false;
  9.  
  10. if (!server_parse($socket, '220'))
  11. return false;
  12.  
  13. if ($config['smtp_user'] != '' && $config['smtp_pass'] != '')
  14. {
  15.  
  16.  fputs($socket, 'EHLO ' . $config['smtp_host'] . "rn");
  17. if (!server_parse($socket, '250'))
  18. return false;
  19.  
  20.  fputs($socket, "AUTH LOGINrn");
  21. if (!server_parse($socket, '334'))
  22. return false;
  23.  
  24.  
  25. fputs($socket, base64_encode($config['smtp_user']) . "rn");
  26. if (!server_parse($socket, '334'))
  27. return false;
  28.  
  29. fputs($socket, base64_encode($config['smtp_pass']) . "rn");
  30. if (!server_parse($socket, '235'))
  31. return false;
  32.  
  33. }
  34. else
  35. {  // Jezeli serwer nie wymaga autoruzacji.
  36. fputs($socket, 'HELO ' . $config['smtp_host'] . "rn");
  37. if (!server_parse($socket, '250'))
  38. return false;
  39. }
  40.  
  41.  
  42. fputs($socket, 'MAIL FROM: <' . $mailer['admin'] . ">rn");
  43. if (!server_parse($socket, '250'))
  44. return false;
  45. fputs($socket, 'RCPT TO: <' . $mail_to . ">rn");
  46. if (!server_parse($socket, '250'))
  47. return false;
  48. fputs($socket, "DATArn");
  49. if (!server_parse($socket, '354'))
  50. return false;
  51. fputs($socket, 'Subject: ' . $subject . "rn");
  52. if (strlen($mail_to))
  53. fputs($socket, 'To: <' . $mail_to . ">rn");
  54. fputs($socket, $headers . "rnrn");
  55. fputs($socket, $message . "rn");
  56. fputs($socket, ".rn");
  57. if (!server_parse($socket, '250'))
  58. return false;
  59. fputs($socket, "RSETrn");
  60. if (!server_parse($socket, '250'))
  61. return false;
  62.  
  63. fputs($socket, "QUITrn");
  64. fclose($socket);
  65.  
  66. return true;
  67. }
  68.  
  69. // Parse a message to the SMTP server.
  70. function server_parse($socket, $response)
  71. {
  72. // No response yet.
  73. $server_response = '';
  74.  
  75. while (substr($server_response, 3, 1) != ' ')
  76. if (!($server_response = fgets($socket, 256)))
  77. return false;
  78.  
  79. if (substr($server_response, 0, 3) != $response)
  80. return false; 
  81.  
  82. return true;
  83. }
  84. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 23:44