API 开发

      开放 API 提供了服务器完全控制、可以从任意的脚本或程序进行协同工作组访问、帐户和域管理、服务器设置、日程安排、统计及更多先进功能。API 可以被所有支持 COM 对象的开发语言使用,安装后即可免费使用。添加这些功能将将帮助您模拟服务器流量,检测 DNS 配置,分析和检查错误,提供最高的可靠性和整体零故障。


整合邮件服务器使其操作简易.

API 文档

      API 为您提供最好的方法从任何编程语言来维护您的爱思华宝服务器,如 Visual C++、 Visual Studio、Delphi、freepascal、PHP、 ASP、 Visual Basic、Microsoft .NET 或任何其他语言。你可以使用的RPC(远程过程调用)远程访问服务器或 COM 对象。


      更多信息可以在安装根目录下的 API 文件夹 被发现。api\classes.txt 文件中有一个完整的 COM 对象功能函数列表。完整的 API 可用变量列表位于 api\Delphi\APIConst.pas 文件。这里同样也有其它程序语言的文件夹,但是最新更新永远会首先出现在 Dephi 文件夹。 在这个文件夹中你也能找到命令行工具 Tool - tool.exe 的源代码, 这些都是很好的 API 应用实例,即使做为最复杂的应用也同样有效。


      COM 对象也能在不了解所有通讯协议的情况下被用于发送电子邮件和 IM 信息。 它同时也提供 IDP 访问途径用于 IDP 归档操作。


可用的 COM 对象:

  • IceWarpServer.APIObject
  • IceWarpServer.DomainObject
  • IceWarpServer.AccountObject
  • IceWarpServer.RemoteAccountObject
  • IceWarpServer.ScheduleObject
  • IceWarpServer.StatisticsObject
  • IceWarpCOM.GroupWare
  • IceWarpCOM.Mailer
  • IceWarpCOM.IMMessage
  • IceWarpCOM.IDP

      所有 COM 对象可以通过 API 文件夹中公布的变量名操作。

IceWarpServer.APIObject

      设置和查询全局服务器设置功能, 也提供创建/编辑/删除邮件服务器中域的能力。同时也能用于添加/编辑/删除帐户。


<?    
$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

      设置和查询域配置功能,建立/编辑/删除域。


<?    
$dom=new COM('IceWarpServer.DomainObject');
$dom->New('newdomain.com');    
$dom->Save();      
echo 'newdomain.com was created';       
$dom->Release();  
?>  

IceWarpServer.AccountObject

      设置和查询帐户配置功能。


<?    
$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

      设置和查询远程帐户配置的简易设置功能。


<?    
$ra=new COM('IceWarpServer.RemoteAccountObject');      
$ra->Open(0); // 开启首个远程帐户    
$schedule = $ra->GetSchedule('ra_schedule');
// 获得对象的进度表      
$schedule->Count = 1; // 设置 1 个进度表条目      
$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); // 每 x 分钟类型    
$schedule->SetProperty("s_every", 1200); // 设置为 20 分钟    
$schedule->SetProperty("s_wholeday", true); // 全天间隔      
$ra->SetSchedule('ra_schedule', $schedule); // 改变进度表设置     
$ra->Save(); // 保存远程帐户改变  
?>   

IceWarpServer.StatisticsObject

      查询统计信息比如运行时间和服务流量的界面。


<?    
$stats=new COM('IceWarpServer.StatisticsObject');      
$stats->Poll('SMTP');      
echo  $stats->GetProperty('st_smtp_messagesout')  . ' messages sent out';      
$statsi->Release();  
?>  

IceWarpCOM.GroupWare

      使用协同工作 API 和协同工作 PHP 类的协同工作组访问介面。


<?    
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/
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

      发送纯文本或 HTML 邮件、添加附件、插入图片、指定字符集、 Cc、 回复或任何定制邮件头功能。 与著名的 ASP 电子邮件组件语法 100% 兼容。

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 =  "我刚刚安装了一个新的
爱思华宝邮件服务器。".  "\n\nSincerely,".  "\nJohn";
if (!$com->SendMail()) echo $com->Response;
$com->Release();
$com = null;  
?>    

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  
%>   

PHP 中 HTML 邮件

<?    
$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;  
?> 

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;  
?>    

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

      检查 IM 联系人和发送 IM 信息功能,同时支持任何定制的 XML 标签。

PHP 中的 IM 信息 (bob@mydomain.com 必须在 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;  
?>

ASP 中的 IM 信息 (发送者和接收者必须在彼此的好友列表中)

<%  
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    
%>   

PHP 中 IM 出席查询

<?    
$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

      从/到 IDP 档案中提取和添加文件功能。

PHP 中添加文件到 IDP 档案 (用户必须对档案所在目录具有写访问权限)

<?    
$com = new COM('IceWarpCOM.IDP');
$com->AddFiles('temp.idp', 'c:\windows\temp')
$com->Release();
$com = null;  
?>