diff --git a/packages/accounts-passwords/email_templates.js b/packages/accounts-passwords/email_templates.js index e5baf6d6bf..c367117b11 100644 --- a/packages/accounts-passwords/email_templates.js +++ b/packages/accounts-passwords/email_templates.js @@ -1,9 +1,11 @@ Meteor.accounts.emailTemplates = { + from: "Meteor Accounts ", + resetPassword: { subject: function(user) { return "How to reset your password on " + Meteor.absoluteUrl(); }, - message: function(user, url) { + text: function(user, url) { var greeting = user.name ? ("Hello " + user.name + ",") : "Hello,"; return greeting + "\n" + "\n" @@ -18,7 +20,7 @@ Meteor.accounts.emailTemplates = { subject: function(user) { return "How to validate your account email on " + Meteor.absoluteUrl(); }, - message: function(user, url) { + text: function(user, url) { var greeting = user.name ? ("Hello " + user.name + ",") : "Hello,"; return greeting + "\n" + "\n" @@ -33,7 +35,7 @@ Meteor.accounts.emailTemplates = { subject: function(user) { return "An account has been created for you on " + Meteor.absoluteUrl(); }, - message: function(user, url) { + text: function(user, url) { var greeting = user.name ? ("Hello " + user.name + ",") : "Hello,"; return greeting + "\n" + "\n" diff --git a/packages/accounts-passwords/email_tests.js b/packages/accounts-passwords/email_tests.js index 92c1dbad70..a324ed63ea 100644 --- a/packages/accounts-passwords/email_tests.js +++ b/packages/accounts-passwords/email_tests.js @@ -129,8 +129,10 @@ })); }, function (test, expect) { - test.equal(Meteor.user().emails[1].email, email3); - test.isFalse(Meteor.user().emails[1].validated); + Meteor.default_connection.onQuiesce(expect(function () { + test.equal(Meteor.user().emails[1].email, email3); + test.isTrue(Meteor.user().emails[1].validated); + })); }, function (test, expect) { Meteor.logout(expect(function (error) { @@ -173,6 +175,8 @@ Meteor.enrollAccount(enrollAccountToken, 'password', expect(function(error) { test.isFalse(error); })); + }, + function (test, expect) { Meteor.default_connection.onQuiesce(expect(function () { test.equal(Meteor.user().emails.length, 1); test.equal(Meteor.user().emails[0].email, email4); @@ -197,4 +201,4 @@ })); } ]); -}) (); \ No newline at end of file +}) (); diff --git a/packages/accounts-passwords/email_tests_setup.js b/packages/accounts-passwords/email_tests_setup.js index d95b49f4ee..b3a58ec7e0 100644 --- a/packages/accounts-passwords/email_tests_setup.js +++ b/packages/accounts-passwords/email_tests_setup.js @@ -4,17 +4,18 @@ // the string "intercept", storing them in an array that can then // be retrieved using the getInterceptedEmails method // - var oldMeteorMailSend = Meteor.mail.send; + var oldEmailSend = Email.send; var interceptedEmails = {}; // (email address) -> (array of contents) - Meteor.mail.send = function (email, subject, content) { - if (email.indexOf('intercept') === -1) { - oldMeteorMailSend(email, content); + Email.send = function (options) { + var to = options.to; + if (to.indexOf('intercept') === -1) { + oldEmailSend(options); } else { - if (!interceptedEmails[email]) - interceptedEmails[email] = []; + if (!interceptedEmails[to]) + interceptedEmails[to] = []; - interceptedEmails[email].push(content); + interceptedEmails[to].push(options.text); } }; @@ -35,4 +36,4 @@ return Meteor.users.findOne(userId); } }); -}) (); \ No newline at end of file +}) (); diff --git a/packages/accounts-passwords/package.js b/packages/accounts-passwords/package.js index d05cf0671b..837dc480a1 100644 --- a/packages/accounts-passwords/package.js +++ b/packages/accounts-passwords/package.js @@ -5,6 +5,7 @@ Package.describe({ Package.on_use(function(api) { api.use('accounts', ['client', 'server']); api.use('srp', ['client', 'server']); + api.use('email', ['server']); api.add_files('email_templates.js', 'server'); api.add_files('passwords_server.js', 'server'); diff --git a/packages/accounts-passwords/passwords_server.js b/packages/accounts-passwords/passwords_server.js index 97c270cbab..9dd8fd260d 100644 --- a/packages/accounts-passwords/passwords_server.js +++ b/packages/accounts-passwords/passwords_server.js @@ -123,10 +123,11 @@ }}); var resetPasswordUrl = Meteor.accounts.urls.resetPassword(token); - Meteor.mail.send( - email, - Meteor.accounts.emailTemplates.resetPassword.subject(user), - Meteor.accounts.emailTemplates.resetPassword.message(user, resetPasswordUrl)); + Email.send({ + to: email, + from: Meteor.accounts.emailTemplates.from, + subject: Meteor.accounts.emailTemplates.resetPassword.subject(user), + text: Meteor.accounts.emailTemplates.resetPassword.text(user, resetPasswordUrl)}); }, resetPassword: function (token, newVerifier) { @@ -213,10 +214,12 @@ var user = Meteor.users.findOne(userId); var validateEmailUrl = Meteor.accounts.urls.validateEmail(token); - Meteor.mail.send( - email, - Meteor.accounts.emailTemplates.validateEmail.subject(user), - Meteor.accounts.emailTemplates.validateEmail.message(user, validateEmailUrl)); + Email.send({ + to: email, + from: Meteor.accounts.emailTemplates.from, + subject: Meteor.accounts.emailTemplates.validateEmail.subject(user), + text: Meteor.accounts.emailTemplates.validateEmail.text(user, validateEmailUrl) + }); }; // send the user an email informing them that their account was @@ -234,10 +237,12 @@ var user = Meteor.users.findOne(userId); var enrollAccountUrl = Meteor.accounts.urls.enrollAccount(token); - Meteor.mail.send( - email, - Meteor.accounts.emailTemplates.enrollAccount.subject(user), - Meteor.accounts.emailTemplates.enrollAccount.message(user, enrollAccountUrl)); + Email.send({ + to: email, + from: Meteor.accounts.emailTemplates.from, + subject: Meteor.accounts.emailTemplates.enrollAccount.subject(user), + text: Meteor.accounts.emailTemplates.enrollAccount.text(user, enrollAccountUrl) + }); }; // handler to login with password @@ -404,10 +409,3 @@ })(); - - -Meteor.mail = {}; -Meteor.mail.send = function() { - console.log("Send mail:"); - console.log(arguments); -}; diff --git a/packages/accounts-passwords/passwords_tests.js b/packages/accounts-passwords/passwords_tests.js index a9e5f33c9a..4d3e765c8b 100644 --- a/packages/accounts-passwords/passwords_tests.js +++ b/packages/accounts-passwords/passwords_tests.js @@ -196,11 +196,11 @@ if (Meteor.is_server) (function () { }); // disable sending emails - var oldMeteorMailSend = Meteor.mail.send; - Meteor.mail.send = function() {}; + var oldEmailSend = Email.send; + Email.send = function() {}; var userId = Meteor.createUser({email: email}, {testOnCreateUserHook: true}); - Meteor.mail.send = oldMeteorMailSend; + Email.send = oldEmailSend; test.isTrue(userId); var user = Meteor.users.findOne(userId);