CtrlMailEnable é um conjunto de funções para gerenciar o MailEnable
MailEnable é um servidor de e-mail, porem, não possui API. Toda gestão é feita via interface gráfica ou via powershell, o que acaba dificultando um gerenciamento automático do servidor. Para contornar isto, criei um repositório que gerencia as contas utilizando o PowerShell.
npm install ctrlmailenable
var MailEnableCtrl = require('CtrlMailEnable');
Antes de executar alguma das funções precisamos definir iniciar o Powershell e carregar os comandos do MailEnable. Esta é uma função assíncrona e após sua conclusão é feito as chamadas as funções.
MailEnableCtrl.init().then(function(){
// Aqui você faz a chamada a função desejada
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.contas_listar().then(function(DadRet){
console.log(JSON.stringify(DadRet));
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
{
"cmacetko_teste1.com.br": {
"Conta": "cmacetko_teste1.com.br",
"Status": "1"
}
}
MailEnableCtrl.init().then(function(){
MailEnableCtrl.contas_is("example.com").then(function(DadRet){
console.log(JSON.stringify(DadRet));
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
true/false
MailEnableCtrl.init().then(function(){
MailEnableCtrl.contas_status("example.com", true).then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.contas_criar("examplec.com").then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.contas_deletar("examplec.com").then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_listar("examplec.com").then(function(DadRet){
console.log(JSON.stringify(DadRet));
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
[
{
"Nome":"Postmaster",
"Status":"1",
"Limite":"-1",
"Tamanho":"0"
},
{
"Nome":"teste1",
"Status":"1",
"Limite":"-1",
"Tamanho":"0"
}
]
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_is("examplec.com", "teste1").then(function(DadRet){
console.log(JSON.stringify(DadRet));
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
true/false
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_criar("examplec.com", "teste1", "123456", "250000").then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_alterar_senha("examplec.com", "teste1", "123456").then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_alterar_limite("examplec.com", "teste1", "250000").then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_alterar_status("examplec.com", "teste1", true).then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_deletar("examplec.com", "teste1").then(function(){
console.log("Sucesso");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
Em todas funções temos o retorno controlado em then e catch (Padrão para funções Promises). Na função catch esta presente um parâmetro que retorna um objeto Error indiando a causa do erro.
MailEnableCtrl.init().then(function(){
MailEnableCtrl.emails_deletar("XXXXXXXXXXX").then(function(){
console.log("OK");
}).catch(function(err){
console.log(err);
});
}).catch(function(err){
console.log(err);
});
Error: Error: Error: Conta nao localizada
at Promise (C:\index.js:535:19)
at new Promise (<anonymous>)
at Object.contas_criar (G:\index.js:362:12)
at G:\tests.js:7:19
Paloma Macetko