2016-08-17 06:01:20 +08:00
|
|
|
import ko from 'ko';
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2020-10-02 18:40:33 +08:00
|
|
|
import { StorageResultType, ServerSecure, Notification } from 'Common/Enums';
|
2020-08-07 00:24:46 +08:00
|
|
|
import { pInt, pString } from 'Common/Utils';
|
2019-07-05 03:19:24 +08:00
|
|
|
import { i18n } from 'Common/Translator';
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
import CapaAdminStore from 'Stores/Admin/Capa';
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2020-09-15 01:40:56 +08:00
|
|
|
import Remote from 'Remote/Admin/Fetch';
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
import { popup, command } from 'Knoin/Knoin';
|
|
|
|
import { AbstractViewNext } from 'Knoin/AbstractViewNext';
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2016-09-10 06:38:16 +08:00
|
|
|
@popup({
|
2016-08-17 06:01:20 +08:00
|
|
|
name: 'View/Popup/Domain',
|
|
|
|
templateID: 'PopupsDomain'
|
|
|
|
})
|
2019-07-05 03:19:24 +08:00
|
|
|
class DomainPopupView extends AbstractViewNext {
|
2016-08-17 06:01:20 +08:00
|
|
|
constructor() {
|
|
|
|
super();
|
|
|
|
|
|
|
|
this.edit = ko.observable(false);
|
|
|
|
this.saving = ko.observable(false);
|
|
|
|
this.savingError = ko.observable('');
|
|
|
|
this.page = ko.observable('main');
|
|
|
|
this.sieveSettings = ko.observable(false);
|
|
|
|
|
|
|
|
this.testing = ko.observable(false);
|
|
|
|
this.testingDone = ko.observable(false);
|
|
|
|
this.testingImapError = ko.observable(false);
|
|
|
|
this.testingSieveError = ko.observable(false);
|
|
|
|
this.testingSmtpError = ko.observable(false);
|
|
|
|
this.testingImapErrorDesc = ko.observable('');
|
|
|
|
this.testingSieveErrorDesc = ko.observable('');
|
|
|
|
this.testingSmtpErrorDesc = ko.observable('');
|
|
|
|
|
2020-09-22 16:54:00 +08:00
|
|
|
this.testingImapError.subscribe(value => value || this.testingImapErrorDesc(''));
|
2015-01-27 05:06:00 +08:00
|
|
|
|
2020-09-22 16:54:00 +08:00
|
|
|
this.testingSieveError.subscribe(value => value || this.testingSieveErrorDesc(''));
|
2014-08-21 23:08:34 +08:00
|
|
|
|
2020-09-22 16:54:00 +08:00
|
|
|
this.testingSmtpError.subscribe(value => value || this.testingSmtpErrorDesc(''));
|
2016-08-17 06:01:20 +08:00
|
|
|
|
|
|
|
this.imapServerFocus = ko.observable(false);
|
|
|
|
this.sieveServerFocus = ko.observable(false);
|
|
|
|
this.smtpServerFocus = ko.observable(false);
|
|
|
|
|
|
|
|
this.name = ko.observable('');
|
|
|
|
|
|
|
|
this.imapServer = ko.observable('');
|
2020-09-30 20:07:03 +08:00
|
|
|
this.imapPort = ko.observable('143');
|
2016-08-17 06:01:20 +08:00
|
|
|
this.imapSecure = ko.observable(ServerSecure.None);
|
|
|
|
this.imapShortLogin = ko.observable(false);
|
|
|
|
this.useSieve = ko.observable(false);
|
|
|
|
this.sieveAllowRaw = ko.observable(false);
|
|
|
|
this.sieveServer = ko.observable('');
|
2020-09-30 20:07:03 +08:00
|
|
|
this.sievePort = ko.observable('4190');
|
2016-08-17 06:01:20 +08:00
|
|
|
this.sieveSecure = ko.observable(ServerSecure.None);
|
|
|
|
this.smtpServer = ko.observable('');
|
2020-09-30 20:07:03 +08:00
|
|
|
this.smtpPort = ko.observable('25');
|
2016-08-17 06:01:20 +08:00
|
|
|
this.smtpSecure = ko.observable(ServerSecure.None);
|
|
|
|
this.smtpShortLogin = ko.observable(false);
|
|
|
|
this.smtpAuth = ko.observable(true);
|
|
|
|
this.smtpPhpMail = ko.observable(false);
|
|
|
|
this.whiteList = ko.observable('');
|
|
|
|
this.aliasName = ko.observable('');
|
|
|
|
|
|
|
|
this.enableSmartPorts = ko.observable(false);
|
|
|
|
|
|
|
|
this.allowSieve = ko.computed(() => CapaAdminStore.filters() && CapaAdminStore.sieve());
|
|
|
|
|
|
|
|
this.headerText = ko.computed(() => {
|
2019-07-05 03:19:24 +08:00
|
|
|
const name = this.name(),
|
2016-08-17 06:01:20 +08:00
|
|
|
aliasName = this.aliasName();
|
|
|
|
|
|
|
|
let result = '';
|
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
if (this.edit()) {
|
|
|
|
result = i18n('POPUPS_DOMAIN/TITLE_EDIT_DOMAIN', { 'NAME': name });
|
|
|
|
if (aliasName) {
|
2016-08-17 06:01:20 +08:00
|
|
|
result += ' ← ' + aliasName;
|
|
|
|
}
|
2019-07-05 03:19:24 +08:00
|
|
|
} else {
|
2020-07-28 23:20:14 +08:00
|
|
|
result = name
|
|
|
|
? i18n('POPUPS_DOMAIN/TITLE_ADD_DOMAIN_WITH_NAME', { 'NAME': name })
|
|
|
|
: i18n('POPUPS_DOMAIN/TITLE_ADD_DOMAIN');
|
2016-08-17 06:01:20 +08:00
|
|
|
}
|
2014-08-21 23:08:34 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
return result;
|
|
|
|
});
|
|
|
|
|
|
|
|
this.domainDesc = ko.computed(() => {
|
|
|
|
const name = this.name();
|
2019-07-05 03:19:24 +08:00
|
|
|
return !this.edit() && name ? i18n('POPUPS_DOMAIN/NEW_DOMAIN_DESC', { 'NAME': '*@' + name }) : '';
|
2016-08-17 06:01:20 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
this.domainIsComputed = ko.computed(() => {
|
2019-07-05 03:19:24 +08:00
|
|
|
const usePhpMail = this.smtpPhpMail(),
|
2016-08-17 06:01:20 +08:00
|
|
|
allowSieve = this.allowSieve(),
|
|
|
|
useSieve = this.useSieve();
|
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
return (
|
2020-07-28 23:20:14 +08:00
|
|
|
this.name() &&
|
|
|
|
this.imapServer() &&
|
|
|
|
this.imapPort() &&
|
|
|
|
(allowSieve && useSieve ? this.sieveServer() && this.sievePort() : true) &&
|
|
|
|
((this.smtpServer() && this.smtpPort()) || usePhpMail)
|
2019-07-05 03:19:24 +08:00
|
|
|
);
|
2016-08-17 06:01:20 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
this.canBeTested = ko.computed(() => !this.testing() && this.domainIsComputed());
|
|
|
|
this.canBeSaved = ko.computed(() => !this.saving() && this.domainIsComputed());
|
|
|
|
|
2020-09-22 16:54:00 +08:00
|
|
|
this.page.subscribe(() => this.sieveSettings(false));
|
2016-08-17 06:01:20 +08:00
|
|
|
|
|
|
|
// smart form improvements
|
2020-09-22 16:54:00 +08:00
|
|
|
this.imapServerFocus.subscribe(value =>
|
|
|
|
value && this.name() && !this.imapServer() && this.imapServer(this.name().replace(/[.]?[*][.]?/g, ''))
|
|
|
|
);
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2020-09-22 16:54:00 +08:00
|
|
|
this.sieveServerFocus.subscribe(value =>
|
|
|
|
value && this.imapServer() && !this.sieveServer() && this.sieveServer(this.imapServer())
|
|
|
|
);
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2020-09-22 16:54:00 +08:00
|
|
|
this.smtpServerFocus.subscribe(value =>
|
|
|
|
value && this.imapServer() && !this.smtpServer() && this.smtpServer(this.imapServer().replace(/imap/gi, 'smtp'))
|
|
|
|
);
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2020-10-02 18:40:33 +08:00
|
|
|
this.imapSecure.subscribe(value => {
|
2019-07-05 03:19:24 +08:00
|
|
|
if (this.enableSmartPorts()) {
|
2016-08-17 06:01:20 +08:00
|
|
|
const port = pInt(this.imapPort());
|
2019-07-05 03:19:24 +08:00
|
|
|
switch (pString(value)) {
|
2016-08-17 06:01:20 +08:00
|
|
|
case '0':
|
2017-07-11 20:40:31 +08:00
|
|
|
case '2':
|
2020-10-02 18:40:33 +08:00
|
|
|
if (993 === port) {
|
|
|
|
this.imapPort('143');
|
2016-08-17 06:01:20 +08:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
case '1':
|
2020-10-02 18:40:33 +08:00
|
|
|
if (143 === port) {
|
|
|
|
this.imapPort('993');
|
2016-08-17 06:01:20 +08:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
// no default
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2020-10-02 18:40:33 +08:00
|
|
|
this.smtpSecure.subscribe(value => {
|
2019-07-05 03:19:24 +08:00
|
|
|
if (this.enableSmartPorts()) {
|
2016-08-17 06:01:20 +08:00
|
|
|
const port = pInt(this.smtpPort());
|
2019-07-05 03:19:24 +08:00
|
|
|
switch (pString(value)) {
|
2016-08-17 06:01:20 +08:00
|
|
|
case '0':
|
2020-10-02 18:40:33 +08:00
|
|
|
if (465 === port || 587 === port) {
|
|
|
|
this.smtpPort('25');
|
2016-08-17 06:01:20 +08:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
case '1':
|
2020-10-02 18:40:33 +08:00
|
|
|
if (25 === port || 587 === port) {
|
|
|
|
this.smtpPort('465');
|
2016-08-17 06:01:20 +08:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
case '2':
|
2020-10-02 18:40:33 +08:00
|
|
|
if (25 === port || 465 === port) {
|
|
|
|
this.smtpPort('587');
|
2016-08-17 06:01:20 +08:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
// no default
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2015-01-29 00:27:23 +08:00
|
|
|
|
2016-09-10 06:38:16 +08:00
|
|
|
@command((self) => self.canBeSaved())
|
|
|
|
createOrAddCommand() {
|
|
|
|
this.saving(true);
|
|
|
|
Remote.createOrUpdateDomain(
|
2020-07-20 21:47:33 +08:00
|
|
|
this.onDomainCreateOrSaveResponse.bind(this),
|
2016-09-10 06:38:16 +08:00
|
|
|
!this.edit(),
|
|
|
|
this.name(),
|
|
|
|
|
|
|
|
this.imapServer(),
|
|
|
|
pInt(this.imapPort()),
|
|
|
|
this.imapSecure(),
|
|
|
|
this.imapShortLogin(),
|
|
|
|
|
|
|
|
this.useSieve(),
|
|
|
|
this.sieveAllowRaw(),
|
|
|
|
this.sieveServer(),
|
|
|
|
pInt(this.sievePort()),
|
|
|
|
this.sieveSecure(),
|
|
|
|
|
|
|
|
this.smtpServer(),
|
|
|
|
pInt(this.smtpPort()),
|
|
|
|
this.smtpSecure(),
|
|
|
|
this.smtpShortLogin(),
|
|
|
|
this.smtpAuth(),
|
|
|
|
this.smtpPhpMail(),
|
|
|
|
|
|
|
|
this.whiteList()
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
@command((self) => self.canBeTested())
|
|
|
|
testConnectionCommand() {
|
|
|
|
this.page('main');
|
|
|
|
|
|
|
|
this.testingDone(false);
|
|
|
|
this.testingImapError(false);
|
|
|
|
this.testingSieveError(false);
|
|
|
|
this.testingSmtpError(false);
|
|
|
|
this.testing(true);
|
|
|
|
|
|
|
|
Remote.testConnectionForDomain(
|
2020-07-20 21:47:33 +08:00
|
|
|
this.onTestConnectionResponse.bind(this),
|
2016-09-10 06:38:16 +08:00
|
|
|
this.name(),
|
|
|
|
|
|
|
|
this.imapServer(),
|
|
|
|
pInt(this.imapPort()),
|
|
|
|
this.imapSecure(),
|
|
|
|
|
|
|
|
this.useSieve(),
|
|
|
|
this.sieveServer(),
|
|
|
|
pInt(this.sievePort()),
|
|
|
|
this.sieveSecure(),
|
|
|
|
|
|
|
|
this.smtpServer(),
|
|
|
|
pInt(this.smtpPort()),
|
|
|
|
this.smtpSecure(),
|
|
|
|
this.smtpAuth(),
|
|
|
|
this.smtpPhpMail()
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
@command()
|
|
|
|
whiteListCommand() {
|
|
|
|
this.page('white-list');
|
|
|
|
}
|
|
|
|
|
|
|
|
@command()
|
|
|
|
backCommand() {
|
|
|
|
this.page('main');
|
|
|
|
}
|
|
|
|
|
|
|
|
@command()
|
|
|
|
sieveCommand() {
|
|
|
|
this.sieveSettings(!this.sieveSettings());
|
|
|
|
this.clearTesting();
|
|
|
|
}
|
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
onTestConnectionResponse(sResult, oData) {
|
|
|
|
this.testing(false);
|
2019-07-05 03:19:24 +08:00
|
|
|
if (StorageResultType.Success === sResult && oData.Result) {
|
|
|
|
let bImap = false,
|
2016-08-17 06:01:20 +08:00
|
|
|
bSieve = false;
|
2014-08-21 23:08:34 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.testingDone(true);
|
|
|
|
this.testingImapError(true !== oData.Result.Imap);
|
|
|
|
this.testingSieveError(true !== oData.Result.Sieve);
|
|
|
|
this.testingSmtpError(true !== oData.Result.Smtp);
|
2014-08-21 23:08:34 +08:00
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
if (this.testingImapError() && oData.Result.Imap) {
|
2016-08-17 06:01:20 +08:00
|
|
|
bImap = true;
|
|
|
|
this.testingImapErrorDesc('');
|
|
|
|
this.testingImapErrorDesc(oData.Result.Imap);
|
2015-01-29 00:27:23 +08:00
|
|
|
}
|
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
if (this.testingSieveError() && oData.Result.Sieve) {
|
2016-08-17 06:01:20 +08:00
|
|
|
bSieve = true;
|
|
|
|
this.testingSieveErrorDesc('');
|
|
|
|
this.testingSieveErrorDesc(oData.Result.Sieve);
|
2015-04-10 06:05:49 +08:00
|
|
|
}
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
if (this.testingSmtpError() && oData.Result.Smtp) {
|
2016-08-17 06:01:20 +08:00
|
|
|
this.testingSmtpErrorDesc('');
|
|
|
|
this.testingSmtpErrorDesc(oData.Result.Smtp);
|
|
|
|
}
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
if (this.sieveSettings()) {
|
|
|
|
if (!bSieve && bImap) {
|
2016-08-17 06:01:20 +08:00
|
|
|
this.sieveSettings(false);
|
|
|
|
}
|
2019-07-05 03:19:24 +08:00
|
|
|
} else if (bSieve && !bImap) {
|
2016-06-30 08:02:45 +08:00
|
|
|
this.sieveSettings(true);
|
|
|
|
}
|
2019-07-05 03:19:24 +08:00
|
|
|
} else {
|
2016-08-17 06:01:20 +08:00
|
|
|
this.testingImapError(true);
|
|
|
|
this.testingSieveError(true);
|
|
|
|
this.testingSmtpError(true);
|
|
|
|
this.sieveSettings(false);
|
|
|
|
}
|
2016-06-30 08:02:45 +08:00
|
|
|
}
|
2014-11-20 05:32:20 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
onDomainCreateOrSaveResponse(sResult, oData) {
|
|
|
|
this.saving(false);
|
2019-07-05 03:19:24 +08:00
|
|
|
if (StorageResultType.Success === sResult && oData) {
|
|
|
|
if (oData.Result) {
|
2020-09-15 15:29:25 +08:00
|
|
|
rl.app.reloadDomainList();
|
2016-08-17 06:01:20 +08:00
|
|
|
this.closeCommand();
|
2019-07-05 03:19:24 +08:00
|
|
|
} else if (Notification.DomainAlreadyExists === oData.ErrorCode) {
|
2016-08-17 06:01:20 +08:00
|
|
|
this.savingError(i18n('ERRORS/DOMAIN_ALREADY_EXISTS'));
|
|
|
|
}
|
2019-07-05 03:19:24 +08:00
|
|
|
} else {
|
2016-08-17 06:01:20 +08:00
|
|
|
this.savingError(i18n('ERRORS/UNKNOWN_ERROR'));
|
2016-06-30 08:02:45 +08:00
|
|
|
}
|
|
|
|
}
|
2014-05-01 00:24:45 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
clearTesting() {
|
|
|
|
this.testing(false);
|
|
|
|
this.testingDone(false);
|
|
|
|
this.testingImapError(false);
|
|
|
|
this.testingSieveError(false);
|
|
|
|
this.testingSmtpError(false);
|
|
|
|
}
|
2014-05-01 00:24:45 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
onHide() {
|
|
|
|
this.page('main');
|
|
|
|
this.sieveSettings(false);
|
|
|
|
}
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
onShow(oDomain) {
|
|
|
|
this.saving(false);
|
2013-11-16 06:21:12 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.page('main');
|
|
|
|
this.sieveSettings(false);
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.clearTesting();
|
2016-06-30 08:02:45 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.clearForm();
|
2019-07-05 03:19:24 +08:00
|
|
|
if (oDomain) {
|
2016-08-17 06:01:20 +08:00
|
|
|
this.enableSmartPorts(false);
|
|
|
|
|
|
|
|
this.edit(true);
|
|
|
|
|
2020-10-17 19:53:04 +08:00
|
|
|
this.name(oDomain.Name);
|
|
|
|
this.imapServer(oDomain.IncHost);
|
2016-08-17 06:01:20 +08:00
|
|
|
this.imapPort('' + pInt(oDomain.IncPort));
|
2020-10-17 19:53:04 +08:00
|
|
|
this.imapSecure(oDomain.IncSecure);
|
2016-08-17 06:01:20 +08:00
|
|
|
this.imapShortLogin(!!oDomain.IncShortLogin);
|
|
|
|
this.useSieve(!!oDomain.UseSieve);
|
|
|
|
this.sieveAllowRaw(!!oDomain.SieveAllowRaw);
|
2020-10-17 19:53:04 +08:00
|
|
|
this.sieveServer(oDomain.SieveHost);
|
2016-08-17 06:01:20 +08:00
|
|
|
this.sievePort('' + pInt(oDomain.SievePort));
|
2020-10-17 19:53:04 +08:00
|
|
|
this.sieveSecure(oDomain.SieveSecure);
|
|
|
|
this.smtpServer(oDomain.OutHost);
|
2016-08-17 06:01:20 +08:00
|
|
|
this.smtpPort('' + pInt(oDomain.OutPort));
|
2020-10-17 19:53:04 +08:00
|
|
|
this.smtpSecure(oDomain.OutSecure);
|
2016-08-17 06:01:20 +08:00
|
|
|
this.smtpShortLogin(!!oDomain.OutShortLogin);
|
|
|
|
this.smtpAuth(!!oDomain.OutAuth);
|
|
|
|
this.smtpPhpMail(!!oDomain.OutUsePhpMail);
|
2020-10-17 19:53:04 +08:00
|
|
|
this.whiteList(oDomain.WhiteList);
|
|
|
|
this.aliasName(oDomain.AliasName);
|
2016-08-17 06:01:20 +08:00
|
|
|
|
|
|
|
this.enableSmartPorts(true);
|
|
|
|
}
|
2016-06-30 08:02:45 +08:00
|
|
|
}
|
2014-08-21 23:08:34 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
clearForm() {
|
|
|
|
this.edit(false);
|
2014-11-20 05:32:20 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.page('main');
|
|
|
|
this.sieveSettings(false);
|
2013-11-16 06:21:12 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.enableSmartPorts(false);
|
2013-11-16 06:21:12 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.savingError('');
|
2013-11-16 06:21:12 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.name('');
|
2014-11-20 05:32:20 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.imapServer('');
|
2020-09-30 20:07:03 +08:00
|
|
|
this.imapPort('143');
|
2016-08-17 06:01:20 +08:00
|
|
|
this.imapSecure(ServerSecure.None);
|
|
|
|
this.imapShortLogin(false);
|
2014-11-20 05:32:20 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.useSieve(false);
|
|
|
|
this.sieveAllowRaw(false);
|
|
|
|
this.sieveServer('');
|
2020-09-30 20:07:03 +08:00
|
|
|
this.sievePort('4190');
|
2016-08-17 06:01:20 +08:00
|
|
|
this.sieveSecure(ServerSecure.None);
|
2014-10-14 06:39:23 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.smtpServer('');
|
2020-09-30 20:07:03 +08:00
|
|
|
this.smtpPort('25');
|
2016-08-17 06:01:20 +08:00
|
|
|
this.smtpSecure(ServerSecure.None);
|
|
|
|
this.smtpShortLogin(false);
|
|
|
|
this.smtpAuth(true);
|
|
|
|
this.smtpPhpMail(false);
|
2013-11-16 06:21:12 +08:00
|
|
|
|
2016-08-17 06:01:20 +08:00
|
|
|
this.whiteList('');
|
|
|
|
this.aliasName('');
|
|
|
|
this.enableSmartPorts(true);
|
|
|
|
}
|
|
|
|
}
|
2013-11-16 06:21:12 +08:00
|
|
|
|
2019-07-05 03:19:24 +08:00
|
|
|
export { DomainPopupView, DomainPopupView as default };
|