To send an email, use the email.send() method, available via the named export email from @joystick.js/node.
Example Usage
/api/messages/setters.js
import joystick, { email } from '@joystick.js/node';
const setters = {
send_message: {
input: {
user_id: {
type: 'string',
required: true,
},
message: {
type: 'string',
required: true,
},
},
set: async (input = {}) => {
const message_id = joystick.id();
await process.databases.mongodb.collection('messages').insertOne({
_id: message_id,
recipient: input?.user_id,
message: input?.message,
});
const recipient_user = await process.databases.mongodb.collection('users').findOne({
_id: input?.user_id,
});
await email.send({
to: recipient_user?.emailAddress,
from: 'notifications@app.com',
subject: `You received a new message from ${context?.user?.username}!`,
base: 'user_messages',
template: 'new_message',
preheader: `${context?.user?.username} says "${input?.message}"`,
props: {
message_id,
sender: context?.user?.username,
},
attachments: [
{ filename: 'message.txt', content: input?.message },
],
});
},
},
};
export default setters;
In the example above, we create a setter for sending messages between users. After saving the message to the database, we retrieve the recipient’s email and use email.send() to notify them.
The to, from, subject, and template fields are required when calling email.send().
API
Definition
email.send(options: object) => Promise
Parameters
- options object required
-
The options object defining the email to send.
- to string required
- The recipient address for the email being sent.
- from string required
- The sender address for the email being sent.
- subject string required
- The subject for the email being sent.
- base string
-
The name of the base template relative to the
/emaildirectory. The.htmlsuffix is assumed. - template string required
-
The name of the email template relative to the
/emaildirectory. The.jssuffix is assumed. - preheader string
- Text shown as the preview line in a recipient’s inbox.
- props object
- Key/value pairs passed as props to the email template.
- attachments array[object]
- An array of attachment objects, following the Nodemailer attachments specification.