Feb16

dbmail数据库字典中文解释

Author: leeon  Click: 7598   Comments: 0 Category: 数据库  Tag: dbmail

dbmail_acl
表字段名 数据类型 描述
user_id bigint(21) 第一主键,外键与dbmail_users.user_idnr相关联,用来描述用户的唯一ID号
mailbox_id bigint(21) 第二主键,外键与dbmail_mailboxes.mailbox_idnr相关联,用来描述邮箱的唯一ID号
lookup_flag tinyint(1) RFC 2086: 邮箱可见性控制标记
read_flag tinyint(1) RFC 2086: 邮箱可读性控制标记
seen_flag tinyint(1) RFC 2086: 已阅/未读控制标记
write_flag tinyint(1) RFC 2086: 标记存储除了阅读和删除以外的信息
insert_flag tinyint(1) RFC 2086: 标记是否可以添加邮件或复制邮件到此邮箱
post_flag tinyint(1) RFC 2086: 标记是否可以通过此邮箱进行发送邮件操作
create_flag tinyint(1) RFC 2086: 标记是否可以在此邮箱中创建子邮箱文件夹
delete_flag tinyint(1) RFC 2086: 标记邮箱是否已被删除
administer_flag tinyint(1) RFC 2086: 标记是否执行SETACL
dbmail_aliases
表字段名 数据类型 描述
alias_idnr bigint(21) 别名主键
alias varchar(100) 投递到的邮箱别名(此值为rcpt  to中的邮箱)
deliver_to varchar(250) 关联dbmail_users中的用户ID,投递到指定用户
client_idnr bigint(21) 附加属性值,用来规定哪些组中的用户可以向此别名邮箱投递邮件,可以区分同一个用户的不同别名邮箱
dbmail_auto_notifications
表字段名 数据类型 Description
user_idnr bigint(21) 主键,外键与dbmail_users.user.idnr相关联
notify_address varchar(100) 新邮件收到后发往此邮件地址通知收件人新邮件已到

dbmail_auto_replies
表字段名 数据类型 描述
user_idnr bigint(21) 主键,外键与 dbmail_users.user.idnr相关联
start_date datetime 自动回复的起始时间
stop_date datetime 自动回复的终止时间
reply_body mediumtext Message Body sent back to the originator of the recieved mail
dbmail_mailboxes
表字段名  数据类型  描述
mailbox_idnr  bigint(21)  主键
owner_idnr  bigint(21)  外键,与dbmail_users.user_idnr相关联
name  varchar(100)  包括层次结构信息的邮箱名字
seen_flag  tinyint(1)  参见RFC 3501, 6.3.1., 6.3.2., 7.1.: PERMANENTFLAGS永久性标记,邮件已读标记
answered_flag  tinyint(1)  参见RFC 3501, 6.3.1., 6.3.2., 7.1.: PERMANENTFLAGS永久性标记 ,邮件已回复标记
deleted_flag  tinyint(1)  参见RFC 3501, 6.3.1., 6.3.2., 7.1.: PERMANENTFLAGS 永久性标记,邮件删除状态标记
flagged_flag  tinyint(1)  参见RFC3501, 6.3.1., 6.3.2., 7.1.: PERMANENTFLAGS 永久性标记,邮件为紧急或者特别注意标记
recent_flag  tinyint(1)  参见RFC 3501, 6.3.1., 6.3.2., 7.1.: PERMANENTFLAGS 永久性标记,邮件是新到达的邮箱的标记
draft_flag  tinyint(1)  参见RFC 3501, 6.3.1., 6.3.2., 7.1.: PERMANENTFLAGS 永久性标记,邮件未写完标记
no_inferiors  tinyint(1)  参见RFC 3501, 7.2.2.: 标记该名称下是否有任何子层
no_select  tinyint(1)  参见RFC 3501, 7.2.2.: 调剂邮箱是否被选中
permission  tinyint(1)  参见RFC 3501, 6.3.1. 6.3.2. 7.1.: READ-ONLY只读 (value 1) READ-WRITE读写 (value 2)

