| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

04-02-2010, 12:34
|
|
Besth
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 248
|
|
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!
|

04-02-2010, 12:46
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
"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 ---"
|

04-02-2010, 12:53
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
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
|

04-02-2010, 13:00
|
|
Besth
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 248
|
|
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!
|

04-02-2010, 13:10
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
Zitat:
Zitat von Besth
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
|

04-02-2010, 20:25
|
 |
Berni
  OWNER
|
|
Registriert seit: Jan 2001
Ort: Frankfurt / Egelsbach
Beiträge: 6.206
|
|
 ach Peter's
|

02-06-2010, 12:33
|
|
Besth
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 248
|
|
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öße: ".$structure->bytes." Bytes<br>";
echo "....";
}
echo "<br>";
}
imap_close($mailbox);
__________________
Mess with the Besth, die like the rest!
|

02-06-2010, 12:35
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

02-06-2010, 12:37
|
|
Besth
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 248
|
|
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!
|

02-06-2010, 12:43
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Besth
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.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

02-06-2010, 13:13
|
|
Besth
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 248
|
|
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!
|

02-06-2010, 14:16
|
|
Besth
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 248
|
|
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
__________________
Mess with the Besth, die like the rest!
Geändert von Besth (02-06-2010 um 14:33 Uhr)
|

02-06-2010, 15:00
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Besth
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", $pMessage, 2); $rawheaders = preg_replace("<\\n\\s+>", " ", $rawheaders); foreach (explode("\n", $rawheaders) as $v) { $header = explode(":", $v, 2); $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); } ?>
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (03-06-2010 um 00:33 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|