diff --git a/felamimail/inc/class.bocompose.inc.php b/felamimail/inc/class.bocompose.inc.php
index b528a4f0c0..0dedd3bb07 100644
--- a/felamimail/inc/class.bocompose.inc.php
+++ b/felamimail/inc/class.bocompose.inc.php
@@ -1056,8 +1056,8 @@
//$bofelamimail->reopen($this->sessionData['messageFolder']);
#error_log("(re)opened Connection");
}
- if (count($folder) > 0) {
-
+ // if copying mail to folder, or saving mail to infolog, we need to gather the needed information
+ if (count($folder) > 0 || $_formData['to_infolog'] == 'on') {
foreach((array)$this->sessionData['bcc'] as $address) {
$address_array = imap_rfc822_parse_adrlist((get_magic_quotes_gpc()?stripslashes($address):$address),'');
foreach((array)$address_array as $addressObject) {
@@ -1067,6 +1067,12 @@
}
$BCCmail='';
if (count($mailAddr)>0) $BCCmail = $mail->AddrAppend("Bcc",$mailAddr);
+ $sentMailHeader = $BCCmail.$mail->getMessageHeader();
+ $sentMailBody = $mail->getMessageBody();
+ }
+ // copying mail to folder
+ if (count($folder) > 0)
+ {
foreach($folder as $folderName) {
if($bofelamimail->isSentFolder($folderName)) {
$flags = '\\Seen';
@@ -1081,8 +1087,8 @@
try
{
$bofelamimail->appendMessage($folderName,
- $BCCmail.$mail->getMessageHeader(),
- $mail->getMessageBody(),
+ $sentMailHeader,
+ $sentMailBody,
$flags);
}
catch (egw_exception_wrong_userinput $e)
@@ -1140,7 +1146,10 @@
$mailaddresses,
$this->sessionData['subject'],
$this->convertHTMLToText($this->sessionData['body']),
- $this->sessionData['attachments']
+ $this->sessionData['attachments'],
+ false, // date
+ $sentMailHeader, // raw SentMailHeader
+ $sentMailBody // raw SentMailBody
);
}
if ($_formData['to_tracker'] == 'on') {
@@ -1152,6 +1161,17 @@
$this->sessionData['attachments']
);
}
+/*
+ if ($_formData['to_calendar'] == 'on') {
+ $uical =& CreateObject('calendar.calendar_uiforms');
+ $uical->import_mail(
+ $mailaddresses,
+ $this->sessionData['subject'],
+ $this->convertHTMLToText($this->sessionData['body']),
+ $this->sessionData['attachments']
+ );
+ }
+*/
if(is_array($this->sessionData['attachments'])) {
diff --git a/felamimail/inc/class.felamimail_hooks.inc.php b/felamimail/inc/class.felamimail_hooks.inc.php
index d8193a25c5..c06d522b24 100644
--- a/felamimail/inc/class.felamimail_hooks.inc.php
+++ b/felamimail/inc/class.felamimail_hooks.inc.php
@@ -197,6 +197,11 @@ class felamimail_hooks
'text' => lang('text/plain'),
);
+ $saveAsOptions = array(
+ 'text' => lang('convert Mail to item and attach its attachments to this item (standard)'),
+ 'add_raw' => lang('convert Mail to item, attach its attachments and add raw message (message/rfc822 (.eml)) as attachment'),
+ );
+
$htmlOptions = array(
'never_display' => lang('never display html emails'),
'only_if_no_text' => lang('display only when no plain text is available'),
@@ -429,6 +434,15 @@ class felamimail_hooks
'admin' => False,
'default'=> 'move_to_sent',
),
+ 'saveAsOptions' => array(
+ 'type' => 'select',
+ 'label' => 'when saving messages as item of a different app (if app supports the desired option)',
+ 'name' => 'saveAsOptions',
+ 'values' => $saveAsOptions,
+ 'xmlrpc' => True,
+ 'admin' => False,
+ 'default'=> 'text',
+ ),
'composeOptions' => array(
'type' => 'select',
'label' => 'start new messages with mime type plain/text or html?',
diff --git a/felamimail/lang/egw_de.lang b/felamimail/lang/egw_de.lang
index 958b892584..054d037f4d 100644
--- a/felamimail/lang/egw_de.lang
+++ b/felamimail/lang/egw_de.lang
@@ -69,6 +69,8 @@ configure a valid imap server in emailadmin for the profile you are using. felam
connection dropped by imap server. felamimail de Verbindung von IMAP Server beendet.
contact not found! felamimail de Kontakt nicht gefunden!
contains felamimail de enthält
+convert mail to item and attach its attachments to this item (standard) felamimail de konvertiere Mail zu Eintrag und füge die Mailanhänge hinzu (Standard)
+convert mail to item, attach its attachments and add raw message (message/rfc822 (.eml)) as attachment felamimail de konvertiere Mail zu Eintrag und füge die Mailanhänge sowie die Orginal Nachricht als message/rfc (.eml) Datei hinzu.
copy or move messages? felamimail de Nachrichten kopieren oder Verschieben?
copy to felamimail de Kopieren in
copying messages to felamimail de kopiere Nachrichten in folgenden Ordner
@@ -288,6 +290,7 @@ light gray felamimail de Hellgrau
list all felamimail de Alle anzeigen
loading felamimail de lade
location of buttons when composing felamimail de Ort der Knöpfe beim E-Mail schreiben
+mail grid behavior: how many messages should the mailgrid load? if you select all messages there will be no pagination for mail message list. (beware, as some actions on all selected messages may be problematic depending on the amount of selected messages.) felamimail de Mail Grid Verhalten: wieviele Nachrichten soll der Mail Grid laden? Wenn Sie zeige alle Nachrichten wählen wird die Möglichkeit in der Anzeige der Mailliste zu blättern unterbunden.
mail server login type admin de Typ der Mailserver Anmeldung
mail settings felamimail de E-Mail-Einstellungen
mainmessage felamimail de Hauptnachricht
@@ -315,6 +318,7 @@ move felamimail de Verschieben
move folder felamimail de Ordner verschieben
move messages felamimail de Nachrichten verschieben
move messages? felamimail de Nachrichten verschieben?
+move selected to felamimail de Verschiebe ausgewählte nach
move to felamimail de Verschieben in
move to trash felamimail de in den Papierkorb verschieben
moving messages to felamimail de verschiebe Nachrichten nach
@@ -357,6 +361,7 @@ on behalf of felamimail de im Auftrag von
one address is not valid felamimail de Eine Adresse ist ungültig
only inbox felamimail de Nur Posteingang
only one window felamimail de nur ein einziges Fenster
+only send message, do not copy a version of the message to the configured sent folder felamimail de Versende Nachricht, kopiere sie nicht in den konfigurierten Gesendet Ordner
only unseen felamimail de Nur nicht gesehene
open all felamimail de Öffne alle
options felamimail de Optionen
@@ -380,6 +385,7 @@ posting felamimail de sende
preview disabled for folder: felamimail de Die Vorschau für eMails wird in dem ausgewählten Ordner nicht unterstützt:
previous felamimail de vorherige
previous message felamimail de vorherige Nachricht
+primary emailadmin profile felamimail de Primäres eMailAdmin Profil
print it felamimail de E-Mail drucken
print this page felamimail de Diese Seite drucken
printview felamimail de Druckansicht
@@ -392,8 +398,8 @@ recent felamimail de neu
refresh time in minutes felamimail de Aktualisierungsintervall in Minuten
reject with felamimail de zurückweisen mit
remove felamimail de entfernen
-remove label felamimail de Schlagwort entfernen
remove immediately felamimail de sofort löschen
+remove label felamimail de Schlagwort entfernen
rename felamimail de Umbenennen
rename a folder felamimail de Ordner umbenennen
rename folder felamimail de Ordner umbenennen
@@ -416,10 +422,13 @@ save all felamimail de Alle speichern
save as draft felamimail de als Entwurf speichern
save as infolog felamimail de Als Infolog speichern
save as ticket felamimail de Als Ticket speichern
+save as tracker felamimail de Als Ticket speichern
save changes felamimail de Änderungen speichern
save message to disk felamimail de Nachricht speichern
save of message %1 failed. could not save message to folder %2 due to: %3 felamimail de Das speichern der Nachricht %1 schlug fehl. Sie konnte nicht im Ordner %2 abgelegt werden. Grund: %3
save: felamimail de Speichern:
+saving of message %1 failed. destination folder %2 does not exist. felamimail de Speichern der Nachricht %1 schlug fehl. Ziel Ordner %2 existiert nicht.
+saving of message %1 succeeded. check folder %2. felamimail de Speichern der Nachricht %1 war erfolgreich. Prüfen Sie den Ziel Ordner %2
script name felamimail de Skriptname
script status felamimail de Skriptstatus
search felamimail de Suchen
@@ -432,6 +441,7 @@ select folder felamimail de Ordner auswählen
select your mail server type admin de Wählen Sie den Typ des Mailservers
send felamimail de Senden
send a reject message felamimail de Ablehnungs-E-Mail senden
+send message and move to send folder (if configured) felamimail de Versende Nachricht, und kopiere diese in den konfigurierten Gesendet Ordner
sender felamimail de Absender
sent felamimail de Gesendet
sent folder felamimail de Ordner für gesendete Nachrichten
@@ -439,6 +449,7 @@ server supports mailfilter(sieve) felamimail de Server unterstützt Mailfilter(S
set as default felamimail de Als Vorgabe setzen
set label felamimail de Schlagwort setzen
show all folders (subscribed and unsubscribed) in main screen folder pane felamimail de zeige alle Ordner (subscribed UND unsubscribed) in der Ordnerleiste des Hauptfensters
+show all messages felamimail de Zeige alle Nachrichten
show header felamimail de Kopfzeilen anzeigen
show new messages on main screen felamimail de Neue Nachrichten auf der Startseite anzeigen?
sieve script name felamimail de Sieve Skript Name
@@ -489,6 +500,7 @@ translation server felamimail de Übersetzungsserver
trash felamimail de Papierkorb
trash fold felamimail de Abfall Ordner
trash folder felamimail de Ordner für gelöschte Nachrichten
+trust servers seen / unseen info when retrieving the folder status. (if you select no, we will search for the unseen messages and count them ourselves) felamimail de Vertraue der SEEN/UNSEEN Information beim Abruf des Ordnerstatus
trying to recover from session data felamimail de Versuch der Wiederherstellung aus den gespeicherten Session-Daten.
type felamimail de Typ
undelete felamimail de wiederherstellen
@@ -515,6 +527,7 @@ use emailadmin to create profiles felamimail de benutzen Sie closeConnection();
}
+ // this one adds the mail itself (as message/rfc822 (.eml) file) to the infolog as additional attachment
+ // this is done to have a simple archive functionality (ToDo: opening .eml in email module)
+ if ($_rawMailHeader && $_rawMailBody && $GLOBALS['egw_info']['user']['preferences']['felamimail']['saveAsOptions']==='add_raw')
+ {
+ $message = ltrim(str_replace("\n","\r\n",$_rawMailHeader)).str_replace("\n","\r\n",$_rawMailBody);
+ $subject = str_replace('$$','__',($_subject?$_subject:lang('(no subject)')));
+ $attachment_file =tempnam($GLOBALS['egw_info']['server']['temp_dir'],$GLOBALS['egw_info']['flags']['currentapp']."_");
+ $tmpfile = fopen($attachment_file,'w');
+ fwrite($tmpfile,$message);
+ fclose($tmpfile);
+ $size = filesize($attachment_file);
+ $attachments[] = array(
+ 'name' => trim($subject).'.eml',
+ 'mimeType' => 'message/rfc822',
+ 'tmp_name' => $attachment_file,
+ 'size' => $size,
+ );
+ }
+
//_debug_array($_to_emailAddress);
$toaddr = array();
foreach(array('to','cc','bcc') as $x) if (is_array($_to_emailAddress[$x]) && !empty($_to_emailAddress[$x])) $toaddr = array_merge($toaddr,$_to_emailAddress[$x]);
@@ -2150,6 +2171,25 @@ class infolog_ui
$mailcontent = felamimail_bo::get_mailcontent($bofelamimail,$uid,$partid,$mailbox);
+ // this one adds the mail itself (as message/rfc822 (.eml) file) to the infolog as additional attachment
+ // this is done to have a simple archive functionality (ToDo: opening .eml in email module)
+ if ($GLOBALS['egw_info']['user']['preferences']['felamimail']['saveAsOptions']==='add_raw')
+ {
+ $message = $bofelamimail->getMessageRawBody($uid, $partid);
+ $headers = $bofelamimail->getMessageHeader($uid, $partid);
+ $subject = str_replace('$$','__',($headers['SUBJECT']?$headers['SUBJECT']:lang('(no subject)')));
+ $attachment_file =tempnam($GLOBALS['egw_info']['server']['temp_dir'],$GLOBALS['egw_info']['flags']['currentapp']."_");
+ $tmpfile = fopen($attachment_file,'w');
+ fwrite($tmpfile,$message);
+ fclose($tmpfile);
+ $size = filesize($attachment_file);
+ $mailcontent['attachments'][] = array(
+ 'name' => trim($subject).'.eml',
+ 'mimeType' => 'message/rfc822',
+ 'tmp_name' => $attachment_file,
+ 'size' => $size,
+ );
+ }
return $this->edit($this->bo->import_mail(
$mailcontent['mailaddress'],
$mailcontent['subject'],