有用过MDaemon的吗?

Again 2001-02-08 02:26:00
MDaemon下面有一个Dll,有一份用VC写的头声明,我想把它转成pas,但是总是出错。有没有用过MDaemon的?
因为以前问过这个问题,但是没有解决所以先给20分,如果可以解决我再加分。
...全文
122 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ether 2001-02-09
  • 打赏
  • 举报
回复
我用Mdaemon,是MDUserImports.h吧?
下个http://www.drbob42.com/headconv下个*.h到*.pas的小软件,再手工修改吧。
Again 2001-02-09
  • 打赏
  • 举报
回复
http://www.drbob42.com/headconv没找到啊。

MD-API.html里有一段对MDaemon API的描述(见下边),我把它译成pas:

=====================================================vc=======
#define DOMAIN_LEN 45
#define MAILBOX_LEN 30
#define FULLNAME_LEN 30
#define MAILDIR_LEN 90
#define PASSWORD_LEN 20
#define MAXMESSAGECOUNT_LEN 4
#define MAXDISKSPACE_LEN 6
#define EMAIL_LEN MAILBOX_LEN+DOMAIN_LEN+1
#define FWDADDR_LEN 256
#define FWDHOST_LEN 64
#define FWDSENDAS_LEN 128
#define FWDPORT_LEN 8
#define USERDEFINED_LEN 256

struct MD_UserInfo
{
char Email[EMAIL_LEN+1];
char Mailbox[MAILBOX_LEN+1];
char Domain[DOMAIN_LEN+1];
char FullName[FULLNAME_LEN+1];
char MailDir[MAILDIR_LEN+1];
char Password[PASSWORD_LEN+1];
bool AutoDecode;
bool IsForwarding;
bool AllowAccess;
bool AllowChangeViaEmail;
bool KeepForwardedMail;
bool HideFromEveryone;
bool EncryptMail;
bool ApplyQuotas;
bool EnableMultiPOP;
bool LocalOnly;
long MaxMessageCount;
long MaxDiskSpace;
int WebConfig;
char FwdAddress[FWDADDR_LEN+1];
char FwdHost[FWDHOST_LEN+1];
char FwdSendAs[FWDSENDAS_LEN+1];
char FwdPort[FWDPORT_LEN+1];
char NTAccount[MAILBOX_LEN+1];
char MailFormat[MBXFORMAT_LEN+1];
char AutoRespScript[MAX_PATH+1];
char AutoRespProcess[MAX_PATH+1];
char AutoRespExclude[AUTORESPEXCLUDE_LEN+1];
char AddToList[EMAIL_LEN+1];
char RemoveFromList[EMAIL_LEN+1];
bool PassMessageToProcess;
long MaxUIDLCount;
long MaxMessageSize;
char UserDefined[USERDEFINED_LEN+1];
};

================================================Delphi====
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

const
DOMAIN_LEN=45;
MAILBOX_LEN=30;
FULLNAME_LEN=30;
MAILDIR_LEN=90;
PASSWORD_LEN=20;
MAXMESSAGECOUNT_LEN=4;
MAXDISKSPACE_LEN=6;
EMAIL_LEN=MAILBOX_LEN+DOMAIN_LEN+1;
FWDADDR_LEN=256;
FWDHOST_LEN=64;
FWDSENDAS_LEN=128;
FWDPORT_LEN=8;
USERDEFINED_LEN=256;
MBXFORMAT_LEN=32;
AUTORESPEXCLUDE_LEN=5001;

