const Mail = use('Mail'); const Env = use('Env'); const Logger = use('Logger') const from = Env.get('MAIL_FROM', 'admin@localhost.com'); const baseUrl = Env.get('APP_URL', 'http://localhost:3333'); const emailEnabled = !!Env.get('MAIL_CONNECTION', false); class EmailUtils { static async sendTestEmail(user) { const to = user.email; try { await Mail.send( ['emails.test-settings', 'emails.test-settings-text'], {user, baseUrl}, (message) => { message.from(from).to(to).subject('Seepur | Email Settings Test'); }); return true; } catch (e) { Logger.error(e); return false; } } static async sendResetPassword( user, code) { // TODO: Make a text version of this email if (!emailEnabled) return true; const to = user.email; const link = { href: `${appUrl}/password/reset/${code}`, text: 'Reset your password' }; Logger.info(`Sending test email to ${user.email}`); try { await Mail.send( 'emails.reset-password', {user, code, link, baseUrl}, (message) => { message.from(from).to(to).subject('Reset Password'); }); return true; } catch (e) { Logger.error(e); return false; } } static async sendWelcomeEmail(user) { if (!emailEnabled) return true; const to = user.email; Logger.info(`Sending welcome email to:${to} from:${from}`); try { await Mail.send( ['emails.welcome', 'emails.welcome-text'], {user, baseUrl}, (message) => { message.from(from).to(to).subject('Welcome to your Seepur'); }); return true; } catch (e) { Logger.error(e); return false; } } } module.exports = EmailUtils;