Skip to content

Commit 2cd9a11

Browse files
committed
Merge pull request midasplatform#68 from cpatrick/smtp-config
Adding SMTP configuration options.
2 parents b416be3 + 6d6a530 commit 2cd9a11

File tree

4 files changed

+70
-6
lines changed

4 files changed

+70
-6
lines changed

core/controllers/AdminController.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ function indexAction()
9999
$formArray['name']->setValue($config->global->application->name);
100100
$formArray['smartoptimizer']->setValue($config->global->smartoptimizer);
101101
$formArray['timezone']->setValue($config->global->default->timezone);
102+
$formArray['smtpserver']->setValue($config->global->smtpserver);
103+
$formArray['smtpuser']->setValue($config->global->smtpuser);
104+
$formArray['smtppassword']->setValue($config->global->smtppassword);
105+
$formArray['smtpfromaddress']->setValue($config->global->smtpfromaddress);
102106
if(isset($config->global->closeregistration))
103107
{
104108
$formArray['closeregistration']->setValue($config->global->closeregistration);
@@ -158,6 +162,10 @@ function indexAction()
158162
$config->global->closeregistration = $this->getParam('closeregistration');
159163
$config->global->logtrace = $this->getParam('logtrace');
160164
$config->global->httpproxy = $this->getParam('httpProxy');
165+
$config->global->smtpserver = $this->getParam('smtpserver');
166+
$config->global->smtpuser = $this->getParam('smtpuser');
167+
$config->global->smtppassword = $this->getParam('smtppassword');
168+
$config->global->smtpfromaddress = $this->getParam('smtpfromaddress');
161169
$config->global->gravatar = $this->getParam('gravatar');
162170
$config->global->verifyemail = $this->getParam('verifyemail');
163171

core/controllers/components/UtilityComponent.php

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -618,11 +618,34 @@ public static function rrmdir($dir)
618618
rmdir($dir);
619619
}
620620

621+
private static function getEmailTransport()
622+
{
623+
if(Zend_Registry::get('configGlobal')->smtpserver &&
624+
Zend_Registry::get('configGlobal')->smtpuser &&
625+
Zend_Registry::get('configGlobal')->smtppassword)
626+
{
627+
$config = array('auth' => 'login',
628+
'username' => Zend_Registry::get('configGlobal')->smtpuser,
629+
'password' => Zend_Registry::get('configGlobal')->smtppassword);
630+
$transport = new Zend_Mail_Transport_Smtp(Zend_Registry::get('configGlobal')->smtpserver, $config);
631+
return $transport;
632+
}
633+
else
634+
{
635+
return null;
636+
}
637+
}
638+
621639
/** Send mail. */
622640
public static function sendEmail($to, $subject, $body)
623641
{
624642
$validator = new Zend_Validate_EmailAddress();
625-
if(getenv('midas_email_sender') && $validator->isValid(getenv('midas_email_sender')))
643+
if(Zend_Registry::get('configGlobal')->smtpfromaddress &&
644+
$validator->isValid(Zend_Registry::get('configGlobal')->smtpfromaddress))
645+
{
646+
$sender = Zend_Registry::get('configGlobal')->smtpfromaddress;
647+
}
648+
else if(getenv('midas_email_sender') && $validator->isValid(getenv('midas_email_sender')))
626649
{
627650
$sender = getenv('midas_email_sender');
628651
}
@@ -653,6 +676,10 @@ public static function sendEmail($to, $subject, $body)
653676
$message->addTo($to);
654677
$message->setSubject($subject);
655678
$message->setHtmlBody($body);
679+
if(Zend_Registry::get('configGlobal')->environment != 'testing')
680+
{
681+
$message->send();
682+
}
656683
}
657684
else
658685
{
@@ -661,10 +688,18 @@ public static function sendEmail($to, $subject, $body)
661688
$message->addTo($to);
662689
$message->setSubject($subject);
663690
$message->setBodyHtml($body);
664-
}
665-
if(Zend_Registry::get('configGlobal')->environment != 'testing')
666-
{
667-
$message->send();
691+
if(Zend_Registry::get('configGlobal')->environment != 'testing')
692+
{
693+
$transport = UtilityComponent::getEmailTransport();
694+
if($transport)
695+
{
696+
$message->send($transport);
697+
}
698+
else
699+
{
700+
$message->send();
701+
}
702+
}
668703
}
669704
}
670705
catch(Exception $exception)

core/controllers/forms/AdminForm.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,18 @@ public function createConfigForm()
6969

7070
$httpProxy = new Zend_Form_Element_Text('httpProxy');
7171

72+
$smtpServer = new Zend_Form_Element_Text('smtpserver');
73+
$smtpUser = new Zend_Form_Element_Text('smtpuser');
74+
$smtpPassword = new Zend_Form_Element_Text('smtppassword');
75+
$smtpFromAddress = new Zend_Form_Element_Text('smtpfromaddress');
76+
7277
$submit = new Zend_Form_Element_Submit('submitConfig');
7378
$submit ->setLabel('Save configuration');
7479

7580
$form->addElements(
7681
array($dynamichelp, $keywords, $description, $timezone, $environment, $gravatar,
7782
$lang, $name, $smartoptimizer, $closeRegistration, $submit, $logtrace, $httpProxy,
78-
$verifyEmail));
83+
$smtpServer, $smtpUser, $smtpPassword, $smtpFromAddress, $verifyEmail));
7984
return $form;
8085
}
8186
} // end class

core/views/admin/index.phtml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,22 @@ $this->headScript()->appendFile($this->coreWebroot . '/public/js/jquery/jquery.c
6868
<label for='httpProxy'>Outbound HTTP Proxy</label>
6969
".$this->configForm['httpProxy']."
7070
</div>
71+
<div class='smtpserver'>
72+
<label for='smtpserver'>SMTP Server</label>
73+
{$this->configForm['smtpserver']}
74+
</div>
75+
<div class='smtpuser'>
76+
<label for='smtpuser'>SMTP Username</label>
77+
{$this->configForm['smtpuser']}
78+
</div>
79+
<div class='smtppassword'>
80+
<label for='smtppassword'>SMTP Password</label>
81+
{$this->configForm['smtppassword']}
82+
</div>
83+
<div class='smtpfromaddress'>
84+
<label for='smtpfromaddress'>SMTP From Address</label>
85+
{$this->configForm['smtpfromaddress']}
86+
</div>
7187
<div class='installLang'";
7288
if(isset(Zend_Registry::get('configCore')->internationalization) && Zend_Registry::get('configCore')->internationalization == "0")
7389
{

0 commit comments

Comments
 (0)