Complete mail signal automation with Telegram notifications and content analysis
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { NextResponse } from 'next/server';
|
||||
import { prisma } from '@/lib/prisma';
|
||||
import { getLatestEmail } from '@/lib/mail';
|
||||
import { sendTelegramNotification } from '@/lib/notifications';
|
||||
|
||||
// Bu kısım normalde .env içinde olmalı
|
||||
const WEBHOOK_SECRET = 'besiktasK1903*';
|
||||
@@ -44,35 +45,47 @@ export async function POST(request: Request) {
|
||||
|
||||
// 3. İçerik Analizi (BMW, Penti vb.)
|
||||
let processed = false;
|
||||
let extraInfo = "";
|
||||
const content = (mailData.subject + " " + mailData.text).toLowerCase();
|
||||
|
||||
if (content.includes("bmw") || content.includes("tamir")) {
|
||||
console.log("🚗 BMW/Tamir içerikli mail tespit edildi!");
|
||||
// Burada bildirim fırlatılacak
|
||||
console.log("🚗 [Signal] BMW/Tamir içerikli mail tespit edildi!");
|
||||
extraInfo = "🚗 BMW/Tamir İlgili İçerik";
|
||||
processed = true;
|
||||
}
|
||||
|
||||
if (content.includes("penti") || content.includes("sipariş")) {
|
||||
console.log("🛍️ Penti/Sipariş içerikli mail tespit edildi!");
|
||||
console.log("🛍️ [Signal] Penti/Sipariş içerikli mail tespit edildi!");
|
||||
extraInfo = "🛍️ Penti/Sipariş İlgili İçerik";
|
||||
processed = true;
|
||||
}
|
||||
|
||||
// 4. Bildirim Logu
|
||||
// 4. Bildirim Gönder (Telegram)
|
||||
const notificationResult = await sendTelegramNotification(
|
||||
mapping.userId,
|
||||
to,
|
||||
mailData.from,
|
||||
mailData.subject,
|
||||
extraInfo
|
||||
);
|
||||
|
||||
// 5. Bildirim Logu
|
||||
await prisma.notificationLog.create({
|
||||
data: {
|
||||
mailbox: to,
|
||||
sender: mailData.from,
|
||||
subject: mailData.subject,
|
||||
status: processed ? "SENT" : "SKIPPED",
|
||||
status: notificationResult.status,
|
||||
userId: mapping.userId,
|
||||
error: processed ? null : "Kritik anahtar kelime bulunamadı"
|
||||
error: notificationResult.error || (processed ? null : "Anahtar kelime eşleşmedi")
|
||||
}
|
||||
});
|
||||
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
processed,
|
||||
subject: mailData.subject
|
||||
notification: notificationResult.status,
|
||||
subject: mailData.subject
|
||||
});
|
||||
|
||||
} catch (error: any) {
|
||||
|
||||
Reference in New Issue
Block a user