GMail-Version weiter unten im Thread
Liebe Leidensgenossen,
ein solches Script war vor einiger Zeit mal hier im Forum erfragt worden - ich habe mir eines zusammengebastelt und möchte es euch nicht vorenthalten.
Zur Nutzug wird das IMAP-Modul (DLL) für PHP benötigt, eine Anleitung zur Installation gibt es im Forum.
Änderung: Fehler in alter Zeile 83 ($nachricht_tell mit Inhalt versehen) behoben; Fix von H-MAN für bestimmte Mailserver hinzugefügt; $prefix mit Startwert versehen
<?
/*
******************************************************
e-Mails vom Server abrufen (POP3) und vorlesen per TTS
******************************************************
File : emailtts.ips.php
Trigger : none
*/
// Funktionen zum Auslesen eines bestimmten MIME-Types
function get_mime_type(&$structure)
{
$primary_mime_type = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");
if ($structure->subtype) {
return $primary_mime_type[(int) $structure->type] . '/' . $structure->subtype;
}
return "TEXT/PLAIN";
}
function get_part($stream, $msg_number, $mime_type, $structure = false, $part_number = false)
{
$prefix = "";
if (!$structure) {
$structure = imap_fetchstructure($stream, $msg_number);
}
if ($structure) {
if ($mime_type == get_mime_type($structure)) {
if (!$part_number) {
$part_number = "1";
}
$text = imap_fetchbody($stream, $msg_number, $part_number);
if ($structure->encoding == 3) {
return imap_base64($text);
} else if ($structure->encoding == 4) {
return imap_qprint($text);
} else {
return $text;
}
}
if($structure->type == 1) /* multipart */
{
while (list($index, $sub_structure) = each($structure->parts)) {
if ($part_number) {
$prefix = $part_number . '.';
}
$data = get_part($stream, $msg_number, $mime_type, $sub_structure, $prefix . ($index + 1));
if ($data) {
return $data;
}
}
}
}
return false;
}
// hier Script mit den Benutzerdaten des POP3-Servers konfigurieren
$hostname = "pop3.web.de";
$username = "sagichnicht";
$kennwort = "findsraus";
$mailbox = imap_open("{".$hostname."}", $username, $kennwort);
// $mailbox = imap_open ("{".$hostname.":110/pop3}INBOX", $username, $kennwort); // für GMX und andere bekannte Freemailer
$mails = imap_fetch_overview($mailbox,"1:*", FT_UID); // Holt eine Übersicht aller Emails
$nachricht_tell = "";
$size=count($mails); // Anzahl der Nachrichten
$cmsg = 0; // Zur Ausgabe einer fortlaufenden Nummer
for ($i=$size-1; $i>=0; $i--) { // für alle vorhandenen Mails durchlaufen
$cmsg++;
$value = $mails[$i];
$mail = get_part($mailbox, $value->msgno, "TEXT/PLAIN"); // aus der Nachricht den Plaintext holen
// Vorlesetext zusammenbasteln....
$nachricht_tell .= "Nachricht Nummer ".$cmsg." von ".$value->from.". Betreff: ".$value->subject.".";
$nachricht_tell .= "Inhalt: ".$mail.".";
}
imap_close($mailbox); // Verbindung zum POP3-Server beenden
TTS_Speak(47164, $nachricht_tell); // Vorlesen per TTS - Instance ID anpassen!!!
?>