midivirus
Goto Top

PHP mail Anhang auslesen abspeichern

Moin Gemeinde,

habe mir vor langer Zeit mal ein Codeschnipsel aus diversen anderen zusammengebaut, dass mir den Inhalt des angegebenen Postfaches anzeigt.
Läuft ....

Veränderung:
da wir täglich mehrere (>60) Mails bekommen, die immer eine Datei dabei haben, es natürlich mühsam ist, die jede Mail zu öffnen und den Anhang abzuspeichern.

Mailclient: OL2007 oder Thunderbird 3.0.4

Kennt jemand einen schönen Trick, für die Mailclients oder ein brauchbares Codeschnipsel in PHP?

Andere Quellen im Netz:
http://www.php-resource.de/forum/showthread/t-64811.html
http://ezcomponents.org/docs/tutorials/Mail#retrieving-mail-using-pop3
http://www.php.de/php-fortgeschrittene/12986-datei-upload-und-per-email ...

Werde in der Zeit mal ein bischen basteln (...)

interne Suche: Automatisches Speichern von Emails unter Linux


<html>
<head> <title> Mail </title> </head>
<body bgcolor=D3D3D3>
<table> <tr> <td>
<?PHP

//$Host="(smtp.gmx.de: 110/pop3) INBOX"; // Host zu verbinden 

$Host="{pop.1und1.de/pop3:110}INBOX"; // Host zu verbinden  
$User="alias@domain.tld";  
$Pass="leer";  
$Aus=$User; // Mail zu senden

$ip = getenv("REMOTE_ADDR");  

$count_bestellung_gesamt = 0;

$Mail=imap_open($Host,$User,$Pass) Or die ("Kann keine Verbindung:" . imap_last_error());  

echo "<h1>Neue Mails</h1>\n";  

$headers = imap_headers($MAIL);
print_r($headers);

$message_count = imap_num_msg($Mail); 

echo "Anzahl Mails: ".$message_count."<BR>\n";  

//Verbindung zu Mailbox
$m_mail = imap_open($Host,$User,$Pass) or die("ERROR: " . imap_last_error());  

$m_gunixtp = array(2592000, 1209600, 604800, 259200, 86400, 21600, 3600);

//bis welchem Zeitpunkt die Mails gelesen werden sollen.
$m_gdmy = date('d-M-Y', time() - $m_gunixtp[$m_t]);  

//suche nach ungelesenen Mails
//$m_search=imap_search ($m_mail, 'UNSEEN SINCE ' . $m_gdmy . ''); 

//gebe alle Mails aus 'ALL' 
$m_search=imap_search ($m_mail, 'ALL ');  


//If mailbox is empty......Display "No New Messages", else........ You got mail....oh joy 
if($m_search < 1){
	$m_empty = "No New Messages";}  
else {
	//sortiert das Array, neuste zuerst.
	rsort($m_search);


	// nur ungelesene ...
	foreach ($m_search as $what_ever) {

		//liefert die Kopfdaten
		$obj_thang = imap_headerinfo($m_mail, $what_ever);
		//print_r($obj_thang);

		//liest die Mail aus ...
		$part=imap_fetchbody($Mail,$what_ever,1);
		//print_r($part);  // => liefert den Mailinhalt...

		$part=imap_fetchbody($Mail,$what_ever,2);
		//print_r($part);  // => liefert die Anlagen

		$adress_from = str_replace("<", "&lt;", $obj_thang->fromaddress);  
		$adress_from = str_replace(">", "&gt;", $adress_from);  
		$adress_to = str_replace("<", "&lt;", $obj_thang->toaddress);  
		$adress_to = str_replace(">", "&gt;", $adress_to);  

		$mail_betreff = $obj_thang->Subject;
		$mail_text = imap_fetchbody($Mail,$what_ever,1);

		//Then spit it out below.........if you dont swallow
		echo "<div align=center><br /><font face=Arial size=2 color=#800000>Message ID# " . $what_ever . "</font>  

		<table bgcolor=#D3D3D3 width=900 border=1 bordercolor=#000000 cellpadding=0 cellspacing=0>
		<tr>
			<td bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>Date:</font> <font face=Arial size=2 color=#000000>" . date("d-m-Y H:i", $obj_thang->udate) . "</font></td> 
			<td bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>From:</font> <font face=Arial size=2 color=#000000>" . $adress_from . "</font></td> 
			<td bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>To:</font> <font face=Arial size=2 color=#000000>" . $adress_to . " </font></td> 
		</tr>
		<tr>
			<td colspan=3 bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>Subject:</font> <font face=Arial size=2 color=#000000>" . $mail_betreff . "</font></td> 
		</tr>
		<tr>
			<td colspan=3 bgcolor=#F8F8FF><font face=Arial size=2 color=#800000>Text:</font> <font face=Arial size=2 color=#000000>" . $mail_text . "</font></td> 
		</tr>
		</table>";  
		}
	}

// date("d-m-Y H:i", $obj_thang->udate) 

$str = 'RGllcyBpc3QgZWluIHp1IGtvZGllcmVuZGVyIFN0cmluZw==';  
echo base64_decode($str);

?>
</Tr> </td> </table>

<HR>
<DIV>Based on: http://www.php.net/manual/de/function.imap-headerinfo.php</DIV>

</Body>
</Html>

Grüße
euer Midi

Content-Key: 143877

Url: https://administrator.de/contentid/143877

Printed on: April 24, 2024 at 22:04 o'clock

Member: masterG
masterG May 31, 2010 at 14:34:07 (UTC)
Goto Top
Was ist jetzt genau deine Frage?
Member: Midivirus
Midivirus May 31, 2010 at 14:44:11 (UTC)
Goto Top
wie man mittels aufruf der Seite den Anhang der Mails oder ausgewählten Mails abspeichert, auf Webspace oder bei mir auf dem lokalen PC
Member: masterG
masterG Jun 01, 2010 at 11:34:26 (UTC)
Goto Top
Naja du müsstest mittels base64_decode den Anhang entschlüsseln und dann per fopen, fputs die datei schreiben und auf dem Server einstweil hinterlegen.
Dann kannst du eine Liste erstellen mit den Anhängen die sich in einem gewissen Ordner erstellen und die dann runterladen.

Denkansatz.

masterG
Member: Midivirus
Midivirus Jun 01, 2010 at 11:59:35 (UTC)
Goto Top
da das ganze lokal liegt like XAMPP wird das über die Dateifrage dann abgeholt, wenn benötigt.

gibt es da zufällig ein Codeschnipsel, wo ich da anfangen müsste? @base64_decode
Member: masterG
masterG Jun 01, 2010 at 14:29:56 (UTC)
Goto Top
Eins
Zwei

unter google kannst ja suchen mit: "php save mail attachment"