Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
// IMAP Zugangsdaten
$IMAP_H = '{BlaBlaBla}';
$IMAP_U = 'BlaBlaBla';
$IMAP_P = 'BlaBlaBla';
// IMAP Öffnen
$IMAP_C = imap_open($IMAP_H, $IMAP_U, $IMAP_P);
// Alle E-Mails auslesen
$IMAP_E = imap_search($IMAP_C, 'ALL');
if ($IMAP_E)
{
// E-Mails sortieren
rsort($IMAP_E);
foreach($IMAP_E as $IMAP_N)
{
// IMAP-Header auslesen
$IMAP_Headers = imap_fetch_overview($IMAP_C, $IMAP_N, 0);
// IMAP-Message auslesen
$IMAP_Message = imap_fetchbody($IMAP_C, $IMAP_N, 1);
// Betreff formatieren
$IMAP_Subject = iconv_mime_decode($IMAP_Headers[0]->subject, 0, "ISO-8859-1");
// E-Mail-Adresse auslesen (Filtern)
$E_Mail_1 = explode('<', $IMAP_Headers[0]->from);
$E_Mail_2 = explode('>', $E_Mail_1[1]);
$IMAP_From = $E_Mail_2[0];
// Datum/Zeit in Unix-Timestamp konvertieren
$IMAP_Date = strtotime($IMAP_Headers[0]->date);
// Prüfen ob Encoding ungleich UTF-8 ist
if (mb_detect_encoding($IMAP_Message) != 'UTF-8')
{
$IMAP_Message = utf8_encode($IMAP_Message);
}
// IMAP-Message formatieren
$IMAP_Message = quoted_printable_decode($IMAP_Message);
// HTML aus IMAP-Message entfernen
$IMAP_Message = strip_tags($IMAP_Message);
// HTML-Ausgabe (Test)
$Result .= $IMAP_Subject .'<br />'."\n";
$Result .= $IMAP_From .'<br />'."\n";
$Result .= $IMAP_Date .'<br />'."\n";
$Result .= $IMAP_Message .'<br />'."\n";
$Result .= '<br /><br /><br />'."\n";
}
}
// IMAP schließen
imap_close($IMAP_C);
Guten Tag, Für die Löschung benötigen wir den Link zu dem betroffenen Dokument um sicher zu stellen dass wir das richtige Dokument löschen. Mit freundlichen Grüssen
html,body{font-size:12px;background-color:#fff;color:#333;font-family:sans-serif,Arial,Verdana,Trebuchet MS;line-height:1.4;}Wie geht es dir?
if (!filter_var($IMAP_Headers[0]->from, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = $IMAP_Headers[0]->from;
}
else
{
// E-Mail-Adresse auslesen (Filtern)
$E_Mail_1 = explode('<', $IMAP_Headers[0]->from);
$E_Mail_2 = explode('>', $E_Mail_1[1]);
$IMAP_From = $E_Mail_2[0];
if (filter_var($IMAP_From, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = 'Kann nicht ausgelesen werden';
}
}
// E-Mail-Adresse prüfen (1. Versuch)
if (!filter_var($IMAP_Headers[0]->from, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = $IMAP_Headers[0]->from;
}
else
{
// E-Mail-Adresse Filtern (2. Versuch)
$E_Mail_1 = explode('<', $IMAP_Headers[0]->from);
$E_Mail_2 = explode('>', $E_Mail_1[1]);
$E_Mail_3 = $E_Mail_2[0];
if (!filter_var($E_Mail_3, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = $E_Mail_3;
}
else
{
// E-Mail-Adresse Filtern (3. Versuch)
$E_Mail_4 = preg_replace('/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD
', '$1', $IMAP_Headers[0]->from);
if (!filter_var($E_Mail_4, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = $E_Mail_4;
}
else
{
$IMAP_From = $IMAP_Headers[0]->from;
}
}
}
if ($_GET['action'] == 'emails')
{
// Header setzen
header('Content-Type: text/html; charset=ISO-8859-1');
mb_internal_encoding('ISO-8859-1');
// IMAP Zugangsdaten
$IMAP_H = '{BlaBlaBla}';
$IMAP_U = 'BlaBlaBla';
$IMAP_P = 'BlaBlaBla';
// IMAP Verbindung Öffnen
$IMAP_C = imap_open($IMAP_H,$IMAP_U,$IMAP_P);
// Alle E-Mails auslesen und sortieren
$IMAP_E = imap_sort($IMAP_C, SORTDATE, 0, NULL, 'All');
if ($IMAP_E)
{
// E-Mail für E-Mail durchlaufen
foreach($IMAP_E as $IMAP_N)
{
// IMAP-Header auslesen
$IMAP_Headers = imap_fetch_overview($IMAP_C, $IMAP_N, 0);
// IMAP-Message auslesen
$IMAP_Message = imap_fetchbody($IMAP_C, $IMAP_N, 1);
// Betreff formatieren
$IMAP_Subject = iconv_mime_decode($IMAP_Headers[0]->subject, 0, "ISO-8859-1");
// E-Mail-Adresse prüfen (1. Versuch)
if (!filter_var($IMAP_Headers[0]->from, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = $IMAP_Headers[0]->from;
}
else
{
// E-Mail-Adresse Filtern (2. Versuch)
$E_Mail_1 = explode('<', $IMAP_Headers[0]->from);
$E_Mail_2 = explode('>', $E_Mail_1[1]);
$E_Mail_3 = $E_Mail_2[0];
if (!filter_var($E_Mail_3, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = $E_Mail_3;
}
else
{
// E-Mail-Adresse Filtern (3. Versuch)
$E_Mail_4 = preg_replace('/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD
', '$1', $IMAP_Headers[0]->from);
if (!filter_var($E_Mail_4, FILTER_VALIDATE_EMAIL) === false)
{
$IMAP_From = $E_Mail_4;
}
else
{
$IMAP_From = $IMAP_Headers[0]->from;
}
}
}
// Datum/Zeit in Unix-Timestamp konvertieren
$IMAP_Date = strtotime($IMAP_Headers[0]->date);
// Unix-Timestamp zurück konvertieren
$IMAP_D = date("d.m.Y", $IMAP_Date);
$IMAP_T = date("H:i", $IMAP_Date);
$IMAP_Date = $IMAP_D.' '.$IMAP_T;
// Nachricht in 8-Bit-String konvertieren
$IMAP_Message = quoted_printable_decode($IMAP_Message);
// HTML aus IMAP-Message entfernen
$IMAP_Message = strip_tags($IMAP_Message, '<br><br/><br />');
// Nachricht formatieren 1
$IMAP_Message = str_replace("\r", '', $IMAP_Message);
$IMAP_Message = str_replace("\n", '<br />', $IMAP_Message);
$IMAP_Message = str_replace("\t", '', $IMAP_Message);
// Von UTF-8 nach ISO-8859-1 konvertieren
if (mb_detect_encoding($IMAP_Message,'ASCII, UTF-8, ISO-8859-1',true) === 'UTF-8')
{
$IMAP_Message = iconv("UTF-8", "ISO-8859-1", $IMAP_Message);
}
// Ticketnummer in Betreff suchen
$IF_Ticket1 = explode('[TN:', $IMAP_Subject);
$IF_Ticket2 = explode(']', $IF_Ticket1[1]);
// Prüfen ob Ticketnummer vorhanden
if (!$IF_Ticket2[0])
{
// In der Nachricht nach Tickernummer suchen
$IF_Ticket3 = explode('[TN:', $IMAP_Message);
$IF_Ticket4 = explode(']', $IF_Ticket3[1]);
$IF_TicketF = $IF_Ticket4[0];
}
else
{
$IF_TicketF = $IF_Ticket2[0];
}
// Prüfen ob Ticketnummer eine 10 Stellige Zahl ist
if (!is_numeric($IF_TicketF) AND strlen($IF_TicketF) != 10)
{
$IF_TicketF = 'Neues Ticket';
}
else
{
// Gefundenes Ticket aus der Datenbank auslesen
$DB_Ticket = $vbulletin->db->query_read("BlaBlaBla");
// Prüfen ob das Ticket vorhanden ist
if (mysql_num_rows($DB_Ticket) == 0)
{
$IF_TicketF = 'Neues Ticket';
}
}
// Neue Ticketnummer erstellen
if ($IF_TicketF == 'Neues Ticket')
{
// Höchste Ticketnummer auslesen
$Ticket_Nr = $vbulletin->db->query_read("BlaBlaBla");
// Als Variable speichern
$Ticket_Nr = $vbulletin->db->fetch_array($Ticket_Nr);
// Ticketnummer um eins erhöhen
$New_Ticket = $Ticket_Nr['Max_Number'] + 1;
}
// Variable für Ticketnummer setzen
if ($IF_TicketF == 'Neues Ticket')
{
$IMAP_Ticket = $New_Ticket;
}
else
{
$IMAP_Ticket = $IF_TicketF;
}
// E-Mails in die Datenbank eintragen
if ($IF_TicketF == 'Neues Ticket')
{
// Neue Tickets
$vbulletin->db->query_write("BlaBlaBla)");
}
else
{
// Höchste Post-Nummer auslesen
$Post_Nr = $vbulletin->db->query_read("BlaBlaBla");
// Als Variable speichern
$Post_Nr = $vbulletin->db->fetch_array($Post_Nr);
if (!is_numeric($Post_Nr['Max_Number']) OR $Post_Nr['Max_Number'] == '')
{
$Post_Nr = '1';
}
else
{
$Post_Nr = $Post_Nr['Max_Number'] + 1;
}
// Antworten auf Tickets
$vbulletin->db->query_write("BlaBlaBla");
// Ticket als ungelesen markieren
$vbulletin->db->query_write("BlaBlaBla");
}
// HTML-Ausgabe (zum Testen)
// $Result .= $IMAP_Subject .'<br />'."\n";
// $Result .= $IMAP_From .'<br />'."\n";
// $Result .= $IMAP_Date .'<br />'."\n";
// $Result .= $IMAP_Message .'<br />'."\n";
// $Result .= $IMAP_Ticket .'<br />'."\n";
// $Result .= ' <br />'."\n";
// E-Mails in den Ordner "Bearbeitet" verschieben
$imapresult = imap_mail_move($IMAP_C, $IMAP_N, 'Bearbeitet');
}
}
// IMAP Verbindung schließen
imap_close($IMAP_C, CL_EXPUNGE);
// Zur Support Startseite weiterleiten
header("Location: http://www.blablabla.de/ticket.php");
exit;
}
Der oberste Kommentar (Nummer 32) in http://php.net/manual/de/function.imap-fetchbody.php hat eine ListeIch kapier das mit den 1, 2, 1.2, 2.1 usw. sowieso nicht.
Schaut besser aus, jaDie E-mail prüfung habe ich etwas verbessert.
header('Content-Type: text/html; charset=ISO-8859-1');