first commit
This commit is contained in:
96
dist/mail/mail.service.js
vendored
Normal file
96
dist/mail/mail.service.js
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MailService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const nodemailer = require("nodemailer");
|
||||
const config_1 = require("@nestjs/config");
|
||||
const path = require("path");
|
||||
let MailService = class MailService {
|
||||
constructor(configService) {
|
||||
this.configService = configService;
|
||||
this.transporter = nodemailer.createTransport({
|
||||
host: this.configService.get('SMTP_HOST'),
|
||||
port: this.configService.get('SMTP_PORT'),
|
||||
secure: this.configService.get('SMTP_SECURE') === 'true',
|
||||
auth: {
|
||||
user: this.configService.get('SMTP_USER'),
|
||||
pass: this.configService.get('SMTP_PASS'),
|
||||
},
|
||||
});
|
||||
}
|
||||
async sendTicket(email, name, ticketId, eventName, qrCodeBuffer) {
|
||||
const logoPath = path.join(process.cwd(), 'dist/assets/atiw-out-logo.svg');
|
||||
const firstName = name.split(' ')[0];
|
||||
await this.transporter.sendMail({
|
||||
from: this.configService.get('SMTP_FROM') || '"Event Team" <noreply@example.com>',
|
||||
to: email,
|
||||
subject: `Dein Ticket fürs ATIW OUT!`,
|
||||
html: `
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
body { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: #f4f4f5; margin: 0; padding: 0; }
|
||||
.container { max-width: 600px; margin: 32px auto; background-color: #ffffff; border-radius: 8px; overflow: hidden; border: 1px solid rgba(0, 0, 0, 0.2); padding: 32px; }
|
||||
.header { background-color: #ffffff; text-align: center; }
|
||||
.logo { height: 150px;}
|
||||
.content {text-align: center; color: #333333; }
|
||||
.greeting { font-size: 32px; color: #18181b; }
|
||||
.text { font-size: 16px; line-height: 1.5; color: #52525b;}
|
||||
.qr-container { background-color: #f4f4f5; padding: 24px; border-radius: 12px; display: inline-block; margin: 32px 0px; }
|
||||
.footer { background-color: #fafafa; padding: 24px; text-align: center; font-size: 14px; color: #a1a1aa; border-top: 1px solid #e4e4e7; }
|
||||
.highlight { color: #2563eb; font-weight: 600; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<img src="cid:logo" alt="Logo" class="logo" />
|
||||
</div>
|
||||
<div class="content">
|
||||
<h2 class="greeting">Moin Max,</h2>
|
||||
<p class="text">Hier ist dein Ticket für das <strong>ATIW OUT</strong>!</p>
|
||||
<p class="text">Zeig diesen QR Code einfach am <strong>09.12.</strong> am Eingang vor.</p>
|
||||
|
||||
<div class="qr-container">
|
||||
<img src="cid:qrcode" width="200" height="200" alt="Dein Ticket QR Code" style="display: block;"/>
|
||||
</div>
|
||||
|
||||
<p class="text">Wir wünschen dir viel Spaß!</p>
|
||||
<p class="text">~FI231 & FS231</p>
|
||||
<p class="text" style="margin-top: 32px;">Bei Fragen oder Problemen komm bitte<br>zum Klassenraum <strong>E.07</strong> und frag nach <strong>Jason</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
`,
|
||||
attachments: [
|
||||
{
|
||||
filename: 'qrcode.png',
|
||||
content: qrCodeBuffer,
|
||||
cid: 'qrcode',
|
||||
},
|
||||
{
|
||||
filename: 'logo.svg',
|
||||
path: logoPath,
|
||||
cid: 'logo',
|
||||
},
|
||||
],
|
||||
});
|
||||
}
|
||||
};
|
||||
exports.MailService = MailService;
|
||||
exports.MailService = MailService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [config_1.ConfigService])
|
||||
], MailService);
|
||||
//# sourceMappingURL=mail.service.js.map
|
||||
Reference in New Issue
Block a user