diff --git a/app/api/emails/[id]/route.ts b/app/api/emails/[id]/route.ts index 29e70bf..0725745 100644 --- a/app/api/emails/[id]/route.ts +++ b/app/api/emails/[id]/route.ts @@ -1,7 +1,7 @@ import { NextResponse } from "next/server" import { createDb } from "@/lib/db" import { emails, messages } from "@/lib/schema" -import { eq, and, lt, or, sql, ne } from "drizzle-orm" +import { eq, and, lt, or, sql, ne, isNull } from "drizzle-orm" import { encodeCursor, decodeCursor } from "@/lib/cursor" import { getUserId } from "@/lib/apiKey" import { checkBasicSendPermission } from "@/lib/send-permissions" @@ -87,7 +87,12 @@ export async function GET( const baseConditions = and( eq(messages.emailId, id), - messageType === 'sent' ? eq(messages.type, "sent") : ne(messages.type, "sent") + messageType === 'sent' + ? eq(messages.type, "sent") + : or( + ne(messages.type, "sent"), + isNull(messages.type) + ) ) const totalResult = await db.select({ count: sql`count(*)` }) diff --git a/workers/email-receiver.ts b/workers/email-receiver.ts index b8d3ffe..26c6f72 100644 --- a/workers/email-receiver.ts +++ b/workers/email-receiver.ts @@ -29,6 +29,7 @@ const handleEmail = async (message: ForwardableEmailMessage, env: Env) => { subject: parsedMessage.subject || '(无主题)', content: parsedMessage.text || '', html: parsedMessage.html || '', + type: 'received', }).returning().get() const webhook = await db.query.webhooks.findFirst({