diff --git a/api/app/Mail.php b/api/app/Mail.php
index 482f4e2..e2df3f3 100644
--- a/api/app/Mail.php
+++ b/api/app/Mail.php
@@ -51,20 +51,33 @@
 class CerberusMail {
 	private function __construct() {}
 	
-	static function getMailerDefaults() {
-		$settings = DevblocksPlatform::getPluginSettingsService();
+	static function getMailerDefaults($team_id=0) {
+		@$group_smtp = DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_IS_ENABLED, 0);
+		if($team_id == 0 || $group_smtp == 0) {
+			$settings = DevblocksPlatform::getPluginSettingsService();
 
-		return array(
-			'host' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_HOST,CerberusSettingsDefaults::SMTP_HOST),
-			'port' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_PORT,CerberusSettingsDefaults::SMTP_PORT),
-			'auth_user' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_AUTH_USER,null),
-			'auth_pass' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_AUTH_PASS,null),
-			'enc' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_ENCRYPTION_TYPE,CerberusSettingsDefaults::SMTP_ENCRYPTION_TYPE),
-			'max_sends' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_MAX_SENDS,CerberusSettingsDefaults::SMTP_MAX_SENDS),
-			'timeout' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_TIMEOUT,CerberusSettingsDefaults::SMTP_TIMEOUT),
-		);
+			return array(
+				'host' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_HOST,CerberusSettingsDefaults::SMTP_HOST),
+				'port' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_PORT,CerberusSettingsDefaults::SMTP_PORT),
+				'auth_user' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_AUTH_USER,null),
+				'auth_pass' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_AUTH_PASS,null),
+				'enc' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_ENCRYPTION_TYPE,CerberusSettingsDefaults::SMTP_ENCRYPTION_TYPE),
+				'max_sends' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_MAX_SENDS,CerberusSettingsDefaults::SMTP_MAX_SENDS),
+				'timeout' => $settings->get('cerberusweb.core',CerberusSettings::SMTP_TIMEOUT,CerberusSettingsDefaults::SMTP_TIMEOUT),
+			);
+		} else {
+			return array(
+				'host' => DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_HOST,'localhost'),
+				'port' => DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_PORT,25),
+				'auth_user' => DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_AUTH_USER,''),
+				'auth_pass' => DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_AUTH_PASS,''),
+				'enc' => DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_ENC,'None'),
+				'max_sends' => DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_MAX_SENDS,20),
+				'timeout' => DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_TIMEOUT,30),
+			);
+		}
 	}
