Email an PHP-Script?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Email an PHP-Script?

    Ist es möglich eine Email an ein PHP-Script zu schicken?
    Also ich würde gerne so eine Art einfaches Ticketsystem erstellen.
    Die User können dann zb an die Mailadresse help@domain.com ihre Anfragen schicken und ich guck nur in meine Weboberfläche auf php-basis und hab dort alle "Tickets" drin.
    Wie löst man sowas?
    Mess with the Besth, die like the rest!

  • #2
    "E-Mail" Text in einer DB speichern und der "Empfänger" liest sie aus, z.B. über ein entsprechendes Front-End. Kannst du ja sonst auch noch mit einem Login Bereich ggf. schützen. Ist es das was Du meinst?

    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Ist wohl nicht das, was der TS meint.
      @TS
      Schau dir mal die Mail-Funktionen von PHP an, inbesondere den Abschnitt über IMAP und POP3. Damit kannst du deinen Mail-Server direkt abfragen.

      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Nee ich meinte:
        User schickt sein Problem per Email an help@domain.com
        Ich will jetzt irgendwie das Postfach abfragen mit PHP und aus der Mail ein Ticket erstellen.
        Die User können auch direkt übers Web-Frontend Tickets hinzufügen, aber über Email soll es auch gehen.
        Ich guck mir mal Peter's Vorschlag an.
        Mess with the Besth, die like the rest!

        Kommentar


        • #5
          Zitat von Besth Beitrag anzeigen
          Ich guck mir mal Peter's Vorschlag an.
          OffTopic:
          Bitte keinen Deppenapostroph.

          Peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            ach Peter's

            php-Entwicklung | ebiz-consult.de
            PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
            die PHP Marktplatz-Software | ebiz-trader.de

            Kommentar


            • #7
              so ich hab mir das jetzt mal genauer angesehen.
              gibt es denn schon was fertiges was mir die arbeit erleichtert die parts der nachricht zu dekodieren?
              also es gibt ja soviel verschiedene email-arten - je nachdem mit welchem emailprogramm derjenige halt seine mails rausschickt.

              geht das auch einfacher?
              eh ich hier jetzt abfragen rein bau wie
              if multipart then ...
              if encoding = xyz then decode_xyz
              if encoding = abc then decode abc
              das ist doch nervig und ich krieg das sicherlich auch nicht alles auf einmal rein.
              das hat doch bestimmt schon einmal jemand gemacht

              bis jetzt hab ich das:
              PHP-Code:
              $server "{server:110/pop3}"$user "help@example.com"$pass "pw";


              $mailbox imap_open($server$user$pass);
              echo 
              "imap-check:<br>";
              $check imap_check($mailbox);
              print_r($check);
              echo 
              "<br><br>mailboxmsginfo:<br>";
              print_r(imap_mailboxmsginfo($mailbox));
              echo 
              "<br><br>getmailboxes:<br>";
              $list imap_getmailboxes($mailbox$server"*");
              if (
              is_array($list)) {
                
              print_r($list);
              } else {
                  echo 
              "imap_getmailboxes failed: " imap_last_error() . "\n";
              }

              echo 
              "<br>errors:<br>";
              print_r(imap_errors());
              echo 
              "<br>alerts:<br>";
              print_r(imap_alerts());


              echo 
              "<h1>Mailboxes</h1>\n";
              $folders imap_list($mailbox$server"*");

              if (
              $folders == false) {
                  echo 
              "list Call failed<br />\n";
              } else {
                  foreach (
              $folders as $val) {
                      echo 
              $val "<br />\n";
                  }
              }

              echo 
              "<h1>Headers in INBOX</h1>\n";
              $headers imap_headers($mailbox);

              if (
              $headers == false) {
                  echo 
              "header Call failed<br />\n";
              } else {
                  foreach (
              $headers as $val) {
                      echo 
              $val "<br />\n";
                  }
              }

              echo 
              "<h1>Messages</h1>\n";

              for(
              $i=1;$i<=$check->Nmsgs;$i++) {
                echo 
              "Nachricht ".$i.":<br>";
                
                
              $structure imap_fetchstructure($mailbox,$i);
                
              print_r($structure);

              // also ab hier muss ich dann ja anfangen mir den body zurecht zu bauen
              // geht das auch einfacher?
              // eh ich hier jetzt abfragen rein bau wie 
              // if multipart then ...
              // if encoding = xyz then decode_xyz
              // if encoding = abc then decode abc
              // das ist doch nervig oder?
                
              if ( $structure->subtype == "PLAIN" ) {
                  echo 
              "Gr&ouml;&szlig;e: ".$structure->bytes." Bytes<br>";
                  echo 
              "....";
                }
                echo 
              "<br>";
              }


              imap_close($mailbox); 
              Mess with the Besth, die like the rest!

              Kommentar


              • #8
                Hallo,

                PHP: Mailparse - Manual

                Gruß,

                Amica
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  auf das bin ich auch schonma gestoßen nur bekomm ich das nich auf meinem webserver zum laufen ^^
                  ich kann den nich neu compilieren
                  Mess with the Besth, die like the rest!

                  Kommentar


                  • #10
                    Zitat von Besth Beitrag anzeigen
                    eh ich hier jetzt abfragen rein bau wie
                    Dann definier dir halt eine Funktion, die du nur aufrufen musst. Langfristig solltest du sowieso von diesem monolithischen Stil wegkommen.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      Installiert man pecl pakete wie pear pakete?
                      Code:
                      # pear install mailparse
                      No releases available for package "pear.php.net/mailparse"
                      install failed
                      Code:
                      # pecl install mailparse
                      pecl.php.net is using a unsupported protocol - This should never happen
                      install failed
                      Mess with the Besth, die like the rest!

                      Kommentar


                      • #12
                        kann mir da keiner helfen?
                        wie installiere ich das ding?

                        also der Fehler besagt wohl das die Channels kaputt sind und man diese löschen soll und dann mit pear update-channel wieder aktualisieren. nur finde ich das verzeichnis .channel nicht! das gibt es bei mir nicht
                        Zuletzt geändert von Besth; 02.06.2010, 14:33.
                        Mess with the Besth, die like the rest!

                        Kommentar


                        • #13
                          Zitat von Besth Beitrag anzeigen
                          wie installiere ich das ding?
                          Keine Ahnung, aber das sollte helfen:
                          PHP-Code:
                          <?php
                              
                          function parseEMail ($pMessage) {
                                  
                          $pMessage preg_replace("<\\r\\n?|\\n>""\n"$pMessage);
                                  
                          $headers = array();
                                  
                          $parts = array();
                                  list(
                          $rawheaders$rawbody) = explode("\n\n"$pMessage2);
                                  
                          $rawheaders preg_replace("<\\n\\s+>"" "$rawheaders);
                                  foreach (
                          explode("\n"$rawheaders) as $v) {
                                      
                          $header explode(":"$v2);
                                      
                          $headers[strtolower($header[0])] = trim($header[1]);
                                  }
                                  if (
                                      isset(
                          $headers["content-type"])
                                      && 
                          stripos($headers["content-type"], "multipart/") === 0
                                  
                          ) {
                                      
                          $boundary preg_replace(
                                          
                          "<^multipart/.+?\\bboundary=(?:(['\"])(.+?)\\1|([^\\s;]+)).*$>i",
                                          
                          "\\2\\3",
                                          
                          $headers["content-type"]
                                      );
                                      
                          $parts preg_split(
                                          
                          "<\\n--\\Q" $boundary "\\E(?:--)?\\n>i",
                                          
                          "\n" trim($rawbody) . "\n",
                                          -
                          1,
                                          
                          PREG_SPLIT_NO_EMPTY
                                      
                          );
                                      foreach (
                          $parts as $k => $v) {
                                          
                          $parts[$k] = $k parseEMail($v) : trim($v);
                                      }
                                  }
                                  else {
                                      
                          $parts = array(trim($rawbody));
                                  }
                                  if (
                                      isset(
                          $headers["content-transfer-encoding"])
                                      && 
                          stripos($headers["content-transfer-encoding"], "quoted-printable") === 0
                                  
                          ) {
                                      
                          $parts[0] = quoted_printable_decode($parts[0]);
                                  }
                                  else if (
                                      isset(
                          $headers["content-transfer-encoding"])
                                      && 
                          stripos($headers["content-transfer-encoding"], "base64") === 0
                                  
                          ) {
                                      
                          $parts[0] = base64_decode($parts[0]);
                                  }
                                  return (object) array(
                          "headers" => $headers"parts" => $parts);
                              }
                          ?>
                          Zuletzt geändert von AmicaNoctis; 03.06.2010, 00:33.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar

                          Lädt...
                          X