Alpha Release 0.4.0 #131

Manually merged
niggl merged 51 commits from dev into main 2021-01-30 15:26:51 +00:00
Showing only changes of commit 637975305f - Show all commits

View File

@ -1,7 +1,44 @@
import nodemailer from 'nodemailer';
import { MailOptions } from 'nodemailer/lib/json-transport';
import Mail from 'nodemailer/lib/mailer';
import { config } from './config';
import { MailServerConfigError } from './errors/MailErrors';
import { User } from './models/entities/User';
/**
* This class is responsible for all things mail sending.
*/
export class Mailer {
private transport: Mail;
constructor() {
this.transport = nodemailer.createTransport({
host: config.mail_server,
port: config.mail_port,
auth: {
user: config.mail_user,
pass: config.mail_password
}
});
this.transport.verify(function (error, success) {
if (error) {
throw new MailServerConfigError();
}
});
}
public async sendResetMail(user: User, token: String) {
const reset_link = `${config.app_url}/reset/${token}`
const mail: MailOptions = {
to: user.email,
subject: "LfK! Password Reset",
html: `<b>${reset_link}</b>`
};
await this.sendMail(mail);
}
public async sendMail(mail: MailOptions) {
mail.from = config.mail_from;
await this.transport.sendMail(mail);
}
}