refactor: remove manual external image loading

This commit is contained in:
dreamhunter2333
2026-07-04 16:03:07 +08:00
parent 148fb09754
commit acd9a8f099
8 changed files with 4 additions and 26 deletions

View File

@@ -10,7 +10,7 @@
### Features
- feat: |Frontend| 外观设置新增“自动加载外部图片”开关,关闭后邮件 HTML 中的外链图片默认以占位图显示,并可在单封邮件中手动加载issue #1073
- feat: |Frontend| 外观设置新增“自动加载外部图片”开关,关闭后邮件 HTML 中的外链图片默认以占位图显示issue #1073
### Bug Fixes

View File

@@ -10,7 +10,7 @@
### Features
- feat: |Frontend| Add an Appearance toggle for automatically loading external images; when disabled, HTML mail shows blocked-image placeholders by default with a per-mail manual load action (issue #1073)
- feat: |Frontend| Add an Appearance toggle for automatically loading external images; when disabled, HTML mail shows blocked-image placeholders by default (issue #1073)
### Bug Fixes

View File

@@ -1,5 +1,5 @@
<script setup>
import { computed, ref, watch } from "vue";
import { computed, ref } from "vue";
import { useScopedI18n } from '@/i18n/app'
import { CloudDownloadRound, ReplyFilled, ForwardFilled, FullscreenRound } from '@vicons/material'
import ShadowHtmlComponent from "./ShadowHtmlComponent.vue";
@@ -58,13 +58,7 @@ const showAttachments = ref(false);
const curAttachments = ref([]);
const attachmentLoding = ref(false);
const showFullscreen = ref(false);
const loadExternalImagesForCurrentMail = ref(false);
const shouldLoadExternalImages = computed(() => autoLoadExternalImages.value || loadExternalImagesForCurrentMail.value);
const mailHtmlContent = computed(() => applyExternalImagePolicy(props.mail.message, shouldLoadExternalImages.value));
watch(() => props.mail.id, () => {
loadExternalImagesForCurrentMail.value = false;
});
const mailHtmlContent = computed(() => applyExternalImagePolicy(props.mail.message, autoLoadExternalImages.value));
const handleDelete = () => {
props.onDelete();
@@ -158,10 +152,6 @@ const handleSaveToS3 = async (filename, blob) => {
{{ t('fullscreen') }}
</n-button>
<n-button v-if="!showTextMail && !shouldLoadExternalImages" size="small" tertiary type="info"
@click="loadExternalImagesForCurrentMail = true">
{{ t('loadExternalImages') }}
</n-button>
</n-space>
<!-- AI 提取信息 -->
@@ -180,10 +170,6 @@ const handleSaveToS3 = async (filename, blob) => {
style="height: 100vh;">
<n-drawer-content :title="mail.subject" closable>
<div class="fullscreen-mail-content" :class="{ 'dark-mode': isDark }">
<n-button v-if="!showTextMail && !shouldLoadExternalImages" size="small" tertiary type="info"
@click="loadExternalImagesForCurrentMail = true">
{{ t('loadExternalImages') }}
</n-button>
<pre v-if="showTextMail" class="mail-text">{{ mail.text }}</pre>
<iframe v-else-if="useIframeShowMail" :srcdoc="mailHtmlContent" class="mail-iframe">
</iframe>

View File

@@ -238,7 +238,6 @@ export const deMessages = {
"views.admin.AccountSettings.forward_address_required": "Eine Weiterleitungsadresse ist erforderlich",
"views.admin.AccountSettings.forward_placeholder": "forward@example.com",
"components.MailContentRenderer.fullscreen": "Vollbild",
"components.MailContentRenderer.loadExternalImages": "Externe Bilder laden",
"views.common.Login.generateName": "Zufälligen Namen erzeugen",
"views.admin.Telegram.globalMailPushList": "Globale Mail-Push-Chat-ID-Liste",
"views.common.Appearance.globalTabplacement": "Globale Tab-Position",

View File

@@ -238,7 +238,6 @@ export const esMessages = {
"views.admin.AccountSettings.forward_address_required": "La dirección de reenvío es obligatoria",
"views.admin.AccountSettings.forward_placeholder": "forward@example.com",
"components.MailContentRenderer.fullscreen": "Pantalla completa",
"components.MailContentRenderer.loadExternalImages": "Cargar imágenes externas",
"views.common.Login.generateName": "Generar nombre aleatorio",
"views.admin.Telegram.globalMailPushList": "Lista global de chat ID para envío de correos",
"views.common.Appearance.globalTabplacement": "Posición global de pestañas",

View File

@@ -238,7 +238,6 @@ export const jaMessages = {
"views.admin.AccountSettings.forward_address_required": "転送先アドレスは必須です",
"views.admin.AccountSettings.forward_placeholder": "forward@example.com",
"components.MailContentRenderer.fullscreen": "全画面",
"components.MailContentRenderer.loadExternalImages": "外部画像を読み込む",
"views.common.Login.generateName": "ランダム名を生成",
"views.admin.Telegram.globalMailPushList": "グローバルメール通知 Chat ID 一覧",
"views.common.Appearance.globalTabplacement": "全体タブ位置",

View File

@@ -238,7 +238,6 @@ export const ptBRMessages = {
"views.admin.AccountSettings.forward_address_required": "O endereço de encaminhamento é obrigatório",
"views.admin.AccountSettings.forward_placeholder": "forward@example.com",
"components.MailContentRenderer.fullscreen": "Tela cheia",
"components.MailContentRenderer.loadExternalImages": "Carregar imagens externas",
"views.common.Login.generateName": "Gerar nome aleatório",
"views.admin.Telegram.globalMailPushList": "Lista global de chat ID para envio de e-mails",
"views.common.Appearance.globalTabplacement": "Posição global das abas",

View File

@@ -186,10 +186,6 @@ export const MESSAGE_REGISTRY = {
"en": "Fullscreen",
"zh": "全屏"
},
"loadExternalImages": {
"en": "Load External Images",
"zh": "加载外部图片"
},
"reply": {
"en": "Reply",
"zh": "回复"