dbmail_messageblks
表字段名  数据类型  描述
messageblk_idnr  bigint(21)  主键
physmessage_id  bigint(21)  它的外键与dbmail_physmqessage.id相关联
messageblk  longtext  邮件头部或者非正式邮件(最大部分为 512KB)
blocksize  bigint(21)  非正式的邮件块大小
is_header  tinyint(1)  是否是邮件头部1代表是0代表不是
dbmail_messages
表字段名  数据类型  描述
message_idnr  bigint(21)  主键
mailbox_idnr  bigint(21)  外键,与dbmail_mailboxes.mailbox_idnr关联
physmessage_id  bigint(21)  外键,与 dbmail_physmessage.id关联
seen_flag  tinyint(1)  RFC 3501, 2.3.2.: 已读标记
answered_flag  tinyint(1)  RFC 3501, 2.3.2.: 已回复标记
deleted_flag  tinyint(1)  RFC 3501, 2.3.2.: 已删除标记
flagged_flag  tinyint(1)  RFC 3501, 2.3.2.: 邮件紧急标记
recent_flag  tinyint(1)  RFC 3501, 2.3.2.: 最近到达邮件标记
draft_flag  tinyint(1)  RFC 3501, 2.3.2.: 邮件草稿标记
unique_id  varchar(70)  RFC 3501, 2.3.1.1.: 信件的唯一标识符
status  tinyint(1)  Dbmail系统内部邮件状态

dbmail_physmessage
表字段名  数据类型  描述
id  bigint(21)  主键
messagesize  bigint(21)  未加工的邮件大小: 这个值是依据SELECT SUM(mb.blocksize) FROM dbmail_messageblocks mb, dbmail_physmessage pm WHERE mb.physmessage_id = pm.id查询所得计算出来
rfcsize  bigint(21)  RFC 3501, 2.3.4: [RFC 2822]  依据rfc文档计算的邮件大小
internal_date  datetime  RFC 3501, 2.3.3: 邮件接收到的时间

dbmail_subscription
表字段名  数据类型  描述
user_idnr   bigint(21)  主键,外键与 dbmail_users.user_idnr相关联
mailbox_id  bigint(21) 主键,外键与 dbmail_mailboxes.mailbox_idnr相关联

dbmail_users
表字段名  数据类型  描述
user_idnr  bigint(21)  主键,用户id
userid  varchar(100)  登陆的用户名
passwd  varchar(34)  登陆的密码
client_idnr  bigint(21)  与ISP相关的参数
maxmail_size  bigint(21)  RFC 2087 IMAP4中定义的最大邮箱容量
curmail_size  bigint(21)  当前此用户已经使用的容量
encryption_type  varchar(20)  dbmail中对添加用户的密码的加密类型
last_login  datetime  用户最后一次登陆IMAP’/POP3的时间

 

Feb16

分享我的PHP分页函数类[原创]

Author: leeon  Click: 7820   Comments: 2 Category: php  Tag: php,分页
构造函数中的两个参数为查询的SQL语句和每页显示的行数
最终样式为:

CSS源码:
[code="css"]
#pages{display:block; text-align:center; overflow:hidden; color:#000; font-size:13px}
#pages a{color:#333; text-decoration:none; font-family:Verdana,Geneva,sans-serif; padding:2px 3px; display:block}
#pages li{float:left; display:inline-block; border:1px solid #999; margin-right:3px; margin-left:3px}
#pages #spages{background:#CCC; font-weight:bold; color:#36C}
[/code]
PHP分页函数类源码:
[code="php"]
<?php
/*
* 分页模块
*/

interface Page{
public function showpage();
}

class AdminPage implements Page{
/*
* 构造参数
* SQL语句,每页显示数,url
*/
private $sql;
private $pageline; //每页显示多少行数据
private $urlstr;
private $nowpage;
private $totalNum;
private $pageNum;
private $pageStr;// 形成分页字符串

public function __construct($sql,$p){
$this->sql = $sql;
$this->pageline = $p;
$this->urlstr = $_SERVER['SCRIPT_NAME'];
if(empty($_GET['p'])){
$this->nowpage = 1; //初始化当前页数为1
}else if(is_numeric($_GET['p'])){
$this->nowpage = $_GET['p'];
}else{
$e = new Error(6);
$e->show();
}

$s = new Sql();
$this->totalNum = $s->results_exist_num($this->sql);
$this->pageNum = ceil($this->totalNum/$this->pageline);

}
/*
* 形式为:
* 首页| 上一页| 1 | 2 | 3 | 4 | 5 |下一页 | 末页
*
*
*/

public function showpage(){
if($this->pageNum >=1 && $this->nowpage <5 ){

if( $this->pageNum <=5){

$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>';
if($this->nowpage!=1){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>';
}
for($i=1;$i<=$this->pageNum;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
if($this->nowpage !=$this->pageNum){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>';
}

$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>';
echo $this->pageStr;

}else if($this->pageNum>5){

$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>';
if($this->nowpage !=1){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>';
}

for($i=1;$i<=5;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
if($this->nowpage !=$this->pageNum){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>';
}

$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>';
echo $this->pageStr;
}

}else if($this->nowpage <= $this->pageNum -2 && $this->nowpage>=5){
$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>';
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>';
for($i=$this->nowpage-2;$i<=$this->nowpage+2;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>';
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>';
echo $this->pageStr;

}else if($this->nowpage>=$this->pageNum-3 && $this->nowpage <=$this->pageNum){

$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>';
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一页</a></li>';

for($i=$this->pageNum-4;$i<=$this->pageNum;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
if($this->nowpage !=$this->pageNum){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一页</a></li>';
}

$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>';
echo $this->pageStr;

}
}
}
[/code]
Feb16

IMAP中标记的邮件属性解释

Author: Jason0086  Click: 9174   Comments: 0 Category: 网络  Tag: RFC3501,IMAP
标记的邮件属性

    与邮件相关联的一个0串或者已命名的符号串。向该串中新增时,设置一个标记,从该串中删除时,清除该标志。IMAP4rev1中有两种标记。两种标记的实例都可以是永久化的,或者会话化的。

    系统标记是指在本文档中预告确定的。所有的系统标记以“/”开头。一些系统标记(/Deleted和/Seen)在其它地方的描述中有特殊的语义。目前定义的系统标记有:

/Seen

邮件已读

/Answered

    邮件已回复

/Flagged

    邮件标记为紧急或者特别注意。

/Deleted

    邮件为删除状态。

/Draft

    邮件未写完(标记为草稿状态)。

/Recent

    邮件是新到达邮箱的。这个会话是关于这个邮件的第一个会话;如果这个会话是可读写的,后续会话将看不见这个邮件的/Recent设置符。客户端不能修改该标记。

    一个会话,如果不能判断它是不是关于一个邮件的第一个会话,那么就应当考虑这个邮件是新的。

     如果多个连接同时选中了同一个邮箱,哪个连接会看到带有/Recent设置符的、新到达的邮件,哪个连接会看到没有/Recent设置符的邮件,这还没有定义。

    关键词是由服务器实现体定义的。关键词并不以“/”开头。服务器可以允许客户端定义新邮箱中的关键词(更多信息参看PERMANENTFLAGS响应码的描述)。

    一个标记可以是永久的,或者会话化的(标记的生命周期为某个会话)。对于永久标记,客户端可以增加,或者从邮件标记集中永久删除;即,当前和后续会话将可以看见永久标记集中的任何变化。对会话标记的改变只在其会话内是可视的。

    注意:/Recent系统标记是会话标记的一个特例。/Recent不能在一个STORE或者APPENT命令中作为一个变量,也不能被改变。
更多信息参见RFC3501中文文档: [ENTER]

Feb15

SyntaxHighlighter代码测试

Author: leeo  Click: 6909   Comments: 0 Category: 其他  Tag: SyntaxHighlighter

[code="php"]
<?php
echo "Hello world";
?>
[/code]

分类

标签

归档

最新评论

Abyss在00:04:28评论了
Linux中ramdisk,tmpfs,ramfs的介绍与性能测试
shallwe99在10:21:17评论了
【原创】如何在微信小程序开发中正确的使用vant ui组件
默一在09:04:53评论了
Berkeley DB 由浅入深【转自架构师杨建】
Memory在14:09:22评论了
【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
leo在17:57:04评论了
shell中使用while循环ssh的注意事项

我看过的书

链接

其他

访问本站种子 本站平均热度:9360 c° 本站链接数:1 个 本站标签数:464 个 本站被评论次数:94 次