mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-07-10 23:13:12 +08:00
feat: add TITLE in worker for custom website title (#276)
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
<!-- markdownlint-disable-file MD004 MD024 MD034 MD036 -->
|
<!-- markdownlint-disable-file MD004 MD024 MD034 MD036 -->
|
||||||
# CHANGE LOG
|
# CHANGE LOG
|
||||||
|
|
||||||
|
## main branch
|
||||||
|
|
||||||
|
- worker 配置文件添加 `TITLE = "Custom Title"`, 可自定义网站标题
|
||||||
|
|
||||||
## v0.4.5
|
## v0.4.5
|
||||||
|
|
||||||
- UI lazy load 懒加载
|
- UI lazy load 懒加载
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
"deploy": "npm run build && wrangler pages deploy ./dist --branch production"
|
"deploy": "npm run build && wrangler pages deploy ./dist --branch production"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@unhead/vue": "^1.9.11",
|
||||||
"@vicons/material": "^0.12.0",
|
"@vicons/material": "^0.12.0",
|
||||||
"@vueuse/core": "^10.9.0",
|
"@vueuse/core": "^10.9.0",
|
||||||
"@wangeditor/editor": "^5.1.23",
|
"@wangeditor/editor": "^5.1.23",
|
||||||
|
|||||||
60
frontend/pnpm-lock.yaml
generated
60
frontend/pnpm-lock.yaml
generated
@@ -8,6 +8,9 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@unhead/vue':
|
||||||
|
specifier: ^1.9.11
|
||||||
|
version: 1.9.11(vue@3.4.27(typescript@5.4.5))
|
||||||
'@vicons/material':
|
'@vicons/material':
|
||||||
specifier: ^0.12.0
|
specifier: ^0.12.0
|
||||||
version: 0.12.0
|
version: 0.12.0
|
||||||
@@ -1296,6 +1299,20 @@ packages:
|
|||||||
'@types/web-bluetooth@0.0.20':
|
'@types/web-bluetooth@0.0.20':
|
||||||
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
||||||
|
|
||||||
|
'@unhead/dom@1.9.11':
|
||||||
|
resolution: {integrity: sha512-mg8DuqPcm+JWSN3SIPa9lbNtFhdQ1M7K2TJe8icI4bK56GSj4eUgJZrbphZAUWPAUAS1UFyFFGJG7N9Y31LKOw==}
|
||||||
|
|
||||||
|
'@unhead/schema@1.9.11':
|
||||||
|
resolution: {integrity: sha512-hvIGl20wpQQImyHvAMv2tPgccKLGEwMn8KYQdImUkiCLdQw2Jw9jH7syE/u+TPSqwOQIwsvPja5sK+SChL1KNw==}
|
||||||
|
|
||||||
|
'@unhead/shared@1.9.11':
|
||||||
|
resolution: {integrity: sha512-jgpQ/cPfXzQA7c4F4PKyPXxS9POXAMrJ0QUBMTQYNOW6t6KlljjK89n6nUEmGuiyO4jdJGooZNVS1fXVaKIgYQ==}
|
||||||
|
|
||||||
|
'@unhead/vue@1.9.11':
|
||||||
|
resolution: {integrity: sha512-7gCEJGTSnpLcHGQ2j/IsBTz2nIUWbTlqUbbNiwPFgEksJbh8Pz8WduTvLC4ANlnnFy6PDG7yrZcaKJMOrNruoQ==}
|
||||||
|
peerDependencies:
|
||||||
|
vue: '>=2.7 || >=3'
|
||||||
|
|
||||||
'@uppy/companion-client@2.2.2':
|
'@uppy/companion-client@2.2.2':
|
||||||
resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==}
|
resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==}
|
||||||
|
|
||||||
@@ -1887,6 +1904,7 @@ packages:
|
|||||||
|
|
||||||
glob@7.2.3:
|
glob@7.2.3:
|
||||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||||
|
deprecated: Glob versions prior to v9 are no longer supported
|
||||||
|
|
||||||
globals@11.12.0:
|
globals@11.12.0:
|
||||||
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
|
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
|
||||||
@@ -1939,6 +1957,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==}
|
resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
|
|
||||||
|
hookable@5.5.3:
|
||||||
|
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
|
||||||
|
|
||||||
html-void-elements@2.0.1:
|
html-void-elements@2.0.1:
|
||||||
resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
|
resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
|
||||||
|
|
||||||
@@ -2587,6 +2608,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==}
|
resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==}
|
||||||
engines: {node: '>=14.0'}
|
engines: {node: '>=14.0'}
|
||||||
|
|
||||||
|
unhead@1.9.11:
|
||||||
|
resolution: {integrity: sha512-AoX0hOBrpYM5ctX3rNPaKeHkhybIMrrirb+NlonRBMHy/YkodO5m6mretYEe17bu9mQoeU2rnEWRm36MXtG4OQ==}
|
||||||
|
|
||||||
unicode-canonical-property-names-ecmascript@2.0.0:
|
unicode-canonical-property-names-ecmascript@2.0.0:
|
||||||
resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
|
resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -2876,6 +2900,9 @@ packages:
|
|||||||
youch@3.3.3:
|
youch@3.3.3:
|
||||||
resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==}
|
resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==}
|
||||||
|
|
||||||
|
zhead@2.2.4:
|
||||||
|
resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==}
|
||||||
|
|
||||||
zod@3.23.8:
|
zod@3.23.8:
|
||||||
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
|
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
|
||||||
|
|
||||||
@@ -4018,6 +4045,28 @@ snapshots:
|
|||||||
|
|
||||||
'@types/web-bluetooth@0.0.20': {}
|
'@types/web-bluetooth@0.0.20': {}
|
||||||
|
|
||||||
|
'@unhead/dom@1.9.11':
|
||||||
|
dependencies:
|
||||||
|
'@unhead/schema': 1.9.11
|
||||||
|
'@unhead/shared': 1.9.11
|
||||||
|
|
||||||
|
'@unhead/schema@1.9.11':
|
||||||
|
dependencies:
|
||||||
|
hookable: 5.5.3
|
||||||
|
zhead: 2.2.4
|
||||||
|
|
||||||
|
'@unhead/shared@1.9.11':
|
||||||
|
dependencies:
|
||||||
|
'@unhead/schema': 1.9.11
|
||||||
|
|
||||||
|
'@unhead/vue@1.9.11(vue@3.4.27(typescript@5.4.5))':
|
||||||
|
dependencies:
|
||||||
|
'@unhead/schema': 1.9.11
|
||||||
|
'@unhead/shared': 1.9.11
|
||||||
|
hookable: 5.5.3
|
||||||
|
unhead: 1.9.11
|
||||||
|
vue: 3.4.27(typescript@5.4.5)
|
||||||
|
|
||||||
'@uppy/companion-client@2.2.2':
|
'@uppy/companion-client@2.2.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@uppy/utils': 4.1.3
|
'@uppy/utils': 4.1.3
|
||||||
@@ -4832,6 +4881,8 @@ snapshots:
|
|||||||
|
|
||||||
highlight.js@11.9.0: {}
|
highlight.js@11.9.0: {}
|
||||||
|
|
||||||
|
hookable@5.5.3: {}
|
||||||
|
|
||||||
html-void-elements@2.0.1: {}
|
html-void-elements@2.0.1: {}
|
||||||
|
|
||||||
i18next@20.6.1:
|
i18next@20.6.1:
|
||||||
@@ -5517,6 +5568,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@fastify/busboy': 2.1.1
|
'@fastify/busboy': 2.1.1
|
||||||
|
|
||||||
|
unhead@1.9.11:
|
||||||
|
dependencies:
|
||||||
|
'@unhead/dom': 1.9.11
|
||||||
|
'@unhead/schema': 1.9.11
|
||||||
|
'@unhead/shared': 1.9.11
|
||||||
|
hookable: 5.5.3
|
||||||
|
|
||||||
unicode-canonical-property-names-ecmascript@2.0.0: {}
|
unicode-canonical-property-names-ecmascript@2.0.0: {}
|
||||||
|
|
||||||
unicode-match-property-ecmascript@2.0.0:
|
unicode-match-property-ecmascript@2.0.0:
|
||||||
@@ -5888,4 +5946,6 @@ snapshots:
|
|||||||
mustache: 4.2.0
|
mustache: 4.2.0
|
||||||
stacktracey: 2.1.8
|
stacktracey: 2.1.8
|
||||||
|
|
||||||
|
zhead@2.2.4: {}
|
||||||
|
|
||||||
zod@3.23.8: {}
|
zod@3.23.8: {}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ const getOpenSettings = async (message) => {
|
|||||||
try {
|
try {
|
||||||
const res = await api.fetch("/open_api/settings");
|
const res = await api.fetch("/open_api/settings");
|
||||||
Object.assign(openSettings.value, {
|
Object.assign(openSettings.value, {
|
||||||
|
title: res["title"] || "",
|
||||||
prefix: res["prefix"] || "",
|
prefix: res["prefix"] || "",
|
||||||
needAuth: res["needAuth"] || false,
|
needAuth: res["needAuth"] || false,
|
||||||
domains: res["domains"].map((domain) => {
|
domains: res["domains"].map((domain) => {
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ onBeforeUnmount(() => {
|
|||||||
ID: {{ row.id }}
|
ID: {{ row.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ row.created_at }}
|
{{ `${row.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
FROM: {{ row.source }}
|
FROM: {{ row.source }}
|
||||||
@@ -247,7 +247,7 @@ onBeforeUnmount(() => {
|
|||||||
ID: {{ curMail.id }}
|
ID: {{ curMail.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ curMail.created_at }}
|
{{ `${curMail.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
FROM: {{ curMail.source }}
|
FROM: {{ curMail.source }}
|
||||||
@@ -320,7 +320,7 @@ onBeforeUnmount(() => {
|
|||||||
ID: {{ row.id }}
|
ID: {{ row.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ row.created_at }}
|
{{ `${row.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
FROM: {{ row.source }}
|
FROM: {{ row.source }}
|
||||||
@@ -342,7 +342,7 @@ onBeforeUnmount(() => {
|
|||||||
ID: {{ curMail.id }}
|
ID: {{ curMail.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ curMail.created_at }}
|
{{ `${curMail.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
FROM: {{ curMail.source }}
|
FROM: {{ curMail.source }}
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ onMounted(async () => {
|
|||||||
ID: {{ row.id }}
|
ID: {{ row.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ row.created_at }}
|
{{ `${row.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag v-if="showEMailFrom" type="info">
|
<n-tag v-if="showEMailFrom" type="info">
|
||||||
FROM: {{ row.address }}
|
FROM: {{ row.address }}
|
||||||
@@ -155,7 +155,7 @@ onMounted(async () => {
|
|||||||
ID: {{ curMail.id }}
|
ID: {{ curMail.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ curMail.created_at }}
|
{{ `${curMail.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
FROM: {{ curMail.address }}
|
FROM: {{ curMail.address }}
|
||||||
@@ -195,7 +195,7 @@ onMounted(async () => {
|
|||||||
ID: {{ row.id }}
|
ID: {{ row.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ row.created_at }}
|
{{ `${row.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag v-if="showEMailFrom" type="info">
|
<n-tag v-if="showEMailFrom" type="info">
|
||||||
FROM: {{ row.address }}
|
FROM: {{ row.address }}
|
||||||
@@ -217,7 +217,7 @@ onMounted(async () => {
|
|||||||
ID: {{ curMail.id }}
|
ID: {{ curMail.id }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
{{ curMail.created_at }}
|
{{ `${curMail.created_at} UTC` }}
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
FROM: {{ curMail.address }}
|
FROM: {{ curMail.address }}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import App from './App.vue'
|
|||||||
import { createI18n } from 'vue-i18n'
|
import { createI18n } from 'vue-i18n'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
import { registerSW } from 'virtual:pwa-register'
|
import { registerSW } from 'virtual:pwa-register'
|
||||||
|
import { createHead } from '@unhead/vue'
|
||||||
|
|
||||||
registerSW({ immediate: true })
|
registerSW({ immediate: true })
|
||||||
const i18n = createI18n({
|
const i18n = createI18n({
|
||||||
@@ -16,7 +17,9 @@ const i18n = createI18n({
|
|||||||
messages: {}
|
messages: {}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
const head = createHead()
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
app.use(i18n)
|
app.use(i18n)
|
||||||
app.use(router)
|
app.use(router)
|
||||||
|
app.use(head)
|
||||||
app.mount('#app')
|
app.mount('#app')
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ export const useGlobalState = createGlobalState(
|
|||||||
const toggleDark = useToggle(isDark)
|
const toggleDark = useToggle(isDark)
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const openSettings = ref({
|
const openSettings = ref({
|
||||||
|
title: '',
|
||||||
prefix: '',
|
prefix: '',
|
||||||
needAuth: false,
|
needAuth: false,
|
||||||
adminContact: '',
|
adminContact: '',
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, h, computed, onMounted } from 'vue'
|
import { ref, h, computed, onMounted } from 'vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
import { useHead } from '@unhead/vue'
|
||||||
import { useRoute, useRouter, RouterLink } from 'vue-router'
|
import { useRoute, useRouter, RouterLink } from 'vue-router'
|
||||||
import { useIsMobile } from '../utils/composables'
|
import { useIsMobile } from '../utils/composables'
|
||||||
import {
|
import {
|
||||||
@@ -15,7 +16,7 @@ const message = useMessage()
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
localeCache, toggleDark, isDark, isTelegram,
|
localeCache, toggleDark, isDark, isTelegram,
|
||||||
showAuth, adminAuth, auth, loading
|
showAuth, adminAuth, auth, loading, openSettings
|
||||||
} = useGlobalState()
|
} = useGlobalState()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
@@ -182,6 +183,13 @@ const menuOptions = computed(() => [
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
useHead({
|
||||||
|
title: () => openSettings.value.title || t('title'),
|
||||||
|
meta: [
|
||||||
|
{ name: "description", content: openSettings.value.description || t('title') },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await api.getOpenSettings(message);
|
await api.getOpenSettings(message);
|
||||||
});
|
});
|
||||||
@@ -191,7 +199,7 @@ onMounted(async () => {
|
|||||||
<div>
|
<div>
|
||||||
<n-page-header>
|
<n-page-header>
|
||||||
<template #title>
|
<template #title>
|
||||||
<h3>{{ t('title') }}</h3>
|
<h3>{{ openSettings.title || t('title') }}</h3>
|
||||||
</template>
|
</template>
|
||||||
<template #avatar>
|
<template #avatar>
|
||||||
<n-avatar style="margin-left: 10px;" src="/logo.png" />
|
<n-avatar style="margin-left: 10px;" src="/logo.png" />
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ node_compat = true
|
|||||||
# ]
|
# ]
|
||||||
|
|
||||||
[vars]
|
[vars]
|
||||||
|
# TITLE = "Custom Title" # The title of the site
|
||||||
PREFIX = "tmp" # The mailbox name prefix to be processed
|
PREFIX = "tmp" # The mailbox name prefix to be processed
|
||||||
# If you want your site to be private, uncomment below and change your password
|
# If you want your site to be private, uncomment below and change your password
|
||||||
# PASSWORDS = ["123", "456"]
|
# PASSWORDS = ["123", "456"]
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ node_compat = true
|
|||||||
# ]
|
# ]
|
||||||
|
|
||||||
[vars]
|
[vars]
|
||||||
|
# TITLE = "Custom Title" # 自定义网站标题
|
||||||
PREFIX = "tmp" # 要处理的邮箱名称前缀,不需要后缀可配置为空字符串
|
PREFIX = "tmp" # 要处理的邮箱名称前缀,不需要后缀可配置为空字符串
|
||||||
# 如果你想要你的网站私有,取消下面的注释,并修改密码
|
# 如果你想要你的网站私有,取消下面的注释,并修改密码
|
||||||
# PASSWORDS = ["123", "456"]
|
# PASSWORDS = ["123", "456"]
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ api.get('/open_api/settings', async (c) => {
|
|||||||
needAuth = !auth || !passwords.includes(auth);
|
needAuth = !auth || !passwords.includes(auth);
|
||||||
}
|
}
|
||||||
return c.json({
|
return c.json({
|
||||||
|
"title": c.env.TITLE,
|
||||||
"prefix": c.env.PREFIX,
|
"prefix": c.env.PREFIX,
|
||||||
"domains": getDomains(c),
|
"domains": getDomains(c),
|
||||||
"needAuth": needAuth,
|
"needAuth": needAuth,
|
||||||
|
|||||||
1
worker/src/types.d.ts
vendored
1
worker/src/types.d.ts
vendored
@@ -6,6 +6,7 @@ export type Bindings = {
|
|||||||
SEND_MAIL: any
|
SEND_MAIL: any
|
||||||
|
|
||||||
// config
|
// config
|
||||||
|
TITLE: string | undefined
|
||||||
PREFIX: string | undefined
|
PREFIX: string | undefined
|
||||||
DOMAINS: string | string[] | undefined
|
DOMAINS: string | string[] | undefined
|
||||||
PASSWORDS: string | string[] | undefined
|
PASSWORDS: string | string[] | undefined
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ node_compat = true
|
|||||||
# ]
|
# ]
|
||||||
|
|
||||||
[vars]
|
[vars]
|
||||||
|
# TITLE = "Custom Title" # custom title
|
||||||
PREFIX = "tmp"
|
PREFIX = "tmp"
|
||||||
# IF YOU WANT TO MAKE YOUR SITE PRIVATE, UNCOMMENT THE FOLLOWING LINES
|
# IF YOU WANT TO MAKE YOUR SITE PRIVATE, UNCOMMENT THE FOLLOWING LINES
|
||||||
# PASSWORDS = ["123", "456"]
|
# PASSWORDS = ["123", "456"]
|
||||||
|
|||||||
Reference in New Issue
Block a user