第三方支持
This commit is contained in:
@@ -130,7 +130,7 @@
|
||||
<div class="data-row">
|
||||
<span class="data-label">邮箱服务</span>
|
||||
<select id="select-mail-provider" class="data-select">
|
||||
<option value="hotmail-api">Hotmail(微软 Graph)</option>
|
||||
<option value="hotmail-api">Hotmail(第三方邮件 API)</option>
|
||||
<option value="163">163 邮箱 (mail.163.com)</option>
|
||||
<option value="163-vip">163 VIP 邮箱 (webmail.vip.163.com)</option>
|
||||
<option value="qq">QQ 邮箱 (wx.mail.qq.com)</option>
|
||||
@@ -205,7 +205,7 @@
|
||||
<div class="section-mini-header">
|
||||
<div class="section-mini-copy">
|
||||
<span class="section-label">Hotmail 账号池</span>
|
||||
<span class="section-hint">每轮自动分配一个可用账号</span>
|
||||
<span class="section-hint">先配置 API,再维护账号池并校验</span>
|
||||
</div>
|
||||
<div class="section-mini-actions">
|
||||
<button id="btn-clear-used-hotmail-accounts" class="btn btn-ghost btn-xs" type="button">清空已用</button>
|
||||
@@ -213,6 +213,22 @@
|
||||
<button id="btn-toggle-hotmail-list" class="btn btn-ghost btn-xs" type="button" aria-expanded="false">展开列表</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">API 地址</span>
|
||||
<input type="text" id="input-hotmail-api-url" class="data-input mono" placeholder="https://apple.882263.xyz/api/mail-new" />
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">响应类型</span>
|
||||
<input type="text" id="input-hotmail-api-response-type" class="data-input mono" placeholder="json;留空则不传 response_type" />
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">收件箱参数</span>
|
||||
<input type="text" id="input-hotmail-api-inbox-mailbox" class="data-input mono" placeholder="INBOX" />
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">垃圾箱参数</span>
|
||||
<input type="text" id="input-hotmail-api-junk-mailbox" class="data-input mono" placeholder="Junk" />
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">邮箱</span>
|
||||
<input type="text" id="input-hotmail-email" class="data-input" placeholder="name@hotmail.com" />
|
||||
|
||||
+31
-5
@@ -60,6 +60,10 @@ const selectMailProvider = document.getElementById('select-mail-provider');
|
||||
const rowEmailGenerator = document.getElementById('row-email-generator');
|
||||
const selectEmailGenerator = document.getElementById('select-email-generator');
|
||||
const hotmailSection = document.getElementById('hotmail-section');
|
||||
const inputHotmailApiUrl = document.getElementById('input-hotmail-api-url');
|
||||
const inputHotmailApiResponseType = document.getElementById('input-hotmail-api-response-type');
|
||||
const inputHotmailApiInboxMailbox = document.getElementById('input-hotmail-api-inbox-mailbox');
|
||||
const inputHotmailApiJunkMailbox = document.getElementById('input-hotmail-api-junk-mailbox');
|
||||
const inputHotmailEmail = document.getElementById('input-hotmail-email');
|
||||
const inputHotmailClientId = document.getElementById('input-hotmail-client-id');
|
||||
const inputHotmailPassword = document.getElementById('input-hotmail-password');
|
||||
@@ -597,6 +601,10 @@ function collectSettingsPayload() {
|
||||
emailGenerator: selectEmailGenerator.value,
|
||||
inbucketHost: inputInbucketHost.value.trim(),
|
||||
inbucketMailbox: inputInbucketMailbox.value.trim(),
|
||||
hotmailApiUrl: inputHotmailApiUrl.value.trim(),
|
||||
hotmailApiResponseType: inputHotmailApiResponseType.value.trim(),
|
||||
hotmailApiInboxMailbox: inputHotmailApiInboxMailbox.value.trim(),
|
||||
hotmailApiJunkMailbox: inputHotmailApiJunkMailbox.value.trim(),
|
||||
cloudflareDomain: selectedCloudflareDomain,
|
||||
cloudflareDomains: domains,
|
||||
autoRunSkipFailures: inputAutoSkipFailures.checked,
|
||||
@@ -708,11 +716,15 @@ async function saveSettings(options = {}) {
|
||||
throw new Error(response.error);
|
||||
}
|
||||
|
||||
syncLatestState(payload);
|
||||
markSettingsDirty(false);
|
||||
updatePanelModeUI();
|
||||
updateMailProviderUI();
|
||||
updateButtonStates();
|
||||
if (response?.state) {
|
||||
applySettingsState(response.state);
|
||||
} else {
|
||||
syncLatestState(payload);
|
||||
markSettingsDirty(false);
|
||||
updatePanelModeUI();
|
||||
updateMailProviderUI();
|
||||
updateButtonStates();
|
||||
}
|
||||
if (!silent) {
|
||||
showToast('配置已保存', 'success', 1800);
|
||||
}
|
||||
@@ -838,6 +850,10 @@ function applySettingsState(state) {
|
||||
selectEmailGenerator.value = state?.emailGenerator || 'duck';
|
||||
inputInbucketHost.value = state?.inbucketHost || '';
|
||||
inputInbucketMailbox.value = state?.inbucketMailbox || '';
|
||||
inputHotmailApiUrl.value = state?.hotmailApiUrl || '';
|
||||
inputHotmailApiResponseType.value = state?.hotmailApiResponseType ?? '';
|
||||
inputHotmailApiInboxMailbox.value = state?.hotmailApiInboxMailbox || '';
|
||||
inputHotmailApiJunkMailbox.value = state?.hotmailApiJunkMailbox || '';
|
||||
renderCloudflareDomainOptions(state?.cloudflareDomain || '');
|
||||
setCloudflareDomainEditMode(false, { clearInput: true });
|
||||
inputAutoSkipFailures.checked = Boolean(state?.autoRunSkipFailures);
|
||||
@@ -2200,6 +2216,16 @@ inputVpsPassword.addEventListener('blur', () => {
|
||||
saveSettings({ silent: true }).catch(() => { });
|
||||
});
|
||||
|
||||
[inputHotmailApiUrl, inputHotmailApiResponseType, inputHotmailApiInboxMailbox, inputHotmailApiJunkMailbox].forEach((input) => {
|
||||
input?.addEventListener('input', () => {
|
||||
markSettingsDirty(true);
|
||||
scheduleSettingsAutoSave();
|
||||
});
|
||||
input?.addEventListener('blur', () => {
|
||||
saveSettings({ silent: true }).catch(() => { });
|
||||
});
|
||||
});
|
||||
|
||||
inputPassword.addEventListener('input', () => {
|
||||
markSettingsDirty(true);
|
||||
updateButtonStates();
|
||||
|
||||
Reference in New Issue
Block a user