Merge branch 'MDL-69513-dkim-settings' of https://github.com/brendanheywood/moodle
authorVíctor Déniz <victor@moodle.com>
Wed, 21 Oct 2020 10:13:17 +0000 (11:13 +0100)
committerVíctor Déniz <victor@moodle.com>
Wed, 21 Oct 2020 10:57:11 +0000 (11:57 +0100)
1  2 
admin/settings/server.php
lang/en/admin.php
lib/moodlelib.php
lib/upgrade.txt

@@@ -455,6 -455,15 +455,15 @@@ if ($hassiteconfig) 
          new lang_string('divertallemailsexcept_desc', 'admin'),
          '', PARAM_RAW, '50', '4'));
  
 -    $pempath = "{$CFG->dataroot}/dkim/{$dkimdomain}/{$dkimselector}.private";
+     $noreplyaddress = isset($CFG->noreplyaddress) ? $CFG->noreplyaddress : 'noreply@example.com';
+     $dkimdomain = substr(strrchr($noreplyaddress, "@"), 1);
+     $dkimselector = empty($CFG->emaildkimselector) ? '[selector]' : $CFG->emaildkimselector;
++    $pempath = "\$CFG->dataroot/dkim/{$dkimdomain}/{$dkimselector}.private";
+     $temp->add(new admin_setting_heading('emaildkim', new lang_string('emaildkim', 'admin'),
+         new lang_string('emaildkiminfo', 'admin', ['path' => $pempath, 'docs' => \get_docs_url('Mail_configuration#DKIM')])));
+     $temp->add(new admin_setting_configtext('emaildkimselector', new lang_string('emaildkimselector', 'admin'),
+         new lang_string('configemaildkimselector', 'admin'), '', PARAM_FILE));
      $url = new moodle_url('/admin/testoutgoingmailconf.php');
      $link = html_writer::link($url, get_string('testoutgoingmailconf', 'admin'));
      $temp->add(new admin_setting_heading('testoutgoinmailc', new lang_string('testoutgoingmailconf', 'admin'),
@@@ -529,6 -530,9 +530,9 @@@ $string['editorspelling'] = 'Editor spe
  $string['editorspellinghelp'] = 'Enable or disable spell-checking. When enabled, <strong>aspell</strong> must be installed on the server.';
  $string['editstrings'] = 'Edit words or phrases';
  $string['emailchangeconfirmation'] = 'Email change confirmation';
 -$string['emaildkiminfo'] = 'If both the DKIM selector is set and a private certificate file is found which matches the emails From domain in sitedata/dkim/[domain]/[selector].private then the email will be signed. In most cases (ie if allowedemaildomains is empty) then only a single certificate is needed in: <code>{$a->path}</code>. For more setup details see <a href="{$a->docs}">{$a->docs}</a>.';
+ $string['emaildkim'] = 'DKIM email signing';
+ $string['emaildkimselector'] = 'DKIM selector';
++$string['emaildkiminfo'] = 'If both the DKIM selector is set and a private certificate file is found which matches the emails "From" address domain in $CFG->dataroot/dkim/[domain]/[selector].private then the email will be signed. In most cases (eg if allowedemaildomains is empty) then only a single certificate is needed in: <code>{$a->path}</code>. For more setup details see <a href="{$a->docs}">{$a->docs}</a>.';
  $string['emailfromvia'] = 'Email via information';
  $string['emailheaders'] = 'Email headers';
  $string['emailsubjectprefix'] = 'Email subject prefix text';
Simple merge
diff --cc lib/upgrade.txt
@@@ -56,8 -56,7 +56,9 @@@ information provided here is intended e
    a callback to be provided to determine whether page can be accessed.
  * New setting $CFG->localtempdir overrides which defaults to sys_get_temp_dir()
  * Function redirect() now emits a line of backtrace into the X-Redirect-By header when debugging is on
 +* New DML function $DB->delete_records_subquery() to delete records based on a subquery in a way
 +  that will work across databases.
+ * Add support for email DKIM signatures via $CFG->emaildkimselector
  
  === 3.9 ===
  * Following function has been deprecated, please use \core\task\manager::run_from_cli().