mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 13:37:09 -04:00
Add TLS toggle option to smtp configuration
This commit is contained in:
parent
ee6aa7a6b2
commit
db2c381c00
4 changed files with 30 additions and 10 deletions
|
@ -16,7 +16,7 @@ template(name="setting")
|
|||
+general
|
||||
else if emailSetting.get
|
||||
+email
|
||||
|
||||
|
||||
template(name="general")
|
||||
ul#registration-setting.setting-detail
|
||||
li
|
||||
|
@ -62,10 +62,18 @@ template(name='email')
|
|||
.title {{_ 'smtp-password'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-password(type="text", placeholder="{{_ 'password'}}" value="{{currentSetting.mailServer.password}}")
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-tls'}}
|
||||
.form-group
|
||||
a.flex.js-toggle-tls
|
||||
.materialCheckBox#mail-server-tls(class="{{#if currentSetting.mailServer.enableTLS}}is-checked{{/if}}")
|
||||
|
||||
span {{_ 'smtp-tls-description'}}
|
||||
|
||||
li.smtp-form
|
||||
.title {{_ 'send-from'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
|
||||
|
||||
li
|
||||
button.js-save.primary Save
|
||||
button.js-save.primary Save
|
||||
|
|
|
@ -51,7 +51,9 @@ BlazeComponent.extendComponent({
|
|||
$('.invite-people').slideDown();
|
||||
}
|
||||
},
|
||||
|
||||
toggleTLS(){
|
||||
$('#mail-server-tls').toggleClass('is-checked');
|
||||
},
|
||||
switchMenu(event){
|
||||
const target = $(event.target);
|
||||
if(!target.hasClass('active')){
|
||||
|
@ -106,8 +108,9 @@ BlazeComponent.extendComponent({
|
|||
const username = $('#mail-server-username').val().trim();
|
||||
const password = $('#mail-server-password').val().trim();
|
||||
const from = this.checkField('#mail-server-from');
|
||||
const tls = $('#mail-server-tls.is-checked').length > 0;
|
||||
Settings.update(Settings.findOne()._id, {$set:{'mailServer.host':host, 'mailServer.port': port, 'mailServer.username': username,
|
||||
'mailServer.password': password, 'mailServer.from': from}});
|
||||
'mailServer.password': password, 'mailServer.enableTLS': tls, 'mailServer.from': from}});
|
||||
} catch (e) {
|
||||
return;
|
||||
} finally {
|
||||
|
@ -119,6 +122,7 @@ BlazeComponent.extendComponent({
|
|||
events(){
|
||||
return [{
|
||||
'click a.js-toggle-registration': this.toggleRegistration,
|
||||
'click a.js-toggle-tls': this.toggleTLS,
|
||||
'click a.js-setting-menu': this.switchMenu,
|
||||
'click a.js-toggle-board-choose': this.checkBoard,
|
||||
'click button.js-email-invite': this.inviteThroughEmail,
|
||||
|
|
|
@ -337,10 +337,12 @@
|
|||
"email-addresses": "Email Addresses",
|
||||
"smtp-host-description": "The address of the SMTP server that handles your emails.",
|
||||
"smtp-port-description": "The port your SMTP server uses for outgoing emails.",
|
||||
"smtp-tls-description": "Enable TLS support for SMTP server",
|
||||
"smtp-host": "SMTP Host",
|
||||
"smtp-port": "SMTP Port",
|
||||
"smtp-username": "Username",
|
||||
"smtp-password": "Password",
|
||||
"smtp-tls": "TLS support",
|
||||
"send-from": "From",
|
||||
"invitation-code": "Invitation Code",
|
||||
"email-invite-register-subject": "__inviter__ sent you an invitation",
|
||||
|
|
|
@ -20,6 +20,10 @@ Settings.attachSchema(new SimpleSchema({
|
|||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
'mailServer.enableTLS': {
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
'mailServer.from': {
|
||||
type: String,
|
||||
optional: true,
|
||||
|
@ -38,10 +42,11 @@ Settings.helpers({
|
|||
if (!this.mailServer.host) {
|
||||
return null;
|
||||
}
|
||||
const protocol = this.mailServer.enableTLS ? 'smtps://' : 'smtp://';
|
||||
if (!this.mailServer.username && !this.mailServer.password) {
|
||||
return `smtp://${this.mailServer.host}:${this.mailServer.port}/`;
|
||||
return `${protocol}${this.mailServer.host}:${this.mailServer.port}/`;
|
||||
}
|
||||
return `smtp://${this.mailServer.username}:${this.mailServer.password}@${this.mailServer.host}:${this.mailServer.port}/`;
|
||||
return `${protocol}${this.mailServer.username}:${this.mailServer.password}@${this.mailServer.host}:${this.mailServer.port}/`;
|
||||
},
|
||||
});
|
||||
Settings.allow({
|
||||
|
@ -62,7 +67,7 @@ if (Meteor.isServer) {
|
|||
if(!setting){
|
||||
const now = new Date();
|
||||
const defaultSetting = {disableRegistration: false, mailServer: {
|
||||
username: '', password:'', host: '', port:'', from: '',
|
||||
username: '', password: '', host: '', port: '', enableTLS: false, from: '',
|
||||
}, createdAt: now, modifiedAt: now};
|
||||
Settings.insert(defaultSetting);
|
||||
}
|
||||
|
@ -72,11 +77,12 @@ if (Meteor.isServer) {
|
|||
});
|
||||
Settings.after.update((userId, doc, fieldNames) => {
|
||||
// assign new values to mail-from & MAIL_URL in environment
|
||||
if (_.contains(fieldNames, 'mailServer') && _.contains(fieldNames, 'host')) {
|
||||
if (_.contains(fieldNames, 'mailServer') && doc.mailServer.host) {
|
||||
const protocol = doc.mailServer.enableTLS ? 'smtps://' : 'smtp://';
|
||||
if (!doc.mailServer.username && !doc.mailServer.password) {
|
||||
process.env.MAIL_URL = `smtp://${doc.mailServer.host}:${doc.mailServer.port}/`;
|
||||
process.env.MAIL_URL = `${protocol}${doc.mailServer.host}:${doc.mailServer.port}/`;
|
||||
} else {
|
||||
process.env.MAIL_URL = `smtp://${doc.mailServer.username}:${doc.mailServer.password}@${doc.mailServer.host}:${doc.mailServer.port}/`;
|
||||
process.env.MAIL_URL = `${protocol}${doc.mailServer.username}:${doc.mailServer.password}@${doc.mailServer.host}:${doc.mailServer.port}/`;
|
||||
}
|
||||
Accounts.emailTemplates.from = doc.mailServer.from;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue