CMailServer二次开发和COM接口文档 CMailServer Webmail COM 接口调用说明
//POP3接口
CMailCOM.POP3.1
MailDomain -(Property, READ)邮件服务器域名
LastResponse -(Property, READ)当前服务器返回信息,+OK开头的信息表示成功 -ERR开头的信息表示失败
CreateUserPath Account -(Method)创建用户Account的POP3工作目录
Login Account, Password -(Method)登陆pop3服务器(这个Account的构成可以是Account:IP,就是Account和他的IP地址,这样可以方便服务器知道客户端IP)
LoginSuccess -(Property, READ, BOOL)如果登陆成功 LoginSucc = 1否则0
GetMailBoxInfo -(Method)获得邮箱信息
MailCount -(Property, READ, long)有多少邮件
GetMailInfo indexOfMail -(Method)获得第indexOfMail的邮件主要信息
From -(Property, READ)邮件发送者
To -(Property, READ)邮件接收者
Subject -(Property, READ)邮件主题
Date -(Property, READ)邮件时间
Size -(Property, READ, long)邮件大小
IsRead -(Property, READ, BOOL)是否已经阅读
UID -(Property, READ)邮件的UID
IsReply -(Property, READ, BOOL)是否已经回复
IsForward -(Property, READ, BOOL)是否已经转发
Permission -(Property, READ, BOOL)管理员权限(0=普通邮箱帐号, 1=域名管理员, 2=系统管理员)
GetMailData indexOfMail -获得第indexOfMail的邮件全部信息
Body -(Property, READ)邮件正文
BodyHtmlURL -(Property, READ)邮件正文HTML连接,因为有些正文是HTML格式
HeaderURL -(Property, READ)邮件头的URL
EmailURL -(Property, READ)邮件原件的URL
AttachCount -(Property, READ, long)附件个数
GetAttachInfo indexOfAttach -(Method)获得第indexOfAttch附件的信息
AttachURL -(Property, READ)当前附件的下载地址
AttachFileName -(Property, READ)当前附件的文件名
Download urlOfAttach -(Method)下载指定url的附件
DeleteMailByUID strUID -(Method)删除UID为strUID的邮件
Logout Account -(Method)登出Account
MoveToInbox strUID -(Method)移动邮件到收件箱
MoveToFolder strUID -(Method)移动邮件到文件夹
DeleteMailEx strUID -(Method)删除Folder邮件
GetMailDataEx strUID -(Method)获得Folder邮件的全部信息
GetMailInfoEx strUID -(Method)获得Folder邮件的属性
GetRemotePOP3 -(Method)收取POP3邮件
SetReplySign bReply, bsUID, nFolder -(Method)设置UID为bsUID的邮件是否回复,nFolder为0(收件箱)或1(其他邮箱)
SetForwardSign bForward, bsUID, nFolder -(Method)设置UID为bsUID的邮件是否转发,nFolder为0(收件箱)或1(其他邮箱)
每封转到Folder的邮件都要先将他的UID保存到数据库里,因为UID是他的唯一标识。
怎样创建文件夹和移动邮件到文件夹
首先建两个数据表Folder和FolderMail:
Folder: 标识, FolderName
FolderMail: 标识, Folder标识, UID, MailFrom, MailTo, MailDate, MailSize, MailIsRead
创建文件夹,就是添加一条Folder记录,并不需要在真正的创建物理文件夹。
移到邮件到文件夹,首先要得到要移到的邮件的UID,然后通过GetMailInfoEx接口来得到,
然后保存这些信息到FolderMail表里,再调用MoveToFolder接口就完成了移动邮件了。
//SMTP接口
CMailCOM.SMTP.1
LastResponse -(Property, READ)当前服务器返回信息,+OK开头的信息表示成功 -ERR开头的信息表示失败
CreateUserPath Account -(Method)创建用户Account的SMTP工作目录(这个Account的构成可以是Account:IP,就是Account和他的IP地址,这样可以方便服务器知道客户端IP)
//-- 如果需要上传附件,设置FORM表单的ENCTYPE="multipart/form-data",可以用下列方法获取表单元素的值
StartUpload Request -(Method)开始上传附件
SetSubject formfieldofSubject -(Method)设置主题,参数为subject的fieldname
SetBody formfieldofBody -(Method)设置主体内容,参数为subject的fieldname
SetFrom formfieldofFrom -(Method)设置发件人地址,参数为from的fieldname
SetTo formfieldofTo -(Method)设置收件人地址,多个地址可以用;号隔开,参数为to的formfieldname
SetCc formfieldofCc -(Method)设置抄送人地址,多个地址可以用;号隔开,参数为cc的formfieldname
SetBcc formfieldofBcc -(Method)设置暗送地址,多个地址可以用;号隔开,参数为bcc的formfieldname
SetMaxFileSize longSize -(Method)设置每个附件的最大文件大小
AddAttach formname -(Method)上传附件
Subject -(Property, READ, WRITE)可以获取和设置邮件主题
Body -(Property, READ, WRITE)可以获取和设置邮件正文
From -(Property, READ, WRITE)可以获取和设置邮件发件人
To -(Property, READ, WRITE)可以获取和设置邮件收件人
Cc -(Property, READ, WRITE)可以获取和设置邮件抄送对象
Bcc -(Property, READ, WRITE)可以获取和设置邮件暗送对象
Attachment -(Property, READ, WRITE)可以获取和设置邮件附件,以分号分割
Reply -(Property, WRITE)可以设置邮件回复地址
SaveMessage -(Property, WRITE)可以设置邮件是否保存到发件箱
SaveDraft -(Property, WRITE)可以设置邮件是否保存到草稿箱
ContentType -(Property, WRITE)可以设置邮件发送格式(text/plain, text/html)
SendMail -(Method)发送邮件
UID -(Property, READ)发送完邮件后,邮件将自动保存到收件箱,UID就是文件夹中邮件的UID
//如何调用ASP Webmail来发送邮件
Set objSMTP= CreateObject("CMailCOM.SMTP.1")
objSMTP.CreateUserPath("ASPMail:" & Request("REMOTE_ADDR"))
objSMTP.Subject = "Subject"
objSMTP.Body = "Body"
objSMTP.To = "to@mail.com"
objSMTP.From = "from@mail.com"
'objSMTP.ContentType = "text/plain" ' 以文本格式发送邮件
'objSMTP.ContentType = "text/html" ' 以html格式发送邮件
objSMTP.SendMail
Set objSMTP = Nothing
//帐号申请和设置接口
CMailCOM.Admin.1
LastResponse -(Property, READ)当前服务器返回信息,+OK开头的信息表示成功 -ERR开头的信息表示失败
Login Account, Password -登陆Admin服务器(这个Account的构成可以是Account:IP,就是Account和他的IP地址,这样可以方便服务器知道客户端IP)
LoginSuccess -(Property, READ, BOOL)是否登陆成功
Password -(Property, WRITE)密码
UserName -(Property, READ/WRITE)帐号姓名
Comment -(Property, READ/WRITE)帐号说明
POP3Mail -(Property, READ/WRITE)设置联系邮件地址
Signup Account -(Method)申请帐号(这个Account的构成可以是Account:IP,就是Account和他的IP地址,这样可以方便服务器知道客户端IP)
Modify Account, Password -(Method)修改帐号信息(这个Account的构成可以是Account:IP,就是Account和他的IP地址,这样可以方便服务器知道客户端IP)
Destroy Account, Password -(Method)注销帐号(这个Account的构成可以是Account:IP,就是Account和他的IP地址,这样可以方便服务器知道客户端IP)
//超级管理接口调用
AuthLogin Account, Password -(Method)超级管理接口入口(这个Account的构成可以是Account:IP,就是Account和他的IP地址,这样可以方便服务器知道客户端IP)
Open Object, Information -(Method)选定操作对象和操作内容。Object为管理接口操作对象,可以是某个帐号,也可以是某个域名, Information是用来描写操作内容的。
Value(Field) -(Property, READ/WRITE)获取和设置当前记录的某特定项的值,Field是某特定项的标识
GetData(index) -(Method)获取index对应的记录所有值
Edit(index) -(Method)编辑index对应的记录所有值
Delete(index) -(Method)删除index对应的记录
MoveUp(index) -(Method)将index对应的记录位置上调
MoveDown(index) -(Method)将index对应的记录位置下调
AddNew -(Method)增加一项记录
Update -(Method)更新所有记录
Count -(Property, READ)记录的条数
说明: Open Object, Information里的Information目前支持下列信息操作:
Open Object, "EmailPOP3RemoteInfo" - 操作远程POP3设置 (具体参考 setpop.asp)
Open Object, "EmailForwardInfo" - 操作邮件转发设置 (具体参考 setforward.asp)
Open Object, "EmailFilterInfo" - 操作邮件过滤设置 (具体参考 setfilter.asp)
Open Object, "EmailAutoReplyInfo" - 操作邮件自动回复设置(具体参考 setautoreply.asp)
Open Object, "AccountInfo" - 操作帐号基本信息设置 (具体参考setpersoninfo.asp)
Open Object, "AccountListInfo" - 操作域名帐号设置,需要域管理员以上权限 (具体参考admin.asp)
Open Object, "DomainInfo" - 操作所有域名设置,需要系统管理员以上权限 (具体参考sysadmin.asp)
权限说明:系统管理员可以调用上面任何接口,域名管理员可以调用除"DomainInfo"之外的接口,一般帐号可以调用除"DomainInfo"和"AccountListInfo"之外的接口。
注意: 不同的Information,Value的取值内容和设置内容不同。
Open Object, "EmailPOP3RemoteInfo" 支持
获取 Value("Enable") Value("LeaveCopy") Value("POP3Account") Value("POP3Password") Value("POP3Server")
设置 Value("Enable") Value("LeaveCopy") Value("POP3Account") Value("POP3Password") Value("POP3Server")
Open Object, "AccountListInfo" 支持
获取 Value("Account") Value("Size") Value("MaxCount") Value("MaxSpace") Value("DefaultSize")
设置 Value("Account") Value("Size")
调用顺序说明:
获取某对象的值:
AuthLogin Account, Password
Open Object, Information
GetData(index1)
strValue1 = Value(Field1)
strValue2 = Value(Field2)
GetData(index2)
strValue3 = Value(Field1)
strValue4 = Value(Field2)
变更某对象的值:
AuthLogin Account, Password
Open Object, Information
GetData(index1)
Value(Field1) = strValue1
Value(Field2) = strValue2
Edit(index1)
GetData(index2)
Value(Field1) = strValue3
Value(Field2) = strValue4
Edit(index2)
Update
增加某对象的值:
AuthLogin Account, Password
Open Object, Information
Value(Field1) = strValue1
Value(Field2) = strValue2
AddNew
Value(Field1) = strValue3
Value(Field2) = strValue4
AddNew
Update
删除某对象的值:
AuthLogin Account, Password
Open Object, Information
Delete(index)
Update
删除记录比较特殊,每次调用Delete(index),应该马上调用Update来更新,并重新确立Index。
比如下列代码实际上是删除的第1条和第3条记录。
AuthLogin Account, Password
Open Object, Information
Delete(1)
Delete(2)
Update
正确的调用方法应该是
AuthLogin Account, Password
Open Object, Information
Delete(1)
Delete(1)
Update
或者
AuthLogin Account, Password
Open Object, Information
Delete(1)
Update
Delete(1)
Update
上调记录的顺序:
AuthLogin Account, Password
Open Object, Information
MoveUp(index)
Update
和删除记录一样,每次调用后需要马上更新
下调记录的顺序:
AuthLogin Account, Password
Open Object, Information
MoveDown(index)
Update
和删除记录一样,每次调用后需要马上更新
|