upon save, reduce possible rfc-addresses to email-address only for forwards on rules and vacationnotices

This commit is contained in:
Klaus Leithoff 2015-07-07 13:26:58 +00:00
parent cc15b6812a
commit 3ada72ef2f

View File

@ -288,8 +288,23 @@ class mail_sieve
$newRule['action_arg'] = implode($content['action_folder_text']); $newRule['action_arg'] = implode($content['action_folder_text']);
break; break;
case 'address': case 'address':
$newRule['action_arg'] = implode(',',$content['action_address_text']);
//error_log(__METHOD__. '() newRules_address '. array2string($newRule['action_arg'])); //error_log(__METHOD__. '() newRules_address '. array2string($newRule['action_arg']));
//error_log(__METHOD__.__LINE__.array2string($content['action_address_text']));
$forwards = array();
foreach($content['action_address_text'] as $email) {
// avoid wrong addresses, if an rfc822 encoded address is in addressbook
//$email = preg_replace("/(^.*<)([a-zA-Z0-9_\-]+@[a-zA-Z0-9_\-\.]+)(.*)/",'$2',$email);
$rfcAddr = emailadmin_imapbase::parseAddressList($email);
$_rfcAddr=$rfcAddr->first();
//error_log(__METHOD__.__LINE__.$_rfcAddr->mailbox.'@'.$_rfcAddr->host);
if (!$_rfcAddr->valid)
{
break; // skip address if we encounter an error here
}
$forwards[] = $_rfcAddr->mailbox.'@'.$_rfcAddr->host;
}
//$newRule['action_arg'] = implode(',',$content['action_address_text']);
$newRule['action_arg'] = implode(',',$forwards);
break; break;
case 'reject': case 'reject':
$newRule['action_arg'] = $content['action_reject_text']; $newRule['action_arg'] = $content['action_reject_text'];
@ -595,8 +610,22 @@ class mail_sieve
{ {
if (is_array($content['forwards']) && !empty($content['forwards'])) if (is_array($content['forwards']) && !empty($content['forwards']))
{ {
//error_log(__METHOD__.__LINE__.array2string($content['forwards']));
$newVacation['forwards'] = implode(",",$content['forwards']); $forwards = array();
foreach($content['forwards'] as $email) {
// avoid wrong addresses, if an rfc822 encoded address is in addressbook
//$email = preg_replace("/(^.*<)([a-zA-Z0-9_\-]+@[a-zA-Z0-9_\-\.]+)(.*)/",'$2',$email);
$rfcAddr = emailadmin_imapbase::parseAddressList($email);
$_rfcAddr=$rfcAddr->first();
//error_log(__METHOD__.__LINE__.$_rfcAddr->mailbox.'@'.$_rfcAddr->host);
if (!$_rfcAddr->valid)
{
break; // skip address if we encounter an error here
}
$forwards[] = $_rfcAddr->mailbox.'@'.$_rfcAddr->host;
}
//$newVacation['forwards'] = implode(",",$content['forwards']);
$newVacation['forwards'] = implode(",",$forwards);
} }
else else
{ {