Save mail as a draft
In this chapter, we'll look at a method for saving an mail as a draft.
Create a draft mail
The secrecyClient.mail.createDraft
is a method that creates a new draft email using the secrecyClient. It accepts a mail object of type NewMail as an argument, which includes details like the subject
, body
, recipients
, any files from the sender SenderFiles
, and an optional replyToId
. The function first checks if secrecyClient is available, returning null if it’s not. If secrecyClient is available, it calls secrecyClient.mail.createDraft
with the properties from the mail object to create a draft and returns the resulting DraftMail
.
mail.ts
type NewMail = {
subject: string;
body: string;
replyToId: string | null;
recipients: string[];
senderFiles: {
id: string;
name: string;
}[];
};
const newDraftMail = async (mail: NewMail): Promise<DraftMail | null> => {
// First we need to check if the secrecyClient is available
if (!secrecyClient) {
return null;
}
try {
// add a new draft mail
const draftMail = await secrecyClient.mail.createDraft({
body: mail.body,
senderFiles: mail.senderFiles,
recipients: mail.recipients,
subject: mail.subject,
replyToId: mail.replyToId,
});
return draftMail;
} catch (error) {
console.error(error);
return null;
}
};