New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

gmail-node-mailer

Package Overview
Dependencies
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gmail-node-mailer - npm Package Compare versions

Comparing version 1.6.601 to 1.6.602

dist/__tests__/GmailMailer.test.d.ts

2

dist/functions/sendEmail.d.ts

@@ -10,2 +10,2 @@ import { gmail_v1 } from 'googleapis';

*/
export declare function sendEmail(gmailClient: gmail_v1.Gmail, params: ISendEmailParams): Promise<ISendEmailResponse>;
export declare function sendEmail(gmailClient: gmail_v1.Gmail, { senderEmail, recipientEmail, subject, message }: ISendEmailParams): Promise<ISendEmailResponse>;

@@ -14,12 +14,2 @@ "use strict";

/**
* Encodes the email content to base64url string.
*
* @param {ISendEmailParams} params The email parameters.
* @returns {string} The base64url encoded email string.
*/
function encodeEmail({ senderEmail, recipientEmail, subject, message }) {
const emailContent = `From: ${senderEmail}\r\nTo: ${recipientEmail}\r\nSubject: ${subject}\r\n\r\n${message}`;
return Buffer.from(emailContent, 'utf-8').toString('base64').replace(/\+/g, '-').replace(/\//g, '_');
}
/**
* Sends an email using the Gmail API client.

@@ -31,22 +21,37 @@ *

*/
function sendEmail(gmailClient, params) {
return __awaiter(this, void 0, void 0, function* () {
var _a;
function sendEmail(gmailClient_1, _a) {
return __awaiter(this, arguments, void 0, function* (gmailClient, { senderEmail, recipientEmail, subject, message }) {
if (!gmailClient) {
return { status: false, message: 'The Gmail client has not been initialized. Please call initializeClient first.', response: null };
return {
status: false,
message: 'The Gmail client has not been initialized. Please call initializeClient first.'
};
}
const encodedEmail = encodeEmail(params);
const encodedEmail = Buffer.from(`From: ${senderEmail}\r\n` +
`To: ${recipientEmail}\r\n` +
`Subject: ${subject}\r\n\r\n` +
`${message}`, 'utf-8').toString('base64')
.replace(/\+/g, '-')
.replace(/\//g, '_');
try {
const response = yield gmailClient.users.messages.send({
userId: params.senderEmail,
userId: 'me',
requestBody: { raw: encodedEmail },
});
if (response.status < 200 || response.status >= 300) {
return { status: false, message: `Failed to send email. Status: ${response.status}`, response };
return {
status: false,
message: `Failed to send email. Status: ${response.status}`,
};
}
return { status: true, message: `Email successfully sent to ${params.recipientEmail}.`, response };
return {
status: true,
message: `Email successfully sent to ${recipientEmail}.`,
};
}
catch (error) {
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
return { status: false, message: `An error occurred while sending the email: ${errorMessage}`, response: ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || null };
return {
status: false,
message: `An error occurred while sending the email: ${error.message}`,
};
}

@@ -53,0 +58,0 @@ });

@@ -76,16 +76,12 @@ "use strict";

status: false,
message: 'Gmail client not initialized. Please initialize before sending emails.',
response: null,
message: 'Gmail client not initialized. Please initialize before sending emails.'
};
}
// Ensure a sender email is set, either from parameters or from the EmailConfig class
const senderEmail = params.senderEmail || emailConfig_1.emailConfig.getGmailSenderEmail();
if (!senderEmail || !(0, isValidEmail_1.isValidEmail)(senderEmail)) {
if (!senderEmail) {
return {
status: false,
message: 'Sender email not valid or not configured. Please provide a valid sender email.',
response: null,
message: 'Sender email not configured. Please provide a sender email.'
};
}
// Adjust the parameters with the resolved sender email
const adjustedParams = Object.assign(Object.assign({}, params), { senderEmail });

@@ -92,0 +88,0 @@ return (0, sendEmail_1.sendEmail)(this.gmailClient, adjustedParams);

@@ -11,3 +11,2 @@ import { google } from 'googleapis';

message: string;
response: any | null;
}

@@ -14,0 +13,0 @@ export interface IInitializeClientParams {

{
"name": "gmail-node-mailer",
"version": "1.6.601",
"version": "1.6.602",
"description": "",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -5,13 +5,2 @@ import { gmail_v1 } from 'googleapis';

/**
* Encodes the email content to base64url string.
*
* @param {ISendEmailParams} params The email parameters.
* @returns {string} The base64url encoded email string.
*/
function encodeEmail({ senderEmail, recipientEmail, subject, message }: ISendEmailParams): string {
const emailContent = `From: ${senderEmail}\r\nTo: ${recipientEmail}\r\nSubject: ${subject}\r\n\r\n${message}`;
return Buffer.from(emailContent, 'utf-8').toString('base64').replace(/\+/g, '-').replace(/\//g, '_');
}
/**
* Sends an email using the Gmail API client.

@@ -23,12 +12,26 @@ *

*/
export async function sendEmail(gmailClient: gmail_v1.Gmail, params: ISendEmailParams): Promise<ISendEmailResponse> {
export async function sendEmail(
gmailClient: gmail_v1.Gmail,
{ senderEmail, recipientEmail, subject, message }: ISendEmailParams
): Promise<ISendEmailResponse> {
if (!gmailClient) {
return { status: false, message: 'The Gmail client has not been initialized. Please call initializeClient first.', response: null };
return {
status: false,
message: 'The Gmail client has not been initialized. Please call initializeClient first.'
};
}
const encodedEmail = encodeEmail(params);
const encodedEmail = Buffer.from(
`From: ${senderEmail}\r\n` +
`To: ${recipientEmail}\r\n` +
`Subject: ${subject}\r\n\r\n` +
`${message}`,
'utf-8'
).toString('base64')
.replace(/\+/g, '-')
.replace(/\//g, '_');
try {
const response = await gmailClient.users.messages.send({
userId: params.senderEmail,
userId: 'me',
requestBody: { raw: encodedEmail },

@@ -38,10 +41,18 @@ });

if (response.status < 200 || response.status >= 300) {
return { status: false, message: `Failed to send email. Status: ${response.status}`, response };
return {
status: false,
message: `Failed to send email. Status: ${response.status}`,
};
}
return { status: true, message: `Email successfully sent to ${params.recipientEmail}.`, response };
} catch (error: unknown) {
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
return { status: false, message: `An error occurred while sending the email: ${errorMessage}`, response: (error as any).response?.data || null };
return {
status: true,
message: `Email successfully sent to ${recipientEmail}.`,
};
} catch (error: any) {
return {
status: false,
message: `An error occurred while sending the email: ${error.message}`,
};
}
}
}

@@ -85,21 +85,17 @@ import { google, gmail_v1 } from 'googleapis';

status: false,
message: 'Gmail client not initialized. Please initialize before sending emails.',
response: null,
message: 'Gmail client not initialized. Please initialize before sending emails.'
};
}
// Ensure a sender email is set, either from parameters or from the EmailConfig class
const senderEmail = params.senderEmail || emailConfig.getGmailSenderEmail();
if (!senderEmail || !isValidEmail(senderEmail)) {
if (!senderEmail) {
return {
status: false,
message: 'Sender email not valid or not configured. Please provide a valid sender email.',
response: null,
message: 'Sender email not configured. Please provide a sender email.'
};
}
// Adjust the parameters with the resolved sender email
const adjustedParams = { ...params, senderEmail };
return sendEmailFunction(this.gmailClient, adjustedParams);
}
}
}

@@ -13,3 +13,2 @@ import { google } from 'googleapis';

message: string;
response:any| null;
};

@@ -16,0 +15,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc