mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-08 17:14:44 +01:00
attempt to copy/move mails between servers; failed so far: no connection to the targetserver is even attempted by horde library
This commit is contained in:
parent
efc237024c
commit
c0d749ceac
@ -2892,10 +2892,11 @@ class mail_bo
|
|||||||
* @param string $currentFolder
|
* @param string $currentFolder
|
||||||
* @param boolean $returnUIDs - control wether or not the action called should return the new uids
|
* @param boolean $returnUIDs - control wether or not the action called should return the new uids
|
||||||
* caveat: not all servers do support that
|
* caveat: not all servers do support that
|
||||||
|
* @param int $_targetProfileID - target profile ID, should only be handed over when target server is differen from source
|
||||||
*
|
*
|
||||||
* @return mixed/bool true,false or new uid
|
* @return mixed/bool true,false or new uid
|
||||||
*/
|
*/
|
||||||
function moveMessages($_foldername, $_messageUID, $deleteAfterMove=true, $currentFolder = Null, $returnUIDs = false)
|
function moveMessages($_foldername, $_messageUID, $deleteAfterMove=true, $currentFolder = Null, $returnUIDs = false, $_targetProfileID = Null)
|
||||||
{
|
{
|
||||||
$msglist = '';
|
$msglist = '';
|
||||||
|
|
||||||
@ -2917,6 +2918,12 @@ class mail_bo
|
|||||||
$uidsToMove = new Horde_Imap_Client_Ids();
|
$uidsToMove = new Horde_Imap_Client_Ids();
|
||||||
$uidsToMove->add($_messageUID);
|
$uidsToMove->add($_messageUID);
|
||||||
}
|
}
|
||||||
|
if (!is_null($_targetProfileID) && $_targetProfileID !== $this->icServer->ImapServerId)
|
||||||
|
{
|
||||||
|
$target = emailadmin_account::read($_targetProfileID)->imapServer();
|
||||||
|
$_foldername = $target->getMailbox($_foldername);
|
||||||
|
error_log(__METHOD__.__LINE__.' Sourceserver:'.$this->icServer->ImapServerId.' TargetServer:'.$_targetProfileID.' TargetFolderObject'.array2string($_foldername));
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -3701,7 +3701,7 @@ blockquote[type=cite] {
|
|||||||
$_folderName = $this->mail_bo->decodeEntityFolderName($_folderName);
|
$_folderName = $this->mail_bo->decodeEntityFolderName($_folderName);
|
||||||
// only copy or move are supported as method
|
// only copy or move are supported as method
|
||||||
if (!($_copyOrMove=='copy' || $_copyOrMove=='move')) $_copyOrMove='copy';
|
if (!($_copyOrMove=='copy' || $_copyOrMove=='move')) $_copyOrMove='copy';
|
||||||
list($profileID,$targetFolder) = explode(self::$delimiter,$_folderName,2);
|
list($targetProfileID,$targetFolder) = explode(self::$delimiter,$_folderName,2);
|
||||||
|
|
||||||
if ($_messageList=='all' || !empty($_messageList['msg']))
|
if ($_messageList=='all' || !empty($_messageList['msg']))
|
||||||
{
|
{
|
||||||
@ -3714,6 +3714,7 @@ blockquote[type=cite] {
|
|||||||
{
|
{
|
||||||
$uidA = self::splitRowID($_messageList['msg'][0]);
|
$uidA = self::splitRowID($_messageList['msg'][0]);
|
||||||
$folder = $uidA['folder']; // all messages in one set are supposed to be within the same folder
|
$folder = $uidA['folder']; // all messages in one set are supposed to be within the same folder
|
||||||
|
$sourceProfileID = $uidA['profileID'];
|
||||||
}
|
}
|
||||||
foreach($_messageList['msg'] as $rowID)
|
foreach($_messageList['msg'] as $rowID)
|
||||||
{
|
{
|
||||||
@ -3721,7 +3722,7 @@ blockquote[type=cite] {
|
|||||||
$messageList[] = $hA['msgUID'];
|
$messageList[] = $hA['msgUID'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->mail_bo->moveMessages($targetFolder,$messageList,($_copyOrMove=='copy'?false:true),$folder);
|
$this->mail_bo->moveMessages($targetFolder,$messageList,($_copyOrMove=='copy'?false:true),$folder,false,($targetProfileID!=$sourceProfileID?$targetProfileID:null));
|
||||||
$response = egw_json_response::get();
|
$response = egw_json_response::get();
|
||||||
$response->call('egw_refresh',($_copyOrMove=='copy'?lang('copied %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder):lang('moved %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder)),'mail');
|
$response->call('egw_refresh',($_copyOrMove=='copy'?lang('copied %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder):lang('moved %1 message(s) from %2 to %3',count($messageList),$folder,$targetFolder)),'mail');
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user