gmail-node-mailer
Advanced tools
Comparing version 1.6.601 to 1.6.602
@@ -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 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
36
45995
1014