Reputation: 17581
I have the following Meteor method set up inside my server directory:
// Defined in collections/collections.js
Meteor.methods({
sendEmail: function(options) {
this.unblock();
Email.send(options);
}
});
which I call like this:
// Defined in client/main.js
Meteor.call('sendEmail', {
to: '[email protected]', from: '[email protected]',
text: 'testing testing'
});
I get one error in server shell running Meteor:
Exception while invoking method 'sendEmail' { stack: 'ReferenceError: Email is not defined\n at [object
Object].Meteor.methods.sendEmail (app/server/methods/reservations.js:82:4)\n at [object Object].methodMap.(anonymous function) (packages/meteorhacks_kadira/lib/hijack/wrap_session.js:164:1)\n at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1711:12)\n at packages/ddp-server/livedata_server.js:711:19\n at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)\n at packages/ddp-server/livedata_server.js:709:40\n at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)\n at packages/ddp-server/livedata_server.js:707:46\n at tryCallTwo (/Users/sltwtr/.meteor/packages/promise/.0.7.3.1y6b71x++os+web.browser+web.cordova/npm/node_modules/promise/lib/core.js:45:5)\n at doResolve (/Users/sltwtr/.meteor/packages/promise/.0.7.3.1y6b71x++os+web.browser+web.cordova/npm/node_modules/promise/lib/core.js:200:13)',I20160721-11:50:31.471(-7)? source: 'method' }
I've added the email package using
meteor add email
What's going on? Questions like this one or this one.
Upvotes: 0
Views: 215
Reputation: 8121
Email can only be sent from the server. Meteor.methods() is being called from the server and the client
Try the following:
Meteor.methods({
sendEmail: function(options) {
if(Meteor.isServer){
this.unblock();
Email.send(options);
}
}
});
Upvotes: 0