diff --git a/front/src/components/modals/AddAccountModal.vue b/front/src/components/modals/AddAccountModal.vue index b060c9a..3d1f20d 100644 --- a/front/src/components/modals/AddAccountModal.vue +++ b/front/src/components/modals/AddAccountModal.vue @@ -11,35 +11,49 @@ const email = ref(""); const pwd = ref(""); const xoauth = ref(""); const xoauth2 = ref(""); -const host = ref(""); -const port = ref(993); +const imapHost = ref(""); +const imapPort = ref(993); +const smtpHost = ref(""); +const smtpPort = ref(465); const error = ref(""); const knownHosts = { "outlook.com": { - host: "outlook.office365.com", + imap: "outlook.office365.com", + smtp: "outlook.office365.com", }, "hotmail.com": { - host: "outlook.office365.com", + imap: "outlook.office365.com", + smtp: "outlook.office365.com", }, "live.com": { - host: "outlook.office365.com", + imap: "outlook.office365.com", + smtp: "outlook.office365.com", }, "zoho.com": { - host: "imap.zoho.eu", + imap: "imap.zoho.eu", + smtp: "smtp.zoho.eu", }, "yahoo.com": { - host: "imap.mail.yahoo.com", + imap: "imap.mail.yahoo.com", + smtp: "smtp.mail.yahoo.com", }, "icloud.com": { - host: "imap.mail.me.com", + imap: "imap.mail.me.com", + smtp: "smtp.mail.me.com", }, }; -const refHost = computed({ +const refSmtpHost = computed({ set: (val) => { - host.value = val; + smtpHost.value = val; + }, +}); + +const refImapHost = computed({ + set: (val) => { + imapHost.value = val; }, }); @@ -62,7 +76,7 @@ function checkError() { err.value = "You need at least one authentification method."; } else if ([pwd.value, xoauth.value, xoauth2.value].filter((val) => val != "").length > 1) { err.value = "You need only one authentification method."; - } else if (host.value == "" || port.value == "") { + } else if (smtpHost.value == "" || smtpPort.value == "" || imapHost.value == "" || imapPort.value == "") { err.value = "You need to complete the port and the host."; } else { err.value = ""; @@ -77,8 +91,10 @@ function addAccountRequest() { pwd: pwd.value, xoauth: xoauth.value, xoauth2: xoauth2.value, - host: host.value, - port: port.value, + imapHost: imapHost.value, + imapPort: imapPort.value, + smtpHost: smtpHost.value, + smtpPort: smtpPort.value, tls: true, }; @@ -98,15 +114,14 @@ watchEffect(() => { }); function mailChange() { - console.log(email.value); if (email.value.includes("@")) { const domain = email.value.split("@")[1]; - if (!knownHosts[domain]) { - refHost.value = "imap." + domain; - } else { - refHost.value = knownHosts[domain].host; + if (imapHost.value == "") { + refImapHost.value = knownHosts[domain]?.imap ?? `imap.${domain}`; + } + if (smtpHost.value == "") { + refSmtpHost.value = knownHosts[domain]?.smtp ?? `smtp.${domain}`; } - // todo check if manual } } @@ -117,10 +132,17 @@ function mailChange() {