Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

wir bekommen über unsere mailserver mails mit anfragen herein wo auch die hoempages angegeben werden.

ich möchte nun um das ganze für uns zu vereinfachen teile der mails in eine db haben.

die mails kommen als txt und html an.

auf den mailserver per imap zu kommen ist soweit auch kein problem, den ganzen mails suche ich dann nach Anfrage

$mbox = imap_open( "{" . $mailserver . ":" . $port . "}INBOX", $user, $pass ) or die('Cannot connect to '.$mailserver.''.$user.': ' . imap_last_error());;

//$message_count= imap_search($mbox , 'TEXT "Anfrage"');

$message_count = imap_num_msg($mbox);

echo "$message_count Nachrichten in $mailserver $user " ;

nun mein problem wie kann ich aus der mail die url die hinter der anfrage steht herraussuchen und in eine variable übergeben?

das gleiche mit Name und Vorname bzw firma

danach die nachricht löschen

alle anderen mails die nicht anrage enthalten (meist spam) sollen direkt gelöscht werden

Also je nachdem, wenn die URL immer an der gleichen Stelle steht, musst Du einfach mit Substr sie extrahieren. Ich denke aber, dass dies nicht der Fall ist, so dass Du eben nach eine URL im Text suchen musst, URLs beginnen meist mit http:// Für die Suche und das Extrahieren kannst Du reguläre Ausdrücke verwenden

mit dieser funktion quäle ich mich grad aber diese gibt immer auch den restlichen text mit aus und nicht nur die url.

ne leider steht es nicht immer an der gleichen possition in manchen mails sind auch 2 url drin diese müssen dann je nach endung in einortiert werden.

function findUrl($u){

$url = $u[0];

$afterUrl = ''; // Zeichenkette am Ende der URL, die nicht zur URL gehört

while(preg_match('#[[:punct:]]$#', $url, $found)){

$chr = $found[0]; // letztes Zeichen

if($chr==='.' || $chr===',' || $chr==='!' || $chr==='?' || $chr===':' || $chr===';' || $chr==='>' || $chr==='<'){

// Ein Satzzeichen, das nicht zur URL gehört

$afterUrl = $chr.$afterUrl;

$url = substr($url, 0, -1);

}

elseif($chr===')' && strpos($url, '(')!==false || $chr===']' && strpos($url, '[')!==false || $chr==='}' && strpos($url, '{')!==false)

break; // Klammer gehört nur zur URL, wenn auch öffnende Klammer vorkommt.

elseif($chr===')' || $chr===']' || $chr==='}'){

// .. Klammer gehört nicht zur URL

$afterUrl = $chr.$afterUrl;

$url = substr($url, 0, -1);

}

elseif($chr==='(' || $chr==='[' || $chr==='{'){

// öffnende Klammer am Ende gehört nicht zur URL

$afterUrl = $chr.$afterUrl;

$url = substr($url, 0, -1);

}

else

break; // Zeichen gehört zur URL

}

// URL mit HTML-Code zurückgeben

return '<a href="'.$url.'" title="'.str_replace('http://', '', $url).'">'.$url.'</a>';

//return $Url;

}

$url = preg_replace_callback('#https?://[^/\s]{4,}(/[^\s]*)?#s', 'findUrl', $body);

das mit den Code-Tags werde ich beachten..

suchmaschiene habe ich schon gefunden aber leider nicht den hinweis den ich brauche.. deswegen schreibe ich ja hier und frage

weil du weist nach was du suchst... bin zu lang aus dem programieren raus..

gut aber die domain bzw den link im text zu markieren... macht es ja aber bei preg_replace_callback bekomme ich ja keine variable der domain als return sondern den text mit samt der domain oder nur den text ohne domain

Du bekommst für den Regulären Ausdruck in die Callback Funktion ein Array, in dem Array stehen die entsprechenden Teile Deines Textes drin. Damit kannst Du dann entsprechend weiter arbeiten, d.h. Deine weitere Verarbeitung muss in den Callback Funktion mit den übergebenen Arraydaten durchgeführt werden

ok die seite ist gut da , danke für den hinweis..

weist du vielleicht noch wie ich eine email (imap) auf dem server lösche bzw zum löschen markieren kann?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.