| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- <?php
 
- 	Action::register('sendmail_mail_preview',function(&$response){
 
- 		global $myUser;
 
- 		if(!$myUser->connected()) throw new Exception("Permission denied");
 
- 		require_once(__DIR__.SLASH.'page.sheet.mail.php');
 
- 		exit();
 
- 	});
 
- 	//Ajout ou modification d'élément mail
 
- 	Action::register('sendmail_mail_send',function(&$response){
 
- 			global $myUser,$conf,$_;
 
- 			if(!$myUser->connected()) throw new Exception("Permission denied");
 
- 			Plugin::callHook("sendmail_before_send",array(&$_));
 
- 			if(!isset($_['from']) || empty($_['from'])) throw new Exception("Veuillez préciser l'adresse de l'expediteur");
 
- 			if(!isset($_['recipient']) || empty($_['recipient'])) throw new Exception("Veuillez préciser au moins un destinataire");
 
- 			$_['recipient'] = array_merge_recursive($_['recipient'], array('to'=>array(),'cc'=>array(),'cci'=>array()));
 
- 			foreach($_['recipient'] as $type => $mails)
 
- 				foreach($mails as $i => $mail)
 
- 					if(empty($mail) || !filter_var($mail, FILTER_VALIDATE_EMAIL)) throw new Exception('Le mail "'.$mail.'" n\'est pas correctement formaté');
 
- 			//Envoi du mail
 
- 			$mail = new Mail();
 
- 			$mail->recipients = $_['recipient'];
 
- 			$mail->expeditor = $_['from'];
 
- 			$mail->reply = $_['from'];
 
- 			$mail->title = html_entity_decode($_['subject'],ENT_QUOTES,'UTF-8');
 
- 			$mail->message = html_entity_decode($_['message']);
 
- 			if(!empty($_['files'])){
 
- 				$files = json_decode($_['files'],true);
 
- 				if($files!=false && count($files)!=0){
 
- 					foreach ($files as $file) {
 
- 						$path = isset($file['temporary']) ? File::temp().SLASH.str_replace(array('/', '\\'), SLASH, $file['path']) : str_replace(array('/', '\\'), SLASH, $file['path']);
 
- 						if(strpos($path, File::dir()) === false)
 
- 						    $path = File::dir().SLASH.$path;
 
- 						//Vérification de l'existence fichier
 
- 						if(!file_exists($path)) continue;
 
- 						$mail->attachments[] = array(
 
- 							'name' => $file['name'],
 
- 							'type' => mime_content_type($path),
 
- 							'stream'=> file_get_contents($path)
 
- 						);
 
- 					}
 
- 				}
 
- 			}
 
- 			$mail->send();
 
- 			Plugin::callHook("sendmail_after_send",array($_, $mail));
 
- 			$response['message'] = 'E-mail envoyé';
 
- 			$response['data'] = $_;
 
- 	});
 
- 	//Sauvegarde des configurations de sendmail
 
- 	Action::register('sendmail_setting_save',function(&$response){
 
- 			global $myUser,$_,$conf;
 
- 			User::check_access('sendmail','configure');
 
- 			foreach(Configuration::setting('sendmail') as $key=>$value)
 
- 				if(is_array($value)) $allowed[] = $key;
 
- 			foreach ($_['fields'] as $key => $value) {
 
- 				if(!in_array($key, $allowed)) continue;
 
- 				if($key=='sendmail_default_signature') $value = html_entity_decode($value);
 
- 				$conf->put($key,$value);
 
- 			}
 
- 	});
 
- 	//Sauvegarde des préférences user de sendmail
 
- 	Action::register('sendmail_user_save_preference',function(&$response){
 
- 			global $myUser,$_,$conf;
 
- 			User::check_access('sendmail','edit');
 
- 			if(!isset($_['preferences']) || !isset($_['preferences']['sendmail_email_signature'])) throw new Exception("Vous devez saisir une signature e-mail");
 
- 			$myUser->preference('sendmail_email_signature',html_entity_decode($_['preferences']['sendmail_email_signature']));
 
- 	});
 
- ?>
 
 
  |