Bläddra i källkod

#691 Notifications not sent if some recicipients have an empty address

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@2653 a333f486-631f-4898-b8df-5754b55c2be0
romainq 12 år sedan
förälder
incheckning
b521a4c5a3
2 ändrade filer med 27 tillägg och 5 borttagningar
  1. 6 2
      core/action.class.inc.php
  2. 21 3
      core/email.class.inc.php

+ 6 - 2
core/action.class.inc.php

@@ -213,8 +213,12 @@ class ActionEmail extends ActionNotification
 		$aRecipients = array();
 		while ($oObj = $oSet->Fetch())
 		{
-			$aRecipients[] = $oObj->Get($sEmailAttCode);
-			$this->m_iRecipients++;
+			$sAddress = trim($oObj->Get($sEmailAttCode));
+			if (strlen($sAddress) > 0)
+			{
+				$aRecipients[] = $sAddress;
+				$this->m_iRecipients++;
+			}
 		}
 		return implode(', ', $aRecipients);
 	}

+ 21 - 3
core/email.class.inc.php

@@ -187,11 +187,29 @@ class EMail
 		return $this->m_oMessage->getSubject();
 	}
 
+	/**
+	 * Helper to transform and sanitize addresses
+	 * - get rid of empty addresses	 
+	 */	 	
+	protected function AddressStringToArray($sAddressCSVList)
+	{
+		$aAddresses = array();
+		foreach(explode(',', $sAddressCSVList) as $sAddress)
+		{
+			$sAddress = trim($sAddress);
+			if (strlen($sAddress) > 0)
+			{
+				$aAddresses[] = $sAddress;
+			}
+		}
+		return $aAddresses;
+	}	
+
 	public function SetRecipientTO($sAddress)
 	{
 		if (!empty($sAddress))
 		{
-			$aAddresses = explode(', ', $sAddress);
+			$aAddresses = $this->AddressStringToArray($sAddress);
 			$this->m_oMessage->setTo($aAddresses);
 		}
 	}
@@ -226,7 +244,7 @@ class EMail
 	{
 		if (!empty($sAddress))
 		{
-			$aAddresses = explode(', ', $sAddress);
+			$aAddresses = $this->AddressStringToArray($sAddress);
 			$this->m_oMessage->setCc($aAddresses);
 		}
 	}
@@ -235,7 +253,7 @@ class EMail
 	{
 		if (!empty($sAddress))
 		{
-			$aAddresses = explode(', ', $sAddress);
+			$aAddresses = $this->AddressStringToArray($sAddress);
 			$this->m_oMessage->setBcc($aAddresses);
 		}
 	}