aboutsummaryrefslogtreecommitdiffstats
path: root/settings/admin/controller.php
diff options
context:
space:
mode:
Diffstat (limited to 'settings/admin/controller.php')
-rw-r--r--settings/admin/controller.php30
1 files changed, 30 insertions, 0 deletions
diff --git a/settings/admin/controller.php b/settings/admin/controller.php
index a075d774361..7019f9a4d2a 100644
--- a/settings/admin/controller.php
+++ b/settings/admin/controller.php
@@ -74,6 +74,36 @@ class Controller {
}
/**
+ * Send a mail to test the settings
+ */
+ public static function sendTestMail() {
+ \OC_Util::checkAdminUser();
+ \OCP\JSON::callCheck();
+
+ $l = \OC_L10N::get('settings');
+ $email = \OC_Preferences::getValue(\OC_User::getUser(), 'settings', 'email', '');
+ if (!empty($email)) {
+ $defaults = new \OC_Defaults();
+
+ try {
+ \OC_Mail::send($email, $_POST['user'],
+ $l->t('test email settings'),
+ $l->t('If you received this email, the settings seem to be correct.'),
+ \OCP\Util::getDefaultEmailAddress('no-reply'), $defaults->getName());
+ } catch (\Exception $e) {
+ $message = $l->t('A problem occurred while sending the e-mail. Please revisit your settings.');
+ \OC_JSON::error( array( "data" => array( "message" => $message)) );
+ exit;
+ }
+
+ \OC_JSON::success(array("data" => array( "message" => $l->t("Email sent") )));
+ } else {
+ $message = $l->t('You need to set your user email before being able to send test emails.');
+ \OC_JSON::error( array( "data" => array( "message" => $message)) );
+ }
+ }
+
+ /**
* Get the field name to use it in error messages
*
* @param $setting string