From 19e08942ed4d9696ba566c19d462d60b281c3e7e Mon Sep 17 00:00:00 2001 From: Johannes Zellner Date: Wed, 12 Mar 2025 15:05:46 +0100 Subject: [PATCH] Add mail relay settings --- .../src/components/MailRelaySettingsItem.vue | 194 ++++++++++++++++++ dashboard/src/models/MailModel.js | 11 + dashboard/src/views/EmailDomainView.vue | 3 + 3 files changed, 208 insertions(+) create mode 100644 dashboard/src/components/MailRelaySettingsItem.vue diff --git a/dashboard/src/components/MailRelaySettingsItem.vue b/dashboard/src/components/MailRelaySettingsItem.vue new file mode 100644 index 000000000..4c61764f9 --- /dev/null +++ b/dashboard/src/components/MailRelaySettingsItem.vue @@ -0,0 +1,194 @@ + + + diff --git a/dashboard/src/models/MailModel.js b/dashboard/src/models/MailModel.js index efdb55fc0..3c9693bdd 100644 --- a/dashboard/src/models/MailModel.js +++ b/dashboard/src/models/MailModel.js @@ -314,6 +314,17 @@ function create() { if (result.status !== 200) return [result]; return [null, result.body.eventlogs]; }, + async setMailRelay(domain, data) { + let result; + try { + result = await fetcher.post(`${API_ORIGIN}/api/v1/mail/${domain}/relay`, data, { access_token: accessToken }); + } catch (e) { + return [e]; + } + + if (result.status !== 202) return [result]; + return [null]; + }, }; } diff --git a/dashboard/src/views/EmailDomainView.vue b/dashboard/src/views/EmailDomainView.vue index 0d1130135..602ab31fc 100644 --- a/dashboard/src/views/EmailDomainView.vue +++ b/dashboard/src/views/EmailDomainView.vue @@ -9,6 +9,7 @@ import { Button, Checkbox, InputDialog, Dialog, FormGroup, Switch } from 'pankow import Section from '../components/Section.vue'; import SettingsItem from '../components/SettingsItem.vue'; import CatchAllSettingsItem from '../components/CatchAllSettingsItem.vue'; +import MailRelaySettingsItem from '../components/MailRelaySettingsItem.vue'; import MailDomainStatus from '../components/MailDomainStatus.vue'; import DashboardModel from '../models/DashboardModel.js'; import DomainsModel from '../models/DomainsModel.js'; @@ -245,6 +246,8 @@ onMounted(async () => { + +