mirror of
https://github.com/wekan/wekan.git
synced 2025-04-24 05:57:13 -04:00
Merge branch 'Zokormazo-email' into devel
MAIL_URL was overriden with database info all the time. Now if MAIL_URL exists is not overwritten and if neither MAIL_URL nor exists valid admin panel data MAIL_URL is not set. MAIL_FROM was ignored. Same behaviour, env variable has bigger priority than database configuration. On both cases, althrought environment variable is set, updating admin-panel mail settings will load new info and ignore the environment variable. Remove some code that is not needed anymore. This fixes #951, fixes #948, and fixes #937
This commit is contained in:
commit
5bf43319c9
4 changed files with 38 additions and 47 deletions
|
@ -16,17 +16,12 @@ AccountsTemplates.addFields([{
|
|||
template: 'invitationCode',
|
||||
}]);
|
||||
|
||||
let sendVerificationEmail = false;
|
||||
if (process.env.MAIL_URL) {
|
||||
sendVerificationEmail = true;
|
||||
}
|
||||
|
||||
AccountsTemplates.configure({
|
||||
defaultLayout: 'userFormsLayout',
|
||||
defaultContentRegion: 'content',
|
||||
confirmPassword: false,
|
||||
enablePasswordChange: true,
|
||||
sendVerificationEmail,
|
||||
sendVerificationEmail: true,
|
||||
showForgotPasswordLink: true,
|
||||
onLogoutHook() {
|
||||
const homePage = 'home';
|
||||
|
|
|
@ -27,7 +27,6 @@ Settings.attachSchema(new SimpleSchema({
|
|||
'mailServer.from': {
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: 'Wekan',
|
||||
},
|
||||
createdAt: {
|
||||
type: Date,
|
||||
|
@ -66,14 +65,17 @@ if (Meteor.isServer) {
|
|||
const setting = Settings.findOne({});
|
||||
if(!setting){
|
||||
const now = new Date();
|
||||
const domain = process.env.ROOT_URL.match(/\/\/(?:www\.)?(.*)?(?:\/)?/)[1];
|
||||
const from = `Wekan <wekan@${domain}>`;
|
||||
const defaultSetting = {disableRegistration: false, mailServer: {
|
||||
username: '', password: '', host: '', port: '', enableTLS: false, from: '',
|
||||
username: '', password: '', host: '', port: '', enableTLS: false, from,
|
||||
}, createdAt: now, modifiedAt: now};
|
||||
Settings.insert(defaultSetting);
|
||||
}
|
||||
const newSetting = Settings.findOne();
|
||||
process.env.MAIL_URL = newSetting.mailUrl();
|
||||
Accounts.emailTemplates.from = newSetting.mailServer.from;
|
||||
if (!process.env.MAIL_URL && newSetting.mailUrl())
|
||||
process.env.MAIL_URL = newSetting.mailUrl();
|
||||
Accounts.emailTemplates.from = process.env.MAIL_FROM ? process.env.MAIL_FROM : newSetting.mailServer.from;
|
||||
});
|
||||
Settings.after.update((userId, doc, fieldNames) => {
|
||||
// assign new values to mail-from & MAIL_URL in environment
|
||||
|
@ -106,14 +108,12 @@ if (Meteor.isServer) {
|
|||
url: FlowRouter.url('sign-up'),
|
||||
};
|
||||
const lang = author.getLanguage();
|
||||
if (Settings.findOne().mailUrl()) {
|
||||
Email.send({
|
||||
to: icode.email,
|
||||
from: Accounts.emailTemplates.from,
|
||||
subject: TAPi18n.__('email-invite-register-subject', params, lang),
|
||||
text: TAPi18n.__('email-invite-register-text', params, lang),
|
||||
});
|
||||
}
|
||||
Email.send({
|
||||
to: icode.email,
|
||||
from: Accounts.emailTemplates.from,
|
||||
subject: TAPi18n.__('email-invite-register-subject', params, lang),
|
||||
text: TAPi18n.__('email-invite-register-text', params, lang),
|
||||
});
|
||||
} catch (e) {
|
||||
InvitationCodes.remove(_id);
|
||||
throw new Meteor.Error('email-fail', e.message);
|
||||
|
|
|
@ -383,24 +383,22 @@ if (Meteor.isServer) {
|
|||
board.addMember(user._id);
|
||||
user.addInvite(boardId);
|
||||
|
||||
if (Settings.findOne().mailUrl()) {
|
||||
try {
|
||||
const params = {
|
||||
user: user.username,
|
||||
inviter: inviter.username,
|
||||
board: board.title,
|
||||
url: board.absoluteUrl(),
|
||||
};
|
||||
const lang = user.getLanguage();
|
||||
Email.send({
|
||||
to: user.emails[0].address.toLowerCase(),
|
||||
from: Accounts.emailTemplates.from,
|
||||
subject: TAPi18n.__('email-invite-subject', params, lang),
|
||||
text: TAPi18n.__('email-invite-text', params, lang),
|
||||
});
|
||||
} catch (e) {
|
||||
throw new Meteor.Error('email-fail', e.message);
|
||||
}
|
||||
try {
|
||||
const params = {
|
||||
user: user.username,
|
||||
inviter: inviter.username,
|
||||
board: board.title,
|
||||
url: board.absoluteUrl(),
|
||||
};
|
||||
const lang = user.getLanguage();
|
||||
Email.send({
|
||||
to: user.emails[0].address.toLowerCase(),
|
||||
from: Accounts.emailTemplates.from,
|
||||
subject: TAPi18n.__('email-invite-subject', params, lang),
|
||||
text: TAPi18n.__('email-invite-text', params, lang),
|
||||
});
|
||||
} catch (e) {
|
||||
throw new Meteor.Error('email-fail', e.message);
|
||||
}
|
||||
return { username: user.username, email: user.emails[0].address };
|
||||
},
|
||||
|
|
|
@ -26,17 +26,15 @@ Meteor.startup(() => {
|
|||
const text = texts.join('\n\n');
|
||||
user.clearEmailBuffer();
|
||||
|
||||
if (Settings.findOne().mailUrl()) {
|
||||
try {
|
||||
Email.send({
|
||||
to: user.emails[0].address.toLowerCase(),
|
||||
from: Accounts.emailTemplates.from,
|
||||
subject: TAPi18n.__('act-activity-notify', {}, user.getLanguage()),
|
||||
text,
|
||||
});
|
||||
} catch (e) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Email.send({
|
||||
to: user.emails[0].address.toLowerCase(),
|
||||
from: Accounts.emailTemplates.from,
|
||||
subject: TAPi18n.__('act-activity-notify', {}, user.getLanguage()),
|
||||
text,
|
||||
});
|
||||
} catch (e) {
|
||||
return;
|
||||
}
|
||||
}, 30000);
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue