Aus folgendem Beitrag benutze ich diese großartige Funktion.
Das klappt auch sehr gut, wobei ich gerne das vorlesen
der Emailadresse des Senders ausfiltern möchte.
Im Moment ließ die TTS Instanz den Seder und die emailadresse vor.
Ich habe mir schon mal probehalber den Inhalt in eine String Var geschrieben.
Da steht zwar der Name und alles andere, aber die Emailadresse steht nicht mit drin,
vorgelesen wird sie aber
Habe das Skript mal mit angefügt, mit der Bitte für einen Tipp.
<?
/*
******************************************************
e-Mails vom Server abrufen (POP3) und vorlesen per TTS
******************************************************
File : emailtts.ips.php
Trigger : none
*/
include "36786.ips.php"; // tts_play.ips
### 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 = "*****";
$username = "*****.net";
$kennwort = "*****";
### Nachrichten holen ##########################################################
$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.... ############################################
$content = GetValue(57329 /*[Email\Content]*/); // Abfrage ob Mail Content auch vorgelesen werden soll
IF ($content == false)
{
$nachricht_tell = $nachricht_tell .= "Nachricht Nummer ".$cmsg." von ".$value->from.". Betreff: ".$value->subject.".";
}
IF ($content == true)
{
$nachricht_tell = $nachricht_tell .= "Nachricht Nummer ".$cmsg." von ".$value->from.". Betreff: ".$value->subject.".";
$nachricht_tell .= "Inhalt: ".$mail.".";
}
SetValue(15054 /*[Email\last_string]*/ ,$nachricht_tell); // Als String in Variable schreiben
}
imap_close($mailbox); // Verbindung zum POP3-Server beenden
tts_play(1,$nachricht_tell,"hinweis",3); // Per TTS vorlesen lassen
?>