31 lines
		
	
	
	
		
			811 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			811 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | import { serverConfig } from "../serverConfig"; | ||
|  | import nodemailer, { SentMessageInfo } from "nodemailer"; | ||
|  | 
 | ||
|  | const sendEmail = ({ to, subject, text, html = null }): Promise<string | SentMessageInfo> => | ||
|  |   new Promise((resolve, reject) => { | ||
|  |     const { transport, from } = serverConfig; | ||
|  | 
 | ||
|  |     if (!to || !subject || (!text && !html)) { | ||
|  |       return reject("Missing required elements to send email."); | ||
|  |     } | ||
|  | 
 | ||
|  |     nodemailer.createTransport(transport).sendMail( | ||
|  |       { | ||
|  |         from: `Calendso ${from}`, | ||
|  |         to, | ||
|  |         subject, | ||
|  |         text, | ||
|  |         html, | ||
|  |       }, | ||
|  |       (error, info) => { | ||
|  |         if (error) { | ||
|  |           console.error("SEND_INVITATION_NOTIFICATION_ERROR", to, error); | ||
|  |           return reject(error.message); | ||
|  |         } | ||
|  |         return resolve(info); | ||
|  |       } | ||
|  |     ); | ||
|  |   }); | ||
|  | 
 | ||
|  | export default sendEmail; |