mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-27 10:23:28 +01:00
try to be smart about missing send folders, when copying send mail to the sentfolder is expected: Do not send, but give an error instead, if there is no send folder to be found, an no other means of storing the mail sent with the mailserver/EGroupware is chosen
This commit is contained in:
parent
c066acfa5c
commit
41d2d43509
@ -1013,6 +1013,42 @@
|
|||||||
$mail->Password = $ogServer->password;
|
$mail->Password = $ogServer->password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if there are folders to be used
|
||||||
|
$folder = (array)$this->sessionData['folder'];
|
||||||
|
if(isset($this->preferences->preferences['sentFolder']) &&
|
||||||
|
$this->preferences->preferences['sentFolder'] != 'none' &&
|
||||||
|
$this->preferences->preferences['sendOptions'] != 'send_only' &&
|
||||||
|
$messageIsDraft == false)
|
||||||
|
{
|
||||||
|
if ($this->bofelamimail->folderExists($this->preferences->preferences['sentFolder'], true))
|
||||||
|
{
|
||||||
|
$folder[] = $this->preferences->preferences['sentFolder'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errorInfo = lang("No (valid) Send Folder set in preferences");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((!isset($this->preferences->preferences['sentFolder']) && $this->preferences->preferences['sendOptions'] != 'send_only') ||
|
||||||
|
($this->preferences->preferences['sendOptions'] != 'send_only' &&
|
||||||
|
$this->preferences->preferences['sentFolder'] != 'none')) $this->errorInfo = lang("No Send Folder set in preferences");
|
||||||
|
}
|
||||||
|
if($messageIsDraft == true) {
|
||||||
|
if(!empty($this->preferences->preferences['draftFolder']) && $this->bofelamimail->folderExists($this->preferences->preferences['draftFolder'])) {
|
||||||
|
$folder[] = $this->sessionData['folder'] = array($this->preferences->preferences['draftFolder']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$folder = array_unique($folder);
|
||||||
|
if (($this->preferences->preferences['sendOptions'] != 'send_only' && $this->preferences->preferences['sentFolder'] != 'none') && !(count($folder) > 0) &&
|
||||||
|
!($_formData['to_infolog']=='on' || $_formData['to_tracker']=='on'))
|
||||||
|
{
|
||||||
|
$this->errorInfo = lang("Error: ").lang("No Folder destination supplied, and no folder to save message or other measure to store the mail (save to infolog/tracker) provided, but required.").($this->errorInfo?' '.$this->errorInfo:'');
|
||||||
|
#error_log($this->errorInfo);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// set a higher timeout for big messages
|
// set a higher timeout for big messages
|
||||||
@set_time_limit(120);
|
@set_time_limit(120);
|
||||||
//$mail->SMTPDebug = 10;
|
//$mail->SMTPDebug = 10;
|
||||||
@ -1047,19 +1083,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#error_log("Mail Sent.!");
|
#error_log("Mail Sent.!");
|
||||||
$folder = (array)$this->sessionData['folder'];
|
|
||||||
if(isset($this->preferences->preferences['sentFolder']) &&
|
|
||||||
$this->preferences->preferences['sentFolder'] != 'none' &&
|
|
||||||
$this->preferences->preferences['sendOptions'] != 'send_only' &&
|
|
||||||
$messageIsDraft == false) {
|
|
||||||
$folder[] = $this->preferences->preferences['sentFolder'];
|
|
||||||
}
|
|
||||||
if($messageIsDraft == true) {
|
|
||||||
if(!empty($this->preferences->preferences['draftFolder'])) {
|
|
||||||
$folder[] = $this->sessionData['folder'] = array($this->preferences->preferences['draftFolder']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$folder = array_unique($folder);
|
|
||||||
#error_log("Number of Folders to move copy the message to:".count($folder));
|
#error_log("Number of Folders to move copy the message to:".count($folder));
|
||||||
if ((count($folder) > 0) || (isset($this->sessionData['uid']) && isset($this->sessionData['messageFolder']))
|
if ((count($folder) > 0) || (isset($this->sessionData['uid']) && isset($this->sessionData['messageFolder']))
|
||||||
|| (isset($this->sessionData['forwardFlag']) && isset($this->sessionData['sourceFolder']))) {
|
|| (isset($this->sessionData['forwardFlag']) && isset($this->sessionData['sourceFolder']))) {
|
||||||
|
Loading…
Reference in New Issue
Block a user