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

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

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

Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...