import mailJet = require('node-mailjet');
import { Email, SMS, ConnectOptions } from 'node-mailjet';
const connection: Email.Client = mailJet.connect('MJ_APIKEY_PUBLIC', 'MJ_APIKEY_PRIVATE');
// *** Email API *** //
// send api v3.1
const params: Email.SendParams = {
Messages: [
{
From: {
Email: 'sender@email.com',
Name: 'Me',
},
To: [
{
Email: 'passenger1@mailjet.com',
Name: 'You',
},
],
Cc: [
{
Email: 'copilot@mailjet.com',
Name: 'Copilot',
},
],
Bcc: [
{
Email: 'air-traffic-control@mailjet.com',
Name: 'Air traff ic control',
},
],
ReplyTo: {
Email: 'someone@email.com',
},
Subject: 'My first Mailjet Email!',
TextPart: 'Greetings from Mailjet!',
HTMLPart: '
',
Attachments: [
{
Base64Content: 'aGVsbG8sIHdvcmxkCg==',
ContentType: 'plain/text',
Filename: 'textfile.txt',
},
],
InlinedAttachments: [
{
Filename: 'test.png',
Base64Content:
'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=', // 1px png as base64
ContentType: 'image/png',
ContentID: 'abc123',
},
],
},
],
SandboxMode: true,
};
const mailJetRequest: Email.PostResource = connection.post('send', { version: 'v3.1' });
const mailJetResponse: Promise = mailJetRequest.request(params);
mailJetResponse
.then((res: Email.PostResponse) => {
const body: Email.PostResponseData = res.body;
const messages: ReadonlyArray = body.Messages;
const message: Email.PostResponseDataMessage = messages[0];
const to: ReadonlyArray = message.To;
const cc: ReadonlyArray = message.Cc;
const bcc: ReadonlyArray = message.Bcc;
const email: string = to[0].Email;
const messageHref: string = to[0].MessageHref;
const messageId: number = to[0].MessageID;
const messageUUID: string = to[0].MessageUUID;
})
.catch((err: Error) => {
// ignore
});
// send api v3
const paramsV3: object = {
FromEmail: 'sender@email.com',
FromName: 'Mailjet Pilot',
Subject: 'Your email flight plan!',
'Text-part': 'Dear passenger, welcome to Mailjet! May the delivery force be with you!',
'Html-part': 'Welcome to Mailjet!',
Recipients: [{ Email: 'passenger@mailjet.com' }],
SandboxMode: true,
};
const mailJetRequestV3: Email.PostResource = connection.post('send');
const mailJetResponseV3: Promise = mailJetRequestV3.request(paramsV3);
mailJetResponseV3
.then((res: Email.Response) => {
const responseBody: object = res.body;
})
.catch((err: Error) => {
// ignore
});
// add template
const paramsAddTemplate: object = {
'Html-part': 'Hello {{var:name}}
',
'Text-part': 'Hello {{var:name}}',
};
const mailJetRequestTemplate: Email.PostResource = connection.post('template');
const mailJetPostResource: Email.PostResource = mailJetRequestTemplate.id('762957');
const mailJetPostActionResource: Email.PostResource = mailJetPostResource.action('detailcontent');
const mailJetResponseTemplate: Promise = mailJetPostActionResource.request(paramsAddTemplate);
mailJetResponseTemplate
.then((res: Email.Response) => {
const responseBody: object = res.body;
})
.catch((err: Error) => {
// ignore
});
// get all message
const messageId = '576460753004591401';
const mailJetRequestMessages: Email.GetResource = connection.get('message');
const mailJetGetResource: Email.GetResource = mailJetRequestMessages.id(messageId);
const mailJetResponseMessages: Promise = mailJetGetResource.request();
mailJetResponseMessages
.then((res: Email.GetResponse) => {
const responseBody: Email.GetResponseData = res.body;
const count: number = responseBody.Count;
const data: ReadonlyArray