API e Softwares Gratuitos
Utilitários Gratuitos
A API aberta IceWarp fornece controle completo do servidor, acesso groupware, gerenciamento de contas e domínios, configurações do servidor, agendamentos, estatísticas e muito mais, accessíveis a partir scripts arbitrários ou programas. A AVI está disponível para todas as linguagens com suporte a objetos COM, imediatamente após a instalação do servidor e sem custos adicionais.
Disponibilizamos, também, uma série de utilitários gratuitos, úteis para administradores e desenvolvedores, que permitem realizar testes de tráfego SMTP, testes de configurações do DNS, analisar e inspecionar erros em logs e muito mais.
Integration com servidor de mail de forma facilitada.
Documentação API
A API oferece a melhor forma de manter seu servidor IceWarp usando qualquer linguagem de programaçãoo, como Visual C++, Visual Studio, Delphi, FreePascal, PHP, ASP, Visual Basic, Microsoft .NET ou qualquer outra. Você pode usar RPC (Remote Procedure Call), bem como objeto COM, para acesso remoto a servidores.
Maiores informações podem ser encontradas na pasta API, na raíz da instalação do Merak. Em api\classes.txt temos uma listagem completa de todas as funções para objetos COM. A listagem completa de variáveis accessíveis via API está no arquivo api\Delphi\APIConst.pas file. Também existem pastas para outras linguagens de programação, mas a mais importante e sempre atualizada será a pasta Delphi. Nessa pasta, você encontrará o código fonte para a ferramenta de linha de comando Tool - tool.exe, que usa a API para realizar diversas tarefas, como criação de contas ou mudanças em múltiplas contas de uma só vez.
Objetos COM também podem ser usados para enviar mensagens de email e mensagens IM, sem necessitar conhecimentos profundos dos protocolos de comunicação. Eles também fornecem acesso a rotinas para manipular arquivos compactados IDP (IceWarp Data Packager).
Objetos COM disponíveis:
- IceWarpServer.APIObject
- IceWarpServer.DomainObject
- IceWarpServer.AccountObject
- IceWarpServer.RemoteAccountObject
- IceWarpServer.ScheduleObject
- IceWarpServer.StatisticsObject
- IceWarpCOM.GroupWare
- IceWarpCOM.Mailer
- IceWarpCOM.IMMessage
- IceWarpCOM.IDP
Todos objetos COM podem operar com nomes de variáveis publicados na pasta API.
IceWarpServer.APIObject
Funções para definir e realizar queries em configurações globais do servidor, permitindo ainda criar/editar/excluir domínios do mail server. Também pode ser usado para adicionar/editar/excluir contas.
<?
$api=new COM('IceWarpServer.APIObject');
$tarpit = $api->GetProperty('C_Config_Delivery_Tarpitting');
echo 'Tarpitting is '.($tarpit==0 ? 'disabled':'enabled').'<br />';
$api->SetProperty('C_Config_Delivery_Tarpitting', ($tarpit==0 ? 1 : 0));
echo 'Tarpitting has been '.($tarpit==0 ? 'enabled':'disabled');
$api->Save();
$api->UpdateConfiguration();
$api->Release();
?>
IceWarpServer.DomainObject
Funções para definir e realizar query das configurações de domínios, permitindo a criação/edição/exclusão de domínios.
<?
$dom=new COM('IceWarpServer.DomainObject');
$dom->New('newdomain.com');
$dom->Save();
echo 'newdomain.com was created';
$dom->Release();
?>
IceWarpServer.AccountObject
Funções para definir e realizar query das configurações de contas.
<?
$account=new COM('IceWarpServer.AccountObject');
$account->New('newuser@newdomain.com');
$account->SetProperty('U_Password', 'newpassword');
if ($account->Save())
echo 'Account newaccount@newdomain.com was created';
else
echo 'Error creating account newaccount@newdomain.com';
$account->Release();
?>
IceWarpServer.RemoteAccountObject, IceWarpServer.ScheduleObject
Simples conjunto de funções para definir e realizar query de configurações de contas remotas.
<?
$ra=new COM('IceWarpServer.RemoteAccountObject');
$ra->Open(0); // Opens the first remote account
$schedule = $ra->GetSchedule('ra_schedule');
// Retrieve schedule for the object
$schedule->Count = 1; // Sets 1 schedule item
$schedule->SetProperty("s_weekdays_su", true);
$schedule->SetProperty("s_weekdays_mo", true);
$schedule->SetProperty("s_weekdays_tu", true);
$schedule->SetProperty("s_weekdays_we", true);
$schedule->SetProperty("s_weekdays_th", true);
$schedule->SetProperty("s_weekdays_fr", true);
$schedule->SetProperty("s_weekdays_sa", true);
$schedule->SetProperty("s_scheduletype", 0); // Every x minutes type
$schedule->SetProperty("s_every", 1200); // Sets 20 minutes
$schedule->SetProperty("s_wholeday", true); // whole day interval
$ra->SetSchedule('ra_schedule', $schedule); // Sets the changed schedule
$ra->Save(); // Save the changed remote account
?>
IceWarpServer.StatisticsObject
Interface para obtenção de informações estatísticas, como o tempo que determinado serviço está em execução e tráfego dos serviços.
<?
$stats=new COM('IceWarpServer.StatisticsObject');
$stats->Poll('SMTP');
echo $stats->GetProperty('st_smtp_messagesout') . ' messages sent out';
$statsi->Release();
?>
IceWarpCOM.GroupWare
Interface para acesso ao groupware usando a API GroupWare e GroupWare PHP class.
<?
require_once('gw.php');
$gw=new MerakGWAPI();
$gw->user='john@doe.com;
$gw->pass='secret';
$gw->Login();
$gw->OpenGroup('*');
$gw->OpenFolder('Contacts');
$vcard=' BEGIN:VCARD VERSION:2.1 PRODID:-//IceWarp//Merak Mail Server 9.0.0-3//EN FN:John Doe N:Doe;John NOTE;ENCODING=QUOTED-PRINTABLE:Multiple line note=0D=0AAnother=0D=0AMore=0D=0AAnd more URL;http://www.icewarp.com.br/ UID:370398ef4001 CLASS:PUBLIC SEQUENCE:1 CREATED:20070803T170731Z DTSTAMP:20070803T170731Z LAST-MODIFIED:20070803T170747Z ORG:IceWarp Ltd. END:VCARD';
$gw->FunctionCall($fid, 'AddVCard', $vcard);
?>
IceWarpCOM.Mailer
Funções para enviar mensagens em texto puro ou HTML, adicionar anexos, inserir imagens incorporadas no corpo da mensagem, especificar charsets, Cc, Reply-Para ou quaisquer cabeçalhos customizados. Sintaxe 100% compatível com o famoso componente ASP Email.
Mensagem de texto puro em PHP
<?
$com = new COM("IceWarpCOM.Mailer");
$com->RemoteHost = "smtp.mydomain.com";
$com->Helo = "mycomputer.mydomain.com";
$com->FromName = "John Doe";
$com->FromAddress = "john@mydomain.com";
$com->AddRecipient("mother@mydomain.com", "Mom");
$com->Subject = "Hi mom";
$com->BodyText = "Just wanted to let you know I have new
IceWarp Server installed.". "\n\nSincerely,". "\nJohn";
if (!$com->SendMail()) echo $com->Response;
$com->Release();
$com = null;
?>
Mensagem de texto puro em ASP
<%
Set Mail = Server.CreateObject( "IceWarpCOM.Mailer" )
Mail.RemoteHost = "localhost"
Mail.Helo = "localhost"
Mail.FromName = "User One"
Mail.FromAddress = "user1@demodomain.com"
Mail.MailFrom = Mail.FromAddress
Mail.AddRecipient "user2@demodomain.com.br", "User Two"
Com.Subject = "Test message"
Com.IsHTML = "True"
Com.BodyText = "IceWarp COM objects under IIS work"
If Not Com.SendMail Then Response.Write com.Response
Set Com = Nothing
%>
Mensagem HTML em PHP
<?
$com = new COM("IceWarpCOM.Mailer");
$com->RemoteHost = "smtp.mydomain.com";
$com->Helo = "mycomputer.mydomain.com";
$com->FromName = "John Doe";
$com->FromAddress = "john@mydomain.com";
$com->AddRecipient("mother@mydomain.com", "Mom");
$com->Subject = "Hi mom";
$com->IsHTML = True;
$com->BodyText = "... one more thing - I can now send even
HTML messages from my scripts!". "\n\nSincerely,". "\nJohn";
if (!$com->SendMail()) echo $com->Response;
$com->Release();
$com = null;
?>
Message com anexo em PHP
<?
$com = new COM("IceWarpCOM.Mailer");
$com->RemoteHost = "smtp.mydomain.com";
$com->Helo = "mycomputer.mydomain.com";
$com->FromName = "John Doe";
$com->FromAddress = "john@mydomain.com";
$com->AddRecipient("bob@mydomain.com", "Bob Smith");
$com->Subject = "Annual report";
$com->BodyText = "Hi Bob,\n". "sending you the annual report.
See attachment.". "\n\nRegards,". "\nJohn";
$com->AddAttachment( "c:\\Documents and Settings\\John\\report.rtf");
if (!$com->SendMail()) echo $com->Response;
$com->Release();
$com = null;
?>
Mensagem com imagem incorporada no corpo em PHP
<?
$com = new COM("IceWarpCOM.Mailer");
$com->RemoteHost = "localhost";
$com->Helo = "localhost";
$com->FromName = "Martin";
$com->FromAddress = "admin@localhost";
$com->AddRecipient("admin@localhost", "Lobogo :)");
$com->Subject = "COM obj test";
$com->IsHTML = "True";
$com->BodyText = "<html><head>". "<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1
\">". "</head><body><img src=\"cid:123\">". "</body></html>";
$com->AddEmbeddedImage("c:\\image.jpg", "123");
if (!$com->SendMail()) echo $com->Response;
$com->Release();
$com = null;
?>
IceWarpCOM.IMMessage
Funções para verificar o status de contatos IM e enviar mensagens IM, com suporte a quaisquer tags customizadas XML.
Mensagem IM em PHP
(bob@mydomain.com precisa estar na lista de contatos do John)
<?
$com = new COM("IceWarpCOM.IMMessage");
$com->MessageFrom = "john@mydomain.com";
$com->MessageTo = "bob@mydomain.com";
$com->MessageSubject = "Hey pal";
$com->MessageBody = "This IM message was sent from my web site";
if (!$com->SendMessage()) echo "Error";
$com->Release();
$com = null;
?>
Mensagem IM em ASP (remetente e destinatário precisam ter autorizado um ao outro em suas listas de contatos)
<%
Set IM = Server.CreateObject("IceWarpCOM.IMMessage")
Im.MessageFrom = "user1@demodomain.com"
Im.MessageTo = "user2@demodomain.com"
Im.MessageSubject = "TEST"
Im.MessageBody = "UNO DUE TRES QUATRO"
If Not Im.SendMessage Then
Response.Write "Error sendin message to " & Im.MessageTo & " "
Else Response.Write "Message Sent "
End If
If Im.IsOnline( Im.MessageTo ) Then
Response.Write Im.MessageTo & " is online "
End If
Set Im = Nothing
%>
Query de Presença IM em PHP
<?
$com = new COM("IceWarpCOM.IMMessage");
$buddy = "bob@mydomain.com";
echo $buddy . ' is ';
if (!$com->IsOnline($buddy)) echo 'NOT';
echo 'online';
$com->Release();
$com = null;
?>
IceWarpCOM.IDP
Funções para adicionar e extrair arquivos para/de arquivos compactados IDP (IceWarp Data Packager).
Adicionando arquivo a um arquivo compactado IDP com PHP
(precisa ser executado por usuário com permissão de escrita no diretório)
<?
$com = new COM('IceWarpCOM.IDP');
$com->AddFiles('temp.idp', 'c:\windows\temp')
$com->Release();
$com = null;
?>