feat: Enhance email domain configuration and management

This commit is contained in:
beilunyang
2024-12-28 01:34:34 +08:00
parent 6420cd7570
commit 45a13d0c20
10 changed files with 68 additions and 45 deletions

View File

@@ -1,20 +1,13 @@
import { EMAIL_CONFIG } from "@/config"
import { getRequestContext } from "@cloudflare/next-on-pages"
import { NextResponse } from "next/server"
export const runtime = "edge"
export async function GET() {
try {
const domains = EMAIL_CONFIG.DOMAINS
const domainString = await getRequestContext().env.SITE_CONFIG.get("EMAIL_DOMAINS")
if (domains.length === 0) {
return NextResponse.json(
{ error: "无效的域名列表" },
{ status: 400 }
)
}
return NextResponse.json({ domains })
return NextResponse.json({ domains: domainString ? domainString.split(',') : ["moemail.app"] })
} catch (error) {
console.error('Failed to fetch domains:', error)
return NextResponse.json(

View File

@@ -6,6 +6,7 @@ import { emails } from "@/lib/schema"
import { eq, and, gt, sql } from "drizzle-orm"
import { EXPIRY_OPTIONS } from "@/types/email"
import { EMAIL_CONFIG } from "@/config"
import { getRequestContext } from "@cloudflare/next-on-pages"
export const runtime = "edge"
@@ -14,7 +15,6 @@ export async function POST(request: Request) {
const session = await auth()
try {
// Check current number of active emails for user
const activeEmailsCount = await db
.select({ count: sql<number>`count(*)` })
.from(emails)
@@ -45,7 +45,10 @@ export async function POST(request: Request) {
)
}
if (!EMAIL_CONFIG.DOMAINS.includes(domain)) {
const domainString = await getRequestContext().env.SITE_CONFIG.get("EMAIL_DOMAINS")
const domains = domainString ? domainString.split(',') : ["moemail.app"]
if (!domains || !domains.includes(domain)) {
return NextResponse.json(
{ error: "无效的域名" },
{ status: 400 }