mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-08-28 19:48:01 +08:00
feat: add COPYRIGHT (#183)
This commit is contained in:
@@ -5,6 +5,8 @@
|
|||||||
- `ENABLE_USER_CREATE_EMAIL` 是否允许用户创建邮件
|
- `ENABLE_USER_CREATE_EMAIL` 是否允许用户创建邮件
|
||||||
- 允许 admin 创建无前缀的邮件
|
- 允许 admin 创建无前缀的邮件
|
||||||
- 添加 `SMTP proxy server`,支持 SMTP 发送邮件
|
- 添加 `SMTP proxy server`,支持 SMTP 发送邮件
|
||||||
|
- 修复某些情况浏览器无法加载 `wasm` 时使用 js 解析邮件
|
||||||
|
- 页脚添加 `COPYRIGHT`
|
||||||
|
|
||||||
## v0.3.0
|
## v0.3.0
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { darkTheme, NGlobalStyle, zhCN } from 'naive-ui'
|
import { darkTheme, NGlobalStyle, zhCN } from 'naive-ui'
|
||||||
import { computed, onMounted } from 'vue'
|
import { computed, onMounted } from 'vue'
|
||||||
import { useDark, useToggle } from '@vueuse/core'
|
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
import { useGlobalState } from './store'
|
import { useGlobalState } from './store'
|
||||||
import { useIsMobile } from './utils/composables'
|
import { useIsMobile } from './utils/composables'
|
||||||
import Header from './views/Header.vue';
|
import Header from './views/Header.vue';
|
||||||
|
import Footer from './views/Footer.vue';
|
||||||
|
|
||||||
|
|
||||||
const { localeCache, isDark, loading } = useGlobalState()
|
const { localeCache, isDark, loading } = useGlobalState()
|
||||||
const theme = computed(() => isDark.value ? darkTheme : null)
|
const theme = computed(() => isDark.value ? darkTheme : null)
|
||||||
@@ -42,8 +43,11 @@ onMounted(async () => {
|
|||||||
<n-gi :span="isMobile ? 12 : 10">
|
<n-gi :span="isMobile ? 12 : 10">
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<n-space vertical>
|
<n-space vertical>
|
||||||
<Header />
|
<n-layout style="min-height: 80vh;">
|
||||||
<router-view></router-view>
|
<Header />
|
||||||
|
<router-view></router-view>
|
||||||
|
</n-layout>
|
||||||
|
<Footer />
|
||||||
</n-space>
|
</n-space>
|
||||||
</div>
|
</div>
|
||||||
</n-gi>
|
</n-gi>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ const apiFetch = async (path, options = {}) => {
|
|||||||
const getOpenSettings = async (message) => {
|
const getOpenSettings = async (message) => {
|
||||||
try {
|
try {
|
||||||
const res = await api.fetch("/open_api/settings");
|
const res = await api.fetch("/open_api/settings");
|
||||||
openSettings.value = {
|
Object.assign(openSettings.value, {
|
||||||
prefix: res["prefix"] || "",
|
prefix: res["prefix"] || "",
|
||||||
needAuth: res["needAuth"] || false,
|
needAuth: res["needAuth"] || false,
|
||||||
domains: res["domains"].map((domain) => {
|
domains: res["domains"].map((domain) => {
|
||||||
@@ -62,7 +62,8 @@ const getOpenSettings = async (message) => {
|
|||||||
enableUserCreateEmail: res["enableUserCreateEmail"] || false,
|
enableUserCreateEmail: res["enableUserCreateEmail"] || false,
|
||||||
enableUserDeleteEmail: res["enableUserDeleteEmail"] || false,
|
enableUserDeleteEmail: res["enableUserDeleteEmail"] || false,
|
||||||
enableAutoReply: res["enableAutoReply"] || false,
|
enableAutoReply: res["enableAutoReply"] || false,
|
||||||
};
|
copyright: res["copyright"] || openSettings.value.copyright,
|
||||||
|
});
|
||||||
if (openSettings.value.needAuth) {
|
if (openSettings.value.needAuth) {
|
||||||
showAuth.value = true;
|
showAuth.value = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ export const useGlobalState = createGlobalState(
|
|||||||
enableUserCreateEmail: false,
|
enableUserCreateEmail: false,
|
||||||
enableUserDeleteEmail: false,
|
enableUserDeleteEmail: false,
|
||||||
enableAutoReply: false,
|
enableAutoReply: false,
|
||||||
domains: []
|
domains: [],
|
||||||
|
copyright: 'Dream Hunter',
|
||||||
})
|
})
|
||||||
const settings = ref({
|
const settings = ref({
|
||||||
fetched: false,
|
fetched: false,
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<script setup>
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
|
import { useGlobalState } from '../store'
|
||||||
|
const { localeCache, openSettings } = useGlobalState()
|
||||||
|
|
||||||
|
|
||||||
|
const { t } = useI18n({
|
||||||
|
locale: localeCache.value || 'zh',
|
||||||
|
messages: {
|
||||||
|
en: {
|
||||||
|
copyright: "Copyright"
|
||||||
|
},
|
||||||
|
zh: {
|
||||||
|
copyright: "版权所有"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<n-divider class="footer-divider" />
|
||||||
|
<div style="text-align: center; padding: 20px">
|
||||||
|
<n-text depth="3">
|
||||||
|
{{ t('copyright') }} © 2023-{{ new Date().getFullYear() }} {{ openSettings.copyright }}
|
||||||
|
</n-text>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.footer-divider {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 var(--x-padding);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -79,6 +79,8 @@ ENABLE_USER_CREATE_EMAIL = true
|
|||||||
ENABLE_USER_DELETE_EMAIL = true
|
ENABLE_USER_DELETE_EMAIL = true
|
||||||
# Allow automatic replies to emails
|
# Allow automatic replies to emails
|
||||||
ENABLE_AUTO_REPLY = false
|
ENABLE_AUTO_REPLY = false
|
||||||
|
# Footer text
|
||||||
|
# COPYRIGHT = "Dream Hunter"
|
||||||
# default send balance, if not set, it will be 0
|
# default send balance, if not set, it will be 0
|
||||||
# DEFAULT_SEND_BALANCE = 1
|
# DEFAULT_SEND_BALANCE = 1
|
||||||
# dkim config
|
# dkim config
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ ENABLE_USER_CREATE_EMAIL = true
|
|||||||
ENABLE_USER_DELETE_EMAIL = true
|
ENABLE_USER_DELETE_EMAIL = true
|
||||||
# 允许自动回复邮件
|
# 允许自动回复邮件
|
||||||
ENABLE_AUTO_REPLY = false
|
ENABLE_AUTO_REPLY = false
|
||||||
|
# 前端界面页脚文本
|
||||||
|
# COPYRIGHT = "Dream Hunter"
|
||||||
# 默认发送邮件余额,如果不设置,将为 0
|
# 默认发送邮件余额,如果不设置,将为 0
|
||||||
# DEFAULT_SEND_BALANCE = 1
|
# DEFAULT_SEND_BALANCE = 1
|
||||||
# dkim config
|
# dkim config
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ api.get('/open_api/settings', async (c) => {
|
|||||||
"enableUserCreateEmail": getBooleanValue(c.env.ENABLE_USER_CREATE_EMAIL),
|
"enableUserCreateEmail": getBooleanValue(c.env.ENABLE_USER_CREATE_EMAIL),
|
||||||
"enableUserDeleteEmail": getBooleanValue(c.env.ENABLE_USER_DELETE_EMAIL),
|
"enableUserDeleteEmail": getBooleanValue(c.env.ENABLE_USER_DELETE_EMAIL),
|
||||||
"enableAutoReply": getBooleanValue(c.env.ENABLE_AUTO_REPLY),
|
"enableAutoReply": getBooleanValue(c.env.ENABLE_AUTO_REPLY),
|
||||||
|
"copyright": c.env.COPYRIGHT,
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ ENABLE_USER_CREATE_EMAIL = true
|
|||||||
ENABLE_USER_DELETE_EMAIL = true
|
ENABLE_USER_DELETE_EMAIL = true
|
||||||
# Allow automatic replies to emails
|
# Allow automatic replies to emails
|
||||||
ENABLE_AUTO_REPLY = false
|
ENABLE_AUTO_REPLY = false
|
||||||
|
# Footer text
|
||||||
|
# COPYRIGHT = "Dream Hunter"
|
||||||
# default send balance, if not set, it will be 0
|
# default send balance, if not set, it will be 0
|
||||||
# DEFAULT_SEND_BALANCE = 1
|
# DEFAULT_SEND_BALANCE = 1
|
||||||
# dkim config
|
# dkim config
|
||||||
|
|||||||
Reference in New Issue
Block a user