Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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);

Geschrieben

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

Geschrieben

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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...