Complete mail signal automation with Telegram notifications and content analysis

This commit is contained in:
AyrisAI
2026-05-14 18:42:03 +03:00
parent f71da406d5
commit 00894751bd
9 changed files with 179 additions and 9 deletions

View File

@@ -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) {