| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

01-08-2010, 16:51
|
|
DerRoman
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 3
|
|
Mails mit bestimmtem Empfänger aus Catchall-Postfach auslesen
Hallo liebe Leute,
ich würde gerne ein Script erstellen, welches es möglich macht, aus einem Catchall-POP-Postfach, Emails auszulesen, die an einen bestimmten Empfänger gerichtet waren.
Beispiel:
Ich habe die Emailadresse postfach@domain.de und lasse alle Mails, die an *@domain.de gesandt werden, dort sammeln (Catchall). Jetzt möchte ich, dass mein Websitebenutzer "Fred" sich bei uns einloggen kann (das alles steht schon) und alle Emails, die an fred@domain.de geschickt wurden, aus diesem Catchall-Postfach auslesen kann. Die Zugangsdaten zu diesem Postfach werden in einer Config gespeichert, der Benutzer braucht also keine Eingaben machen.
Ist so etwas möglich? Wenn ja: Könnt ihr vielleicht mit Beispielen, Links oder Codeschnipseln aushelfen?
Liebe Grüße
Roman
|

01-08-2010, 17:42
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Guckst du hier. Gilt auch POP3.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

01-08-2010, 18:20
|
|
DerRoman
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 3
|
|
Hallo,
erst einmal vielen Dank... Ich habe jetzt herausgefunden, wie ich Emails abrufe und in einer Tabelle darstelle...
PHP-Code:
<?php
function show_mails($server, $konto, $paswd)
{
$mailbox = imap_open("{".$server.":110/pop3}INBOX", $konto, $paswd);
$mails = imap_fetch_overview($mailbox,"1:*", FT_UID); // Übersicht abholen
// Tabelle erstellen
$return = '<table width="100%">
<tr>
<td>#</td>
<td>Von</td>
<td>Datum / Zeit</td>
<td>Betr.</td>
</tr>';
$size=count($mails); // Anzahl
$cmsg = 0; // Fortl. Nr.
for($i=$size-1;$i>=0;$i--)
{
$cmsg++;
$value = $mails[$i];
$return .= '<tr><td>'.$cmsg.'</td><td>'.$value->from.'</td><td>'.$value->date.'</td><td>'.$value->subject.'</td></tr>';
}
$return .= '</table>';
imap_close($mailbox);
RETURN $return;
}
function show_mail($id, $server, $konto, $paswd)
{
$mailbox = imap_open("{".$server.":110/pop3}INBOX", $konto, $paswd);
$mail = imap_body($mailbox,$id, FT_UID);
// Holt die Email..
$mail = htmlentities(stripslashes($mail));
/* stripslashes entfernt die slashes, htmlentities wandelt alle html-zeichen in entspr. html-codes um. */
$return = '<pre>'.$mail.'</pre>';
imap_close($mailbox);
return $return;
}
if(isset($_GET['id']))
if(is_numeric($_GET['id']))
echo show_mail($_GET['id'], "Server", "Kontonummer", "Passwort");
else
echo 'Fehler - Falsche Parameter angegeben';
else
echo show_mails("Server", "Konton", "Passwort");
?>
Doch dies stellt mir ja alle Emails dar - wie kann ich Emails darstellen, die an einen bestimmten Empfänger gerichtet waren, z.B. "test@domain.de", während Emails, die an "test123@domain.de" gerichtet waren, aber in einem Catchallpostfach zusammen gelandet sind, außen vor bleiben?
LG
Roman
|

01-08-2010, 18:24
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Wenn du "from" ausgeben kannst, dann kannst du vielleicht auch das Gegenteil abfragen ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

01-08-2010, 19:12
|
|
DerRoman
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 3
|
|
Danke für Deine Antwort, doch wenn ich "to" prüfen lasse, kann es ja auch zu so etwas kommen:
test@domain.de -> okay
=?UTF-8?B?Um9tYW4gTG9zc2luLUJlJnN6bGlnO2xlcg==? -> Nicht okay, war aber ursprünglich an test@domain.de gerichtet
test -> Nicht okay
test@domain.de -> okay
In diesem Falle würden ja nur 2 Emails auch wirklich angezeigt...
LG
Roman
|

01-08-2010, 20:46
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Zitat:
Zitat von DerRoman
=?UTF-8?B?Um9tYW4gTG9zc2luLUJlJnN6bGlnO2xlcg==? -> Nicht okay, war aber ursprünglich an test@domain.de gerichtet
|
Dekodiers halt, dann passt's.
Ergänze es mit der Standarddomain des Mailservers. Wenns es dadurch zu test@domain.de wird, passt's auch. Wenn nicht, war die Mail halt an jemand anderen.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|