Don't send emails if missing smtp host

pull/943/head
Julen Landa Alustiza 9 years ago
parent feafc46bb5
commit 5db786e2dd
  1. 8
      config/accounts.js
  2. 19
      models/settings.js
  3. 36
      models/users.js
  4. 20
      server/notifications/email.js

@ -17,12 +17,17 @@ 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: true,
sendVerificationEmail,
showForgotPasswordLink: true,
onLogoutHook() {
const homePage = 'home';
@ -69,4 +74,3 @@ if (Meteor.isServer) {
};
});
}

@ -35,6 +35,9 @@ Settings.attachSchema(new SimpleSchema({
}));
Settings.helpers({
mailUrl () {
if (!this.mailServer.host) {
return null;
}
if (!this.mailServer.username && !this.mailServer.password) {
return `smtp://${this.mailServer.host}:${this.mailServer.port}/`;
}
@ -69,7 +72,7 @@ if (Meteor.isServer) {
});
Settings.after.update((userId, doc, fieldNames) => {
// assign new values to mail-from & MAIL_URL in environment
if (_.contains(fieldNames, 'mailServer')) {
if (_.contains(fieldNames, 'mailServer') && _.contains(fieldNames, 'host')) {
if (!doc.mailServer.username && !doc.mailServer.password) {
process.env.MAIL_URL = `smtp://${doc.mailServer.host}:${doc.mailServer.port}/`;
} else {
@ -97,12 +100,14 @@ if (Meteor.isServer) {
url: FlowRouter.url('sign-up'),
};
const lang = author.getLanguage();
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),
});
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),
});
}
} catch (e) {
throw new Meteor.Error('email-fail', e.message);
}

@ -369,24 +369,25 @@ if (Meteor.isServer) {
board.addMember(user._id);
user.addInvite(boardId);
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);
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);
}
}
return { username: user.username, email: user.emails[0].address };
},
});
@ -502,4 +503,3 @@ if (Meteor.isServer) {
}
});
}

@ -26,15 +26,17 @@ Meteor.startup(() => {
const text = texts.join('\n\n');
user.clearEmailBuffer();
try {
Email.send({
to: user.emails[0].address.toLowerCase(),
from: Accounts.emailTemplates.from,
subject: TAPi18n.__('act-activity-notify', {}, user.getLanguage()),
text,
});
} catch (e) {
return;
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;
}
}
}, 30000);
});

Loading…
Cancel
Save