feat: 支持 Cloudflare Temp Email 固定子域

This commit is contained in:
qqqasdwx
2026-05-23 10:15:13 +00:00
parent 5f73c505a0
commit 7fe46cee31
18 changed files with 424 additions and 27 deletions
+23 -3
View File
@@ -371,6 +371,7 @@ const {
} = self.LuckMailUtils;
const {
DEFAULT_MAIL_PAGE_SIZE: CLOUDFLARE_TEMP_EMAIL_DEFAULT_PAGE_SIZE,
buildCloudflareTempEmailEffectiveDomain,
buildCloudflareTempEmailHeaders,
getCloudflareTempEmailAddressFromResponse,
joinCloudflareTempEmailUrl,
@@ -379,6 +380,7 @@ const {
normalizeCloudflareTempEmailDomain,
normalizeCloudflareTempEmailDomains,
normalizeCloudflareTempEmailMailApiMessages,
normalizeCloudflareTempEmailSubdomainPrefix,
} = self.CloudflareTempEmailUtils;
const {
DEFAULT_MAIL_PAGE_SIZE: CLOUD_MAIL_DEFAULT_PAGE_SIZE,
@@ -1428,6 +1430,8 @@ const PERSISTED_SETTING_DEFAULTS = {
cloudflareTempEmailLookupMode: DEFAULT_CLOUDFLARE_TEMP_EMAIL_LOOKUP_MODE,
cloudflareTempEmailReceiveMailbox: '',
cloudflareTempEmailUseRandomSubdomain: false,
cloudflareTempEmailUseFixedSubdomain: false,
cloudflareTempEmailSubdomainPrefix: '',
cloudflareTempEmailDomain: '',
cloudflareTempEmailDomains: [],
cloudMailBaseUrl: '',
@@ -2899,16 +2903,25 @@ function getHotmailServiceSettings(state = {}) {
}
function getCloudflareTempEmailConfig(state = {}) {
return {
const useFixedSubdomain = Boolean(state.cloudflareTempEmailUseFixedSubdomain);
const subdomainPrefix = normalizeCloudflareTempEmailSubdomainPrefix(state.cloudflareTempEmailSubdomainPrefix);
const domain = normalizeCloudflareTempEmailDomain(state.cloudflareTempEmailDomain);
const config = {
baseUrl: normalizeCloudflareTempEmailBaseUrl(state.cloudflareTempEmailBaseUrl),
adminAuth: String(state.cloudflareTempEmailAdminAuth || ''),
customAuth: String(state.cloudflareTempEmailCustomAuth || ''),
lookupMode: normalizeCloudflareTempEmailLookupMode(state.cloudflareTempEmailLookupMode),
receiveMailbox: normalizeCloudflareTempEmailReceiveMailbox(state.cloudflareTempEmailReceiveMailbox),
useRandomSubdomain: Boolean(state.cloudflareTempEmailUseRandomSubdomain),
domain: normalizeCloudflareTempEmailDomain(state.cloudflareTempEmailDomain),
useRandomSubdomain: useFixedSubdomain ? false : Boolean(state.cloudflareTempEmailUseRandomSubdomain),
useFixedSubdomain,
subdomainPrefix,
domain,
domains: normalizeCloudflareTempEmailDomains(state.cloudflareTempEmailDomains),
};
return {
...config,
effectiveDomain: buildCloudflareTempEmailEffectiveDomain(config),
};
}
function normalizeCloudflareTempEmailReceiveMailbox(value = '') {
@@ -3402,6 +3415,7 @@ function normalizePersistentSettingValue(key, value) {
case 'autoDeleteUsedIcloudAlias':
case 'accountRunHistoryTextEnabled':
case 'cloudflareTempEmailUseRandomSubdomain':
case 'cloudflareTempEmailUseFixedSubdomain':
return Boolean(value);
case 'icloudHostPreference':
return normalizeIcloudHost(value) || 'auto';
@@ -3455,6 +3469,8 @@ function normalizePersistentSettingValue(key, value) {
return normalizeCloudflareTempEmailLookupMode(value);
case 'cloudflareTempEmailReceiveMailbox':
return normalizeCloudflareTempEmailReceiveMailbox(value);
case 'cloudflareTempEmailSubdomainPrefix':
return normalizeCloudflareTempEmailSubdomainPrefix(value);
case 'cloudflareTempEmailDomain':
return normalizeCloudflareTempEmailDomain(value);
case 'cloudflareTempEmailDomains':
@@ -3613,6 +3629,9 @@ function buildPersistentSettingsPayload(input = {}, options = {}) {
}
payload.cloudflareTempEmailDomains = domains;
}
if (payload.cloudflareTempEmailUseFixedSubdomain) {
payload.cloudflareTempEmailUseRandomSubdomain = false;
}
if (payload.cloudMailDomains) {
const domains = normalizeCloudMailDomains(payload.cloudMailDomains);
if (payload.cloudMailDomain && !domains.includes(payload.cloudMailDomain)) {
@@ -11840,6 +11859,7 @@ function getCurrentPayPalAccount(state = null) {
const generatedEmailHelpers = self.MultiPageGeneratedEmailHelpers?.createGeneratedEmailHelpers({
addLog,
buildGeneratedAliasEmail,
buildCloudflareTempEmailEffectiveDomain,
buildCloudflareTempEmailHeaders,
CLOUDFLARE_TEMP_EMAIL_GENERATOR,
CUSTOM_EMAIL_POOL_GENERATOR,