我是在winwebmail上做二次开发,为的是集成到公司的OA系统中。
winwebmail也提供了SDK。php代码如下:<?php
$ei = new COM("easymail.InfoList") or die("无法连接组件");
$ei->LoadMailBox("admin","in");
$allnum = $ei->getMailsCount();
echo $allnum;
?>
执行正常,但是输出的是0。而admin用户的收件箱里是有两封邮件的。我又用asp试了下,代码如下:
<%
dim ei
set ei = server.createobject("easymail.InfoList")
ei.LoadMailBox "admin", "in"
allnum = ei.getMailsCount
response.Write(allnum)
%>
这个输出是2。两个方法明明都是一样的,调用的也都是同一个dll。为什么输出会不一样?
php用的是apache服务器,asp用的是IIS6.跟这个应该没有关系吧?唯一有可能的是php中 $ei->LoadMailBox("admin","in");这句代码并没有改变$ei的值。但是为什么asp的就可以呢?难道这个DLL库不是通用的么?
winwebmail也提供了SDK。php代码如下:<?php
$ei = new COM("easymail.InfoList") or die("无法连接组件");
$ei->LoadMailBox("admin","in");
$allnum = $ei->getMailsCount();
echo $allnum;
?>
执行正常,但是输出的是0。而admin用户的收件箱里是有两封邮件的。我又用asp试了下,代码如下:
<%
dim ei
set ei = server.createobject("easymail.InfoList")
ei.LoadMailBox "admin", "in"
allnum = ei.getMailsCount
response.Write(allnum)
%>
这个输出是2。两个方法明明都是一样的,调用的也都是同一个dll。为什么输出会不一样?
php用的是apache服务器,asp用的是IIS6.跟这个应该没有关系吧?唯一有可能的是php中 $ei->LoadMailBox("admin","in");这句代码并没有改变$ei的值。但是为什么asp的就可以呢?难道这个DLL库不是通用的么?
...
$allnum = $ei->getMailsCount();
echo strlen($allnum); //这里至少应输出1确认后,继续讨论
var_dump($allnum);
EASYMAILLib 的成员int getMailsCount { get; }
EASYMAILLib.IInfoList 的成员
$allnum = $ei->getMailsCount();
echo base64_encode($allnum);帖出结果
不行了,如果你能修改源程序,那么应另设属性或方法将其转换成字符型
还有 $ei->LoadMailBox("admin","in"); 那两个参数的类型设置也是有讲究的
这个我用vs2005把这个DLL导进去了。void LoadMailBox(string username, string mailboxname)
EASYMAILLib.IInfoList 的成员这是这个方法。
按说dll是通用的一个库啊。为什么只有asp调用它返回的值才正常呢?
不行你在 ASP 中使用 JScript 同样是得不到值的