-	
+		
 	static function quickSend($to, $subject, $body, $from_addy=null, $from_personal=null) {
 		try {
 			$mail_service = DevblocksPlatform::getMailService();
@@ -177,8 +190,14 @@ class CerberusMail {
 			
 		} else { // regular mail sending
 			try {
+				@$group_smtp = DAO_GroupSettings::get($team_id, DAO_GroupSettings::SETTING_SMTP_IS_ENABLED, 0);
+				// objects
 				$mail_service = DevblocksPlatform::getMailService();
-				$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+				if ($group_smtp) {
+					$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+				} else {
+					$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults($team_id));
+				}
 				$email = $mail_service->createMessage();
 		
 				$email->setTo($toList);
@@ -428,13 +447,8 @@ class CerberusMail {
 		'dont_send',
 		'dont_save_copy'
 		*/
-
+		
 		try {
-			// objects
-		    $mail_service = DevblocksPlatform::getMailService();
-		    $mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
-			$mail = $mail_service->createMessage();
-	        
 		    // properties
 		    @$reply_message_id = $properties['message_id'];
 		    @$content = $properties['content'];
@@ -449,6 +463,16 @@ class CerberusMail {
 			$ticket_id = $message->ticket_id;
 			$ticket = DAO_Ticket::get($ticket_id);
 	
+			@$group_smtp = DAO_GroupSettings::get($ticket->team_id, DAO_GroupSettings::SETTING_SMTP_IS_ENABLED, 0);
+			// objects
+		    $mail_service = DevblocksPlatform::getMailService();
+			if ($group_smtp) {
+				$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+			} else {
+				$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults($ticket->team_id));
+			}
+			$mail = $mail_service->createMessage();
+	        
 			// [TODO] Check that message|ticket isn't NULL
 			
 			// If this ticket isn't spam trained and our outgoing message isn't an autoreply
@@ -823,6 +847,7 @@ class CerberusMail {
 	
 	static function reflect(CerberusParserMessage $message, $to) {
 		try {
+			// objects
 			$mail_service = DevblocksPlatform::getMailService();
 			$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
 			$mail = $mail_service->createMessage();
diff --git a/features/cerberusweb.core/api/dao/group.php b/features/cerberusweb.core/api/dao/group.php
index 2beed96..620d21f 100644
--- a/features/cerberusweb.core/api/dao/group.php
+++ b/features/cerberusweb.core/api/dao/group.php
@@ -358,6 +358,15 @@ class DAO_GroupSettings {
     const SETTING_CLOSE_REPLY = 'close_reply';
     const SETTING_CLOSE_REPLY_ENABLED = 'close_reply_enabled';
     const SETTING_INBOX_IS_ASSIGNABLE = 'inbox_is_assignable';
+	const SETTING_SMTP_IS_ENABLED = 'smtp_is_enabled';
+	const SETTING_SMTP_HOST = 'smtp_host';
+	const SETTING_SMTP_PORT = 'smtp_port';
+	const SETTING_SMTP_ENC = 'smtp_enc';
+	const SETTING_SMTP_AUTH_ENABLED = 'smtp_auth_enabled';
+	const SETTING_SMTP_AUTH_USER = 'smtp_auth_user';
+	const SETTING_SMTP_AUTH_PASS = 'smtp_auth_pass';
+	const SETTING_SMTP_TIMEOUT = 'smtp_timeout';
+	const SETTING_SMTP_MAX_SENDS = 'smtp_max_sends';
     
 	static function set($group_id, $key, $value) {
 		$db = DevblocksPlatform::getDatabaseService();
diff --git a/features/cerberusweb.core/api/uri/groups.php b/features/cerberusweb.core/api/uri/groups.php
index 95e0b96..51b2029 100644
--- a/features/cerberusweb.core/api/uri/groups.php
+++ b/features/cerberusweb.core/api/uri/groups.php
@@ -544,6 +544,23 @@ class ChGroupsPage extends CerberusPageExtension  {
 	    @$spam_action = DevblocksPlatform::importGPC($_REQUEST['spam_action'],'integer',0);
 	    @$spam_moveto = DevblocksPlatform::importGPC($_REQUEST['spam_action_moveto'],'integer',0);
 
+	    @$smtp_is_enabled = DevblocksPlatform::importGPC($_REQUEST['smtp_is_enabled'],'integer',0);
+	    @$smtp_host = DevblocksPlatform::importGPC($_REQUEST['smtp_host'],'string','localhost');
+	    @$smtp_port = DevblocksPlatform::importGPC($_REQUEST['smtp_port'],'integer',25);
+	    @$smtp_enc = DevblocksPlatform::importGPC($_REQUEST['smtp_enc'],'string','None');
+	    @$smtp_timeout = DevblocksPlatform::importGPC($_REQUEST['smtp_timeout'],'integer',30);
+	    @$smtp_max_sends = DevblocksPlatform::importGPC($_REQUEST['smtp_max_sends'],'integer',20);
+
+	    @$smtp_auth_enabled = DevblocksPlatform::importGPC($_REQUEST['smtp_auth_enabled'],'integer', 0);
+	    if($smtp_auth_enabled) {
+		    @$smtp_auth_user = DevblocksPlatform::importGPC($_REQUEST['smtp_auth_user'],'string');
+		    @$smtp_auth_pass = DevblocksPlatform::importGPC($_REQUEST['smtp_auth_pass'],'string');
+
+	    } else { // need to clear auth info when smtp auth is disabled
+		    @$smtp_auth_user = '';
+		    @$smtp_auth_pass = '';
+	    }
+
 	    // [TODO] Move this into DAO_GroupSettings
 	    DAO_Group::updateTeam($team_id, array(
 	        DAO_Group::TEAM_SIGNATURE => $signature
@@ -561,6 +578,16 @@ class ChGroupsPage extends CerberusPageExtension  {
 	    DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_AUTO_REPLY, $auto_reply);
 	    DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_CLOSE_REPLY_ENABLED, $close_reply_enabled);
 	    DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_CLOSE_REPLY, $close_reply);
+
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_IS_ENABLED, $smtp_is_enabled);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_HOST, $smtp_host);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_PORT, $smtp_port);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_ENC, $smtp_enc);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_AUTH_ENABLED, $smtp_auth_enabled);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_AUTH_USER, $smtp_auth_user);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_AUTH_PASS, $smtp_auth_pass);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_TIMEOUT, $smtp_timeout);
+		DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_SMTP_MAX_SENDS, $smtp_max_sends);
 	       
         DevblocksPlatform::redirect(new DevblocksHttpResponse(array('groups',$team_id)));
 	}
diff --git a/features/cerberusweb.core/templates/groups/manage/index.tpl b/features/cerberusweb.core/templates/groups/manage/index.tpl
index 5847723..be6739f 100644
--- a/features/cerberusweb.core/templates/groups/manage/index.tpl
+++ b/features/cerberusweb.core/templates/groups/manage/index.tpl
@@ -50,7 +50,7 @@
 		Re: [ <input type="text" name="subject_prefix" value="{$group_settings.subject_prefix|escape}" size="24"> #MASK-12345-678]: This is the subject line<br>
 	</blockquote>
 	<br>
-	
+			
 	<b>Group E-mail Signature:</b> (optional, defaults to helpdesk signature)<br>
 	<div style="display:none">
 		{assign var=default_signature value=$settings->get('cerberusweb.core','default_signature')}
@@ -72,7 +72,64 @@
 		<div id="divSnippetGroupSigTester"></div>
 	</div>
 	<br>
+    </div>
 	
+	<h3>Group Outgong SMTP Server:</b> (optional)</h3>
+    <label><input type="checkbox" name="smtp_is_enabled" value="1" onclick="toggleDiv('configGroupSmtpSetting',(this.checked?'block':'none'));" {if $group_settings.smtp_is_enabled}checked{/if}> <b>Enable Group Specific Outgoing Settings?</b></label><br>
+    <br>
+
+    <div id="configGroupSmtpSetting" style="margin-left:15px;display:{if $group_settings.smtp_is_enabled}block{else}none{/if};">
+		<br>
+        <b>SMTP Hosts:</b><br>
+		<input type="text" name="smtp_host" value="{if $group_settings.smtp_host}{$group_settings.smtp_host}{else}localhost{/if}" size="45">
+        <i>(e.g. localhost)</i>
+        <br>
+        <br>
+
+        <b>SMTP Port:</b><br>
+        <input type="text" name="smtp_port" value="{if $group_settings.smtp_port}{$group_settings.smtp_port}{else}25{/if}" size="5">
+        <i>(usually '25')</i>
+        <br>
+        <br>
+
+        <b>SMTP Encryption:</b> (optional)<br>
+        <label><input type="radio" name="smtp_enc" value="None" {if $group_settings.smtp_enc == 'None'}checked{/if}>None</label>&nbsp;&nbsp;&nbsp;
+        <label><input type="radio" name="smtp_enc" value="TLS" {if $group_settings.smtp_enc == 'TLS'}checked{/if}>TLS</label>&nbsp;&nbsp;&nbsp;
+        <label><input type="radio" name="smtp_enc" value="SSL" {if $group_settings.smtp_enc == 'SSL'}checked{/if}>SSL</label><br>
+        <br>
+
+        <b>SMTP Authentication:</b> (optional)<br>
+        <label><input type="checkbox" name="smtp_auth_enabled" value="1" onclick="toggleDiv('configGeneralSmtpAuth',(this.checked?'block':'none'));if(!this.checked){literal}{{/literal}this.form.smtp_auth_user.value='';this.form.smtp_auth_pass.value='';{literal}}{/literal}" {if $group_settings.smtp_auth_enabled}checked{/if}> Enabled</label><br>
+        <br>
+
+        <div id="configGeneralSmtpAuth" style="margin-left:15px;display:{if $group_settings.smtp_auth_enabled}block{else}none{/if};">
+            <b>Username:</b><br>
+            <input type="text" name="smtp_auth_user" value="{$group_settings.smtp_auth_user}" size="45"><br>
+            <br>
+
+            <b>Password:</b><br>
+            <input type="text" name="smtp_auth_pass" value="{$group_settings.smtp_auth_pass}" size="45"><br>
+            <br>
+        </div>
+
+        <b>SMTP Timeout:</b><br>
+        <input type="text" name="smtp_timeout" value="{if $group_settings.smtp_timeout}{$group_settings.smtp_timeout}{else}30{/if}" size="4">
+        seconds
+        <br>
+        <br>
+
+        <b>Maximum Deliveries Per SMTP Connection:</b><br>
+        <input type="text" name="smtp_max_sends" value="{if $group_settings.smtp_max_sends}{$group_settings.smtp_max_sends}{else}20{/if}" size="5">
+        <i>(tuning this depends on your mail server; default is 20)</i>
+        <br>
+        <br>
+
+        <div id="configSmtpTest"></div>
+        <button type="button" onclick="genericAjaxGet('configSmtpTest','c=config&a=getSmtpTest&host='+this.form.smtp_host.value+'&port='+encodeURIComponent(this.form.smtp_port.value)+'&enc='+encodeURIComponent($('input[name=\'smtp_enc\']:checked').val())+'&smtp_user='+encodeURIComponent(this.form.smtp_auth_user.value)+'&smtp_pass='+encodeURIComponent(this.form.smtp_auth_pass.value));"><span class="cerb-sprite sprite-gear"></span> Test SMTP</button>
+        <br>
+        <br>
+    </div>
+
 	<h3>New Ticket Auto-Response</h3>
 	
 	<label><input type="checkbox" name="auto_reply_enabled" value="1" onclick="toggleDiv('divGroupCfgAutoReply',(this.checked)?'block':'none');" {if $group_settings.auto_reply_enabled}checked{/if}> <b>Send an auto-response when this group receives a new message?</b></label><br>
diff --git a/features/cerberusweb.watchers/api/App.php b/features/cerberusweb.watchers/api/App.php
index cd13fd9..cae37a9 100644
--- a/features/cerberusweb.watchers/api/App.php
+++ b/features/cerberusweb.watchers/api/App.php
@@ -208,14 +208,22 @@ class ChWatchersEventListener extends DevblocksEventListenerExtension {
 			@$group_personal = DAO_GroupSettings::get($ticket->team_id, DAO_GroupSettings::SETTING_REPLY_PERSONAL);
 			if(!empty($group_personal))
 				$reply_personal = $group_personal;
+				
+			@$group_smtp = DAO_GroupSettings::get($ticket->team_id, DAO_GroupSettings::SETTING_SMTP_IS_ENABLED, 0);
+		} else {
+			$group_smtp  = 0;
 		}
 		
 		if(is_array($notify_emails))
 		foreach($notify_emails as $send_to) {
 	    	try {
-	    		if(null == $mailer)
-					$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
-				
+	    		if(null == $mailer) {
+					if ($group_smtp) {
+						$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+					} else {
+						$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults($ticket->team_id));
+					}
+				}
 		 		// Create the message
 					
 				$mail = $mail_service->createMessage();
@@ -334,16 +342,24 @@ class ChWatchersEventListener extends DevblocksEventListenerExtension {
 				@$group_personal = DAO_GroupSettings::get($ticket->team_id, DAO_GroupSettings::SETTING_REPLY_PERSONAL);
 				if(!empty($group_personal))
 					$reply_personal = $group_personal;
+					
+				@$group_smtp = DAO_GroupSettings::get($ticket->team_id, DAO_GroupSettings::SETTING_SMTP_IS_ENABLED, 0);
+			} else {
+				$group_smtp  = 0;
 			}
 			
 			if(is_array($notify_emails))
 			foreach($notify_emails as $send_to) {
 		    	try {
-		    		if(null == $mailer)
-						$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+		    		if(null == $mailer) {
+						if ($group_smtp) {
+							$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+						} else {
+							$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults($ticket->team_id));
+						}
+					}
 					
 			 		// Create the message
-
 					$mail = $mail_service->createMessage();
 					$mail->setTo(array($send_to));
 					$mail->setFrom(array($reply_to => $reply_personal));
@@ -437,6 +453,10 @@ class ChWatchersEventListener extends DevblocksEventListenerExtension {
 				@$group_from = DAO_GroupSettings::get($ticket->team_id, DAO_GroupSettings::SETTING_REPLY_FROM, '');
 				if(!empty($group_from))
 					$reply_to = $group_from;
+					
+				@$group_smtp = DAO_GroupSettings::get($ticket->team_id, DAO_GroupSettings::SETTING_SMTP_IS_ENABLED, 0);
+			} else {
+				$group_smtp  = 0;
 			}
 			
 			$sender = DAO_Address::get($message->address_id);
@@ -480,7 +500,11 @@ class ChWatchersEventListener extends DevblocksEventListenerExtension {
 	    	// Send copies
 			if(is_array($notify_emails) && !empty($notify_emails)) {
 				$mail_service = DevblocksPlatform::getMailService();
-				$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+				if ($group_smtp) {
+					$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults());
+				} else {
+					$mailer = $mail_service->getMailer(CerberusMail::getMailerDefaults($ticket->team_id));
+				}
 				
 				foreach($notify_emails as $to) {
 					// Proxy the message