type
MD_UserInfo=packed record
Email:array[0..EMAIL_LEN+0] of char;
Mailbox:array[0..MAILBOX_LEN+0] of char;
Domain:array[0..DOMAIN_LEN+0] of char;
FullName:array[0..FULLNAME_LEN+0] of char;
MailDir:array[0..MAILDIR_LEN+0] of char;
Password:array[0..PASSWORD_LEN+0] of char;
AutoDecode:boolean;
IsForwarding:boolean;
AllowAccess:boolean;
AllowChangeViaEmail:boolean;
KeepForwardedMail:boolean;
HideFromEveryone:boolean;
EncryptMail:boolean;
ApplyQuotas:boolean;
EnableMultiPOP:boolean;
LocalOnly:boolean;
MaxMessageCount:integer;
MaxDiskSpace:integer;
WebConfig:integer;
FwdAddress:array[0..FWDADDR_LEN+0] of char;
FwdHost:array[0..FWDHOST_LEN+0] of char;
FwdSendAs:array[0..FWDSENDAS_LEN+0] of char;
FwdPort:array[0..FWDPORT_LEN+0] of char;
NTAccount:array[0..MAILBOX_LEN+0] of char;
MailFormat:array[0..MBXFORMAT_LEN+0] of char;
AutoRespScript:array[0..MAX_PATH+0] of char;
AutoRespProcess:array[0..MAX_PATH+0] of char;
AutoRespExclude:array[0..AUTORESPEXCLUDE_LEN+0] of char;
AddToList:array[0..EMAIL_LEN+0] of char;
RemoveFromList:array[0..EMAIL_LEN+0] of char;
PassMessageToProcess:boolean;
MaxUIDLCount:integer;
MaxMessageSize:integer;
UserDefined:array[0..USERDEFINED_LEN+0] of char;
end;


TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

function MD_AddUser(UserInfo:MD_UserInfo;Flags:integer):integer;stdcall;
external 'C:\MDaemon\App\MDUser.dll';

procedure MD_InitUserInfo(UserInfo:MD_UserInfo);stdcall;
external 'C:\MDaemon\App\MDUser.dll';

implementation

{$R *.DFM}

procedure let(var a:array of char;b:string);
var
i:integer;
begin
//setlength(a,length(b)-1);
for i:=0 to length(b)-1 do
a[i]:=b[i+1];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
UserInfo:MD_UserInfo;
ret:integer;
begin
// Copy new account defaults into structure
MD_InitUserInfo(UserInfo);

// copy data into UserInfo members
let(UserInfo.FullName,Edit1.Text);
let(UserInfo.Domain,Edit2.Text);
let(UserInfo.Mailbox,Edit3.Text);
let(UserInfo.MailDir,Edit4.Text);

ret:=MD_AddUser(UserInfo, 0);
showmessage(inttostr(ret));
end;

end.

可是一调 MD_InitUserInfo(UserInfo);
就出错。问题出在哪啊?
顶级邮件服务器Alt-N MDaemon v10.1.2 简体中文版+最新破解补丁 详细介绍:世界著名邮件服务系统,支援LDAP的SMTP/POP3/IMAP4邮件服务端软件,可增强IMAP4之功能,以及多域名的支援,透过简易的设定,来建构专属的邮件伺服器,可以在线申请新帐号等,是中小企业架构internet/intranet 的一系列非常有用的邮件服务器软件。 ①安装至选择注册方式,选择输入密钥KEY, ②随便输入一个KEY(3个7位大写组成,中间用-连接), 或打开keygen.exe中生成一个 ELZKCAK-EVXNJFW-SKABRDI FNATFSY-CPBSDWO-AKOKPXX GSYLGBY-SQACKBF-OADEBOB ③安装好MDeamon服务端后,用破解补丁MDeamon.exe替换MDaemon\App下的MDaemon.exe ④重新打开MDeamon, ⑤选择手工激活 ⑥激活码输入任意字符 ⑦OK!重新启动 MDeamon就激活了(测试MDeamon10.1.1.0版本以前均可使用,) ⑴安装SecurityPlus for MDaemon ⑵打开注册码位置替换原输入为 NSNHAII-RIMAXGM-LCQXNPH GXQIEUP-ZKHJVHB-BTYKMUC LMMSBBA-FEZCWZW-RZWOURA ⑶重启打开MDeamon ⑶选择手工激活 ⑷激活码输入任意字符 ⑸OK!重新启动 SecurityPlus就激活了(测试SecurityPlus for MDaemon4.0.2版本以前均可使用,注意最好使用4.0以下版本,4.0以上版本很容易无法连接服务器更新数据库) ㈠安装Outlook Connector for MDaemon ㈡添加插件,根据自己的实际情况添加 ㈢安装完成后,在Outlook Connector for MDaemon注册处更换为以下注册码 ILQMAIE-NMNHAXC-KBMZWIP MPYRFWJ-VHJGUUI-BNPBDXC JZUJFUZ-BXCELMA-TFLTEJZ NVMICAO-HZOXVQY-GIERNNJ ㈣OK!重新启动 Outlook Connector就激活了(测试Outlook Connector for MDaemon2.1.6版本以前均可使用) 整套MDeamon安装完成

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