MAC OSX Lion 下搭建PHP开发环境(nginx+php)

MAC OSX 下有类似于 centos下的 yum 包管理工具,就是 macports

首先安装macports

下载最新的macports的Mac OS X Package(.pkg)安装包

源代码来编译安装了,其中nginx和php是通过macport进行的,

mysql则通过官网的dmg包进行安装。

首先安装macport,从其官网上下载dmg包进行安装,安装完成后重启bash执行sudo port selfupdate。

接下来安装php(安装了fastcgi模块,这里通过fastcgi来执行php),打开bash,输入

sudo port install php5 +fastcgi fcgi php5-gd php5-mysql php5-sqlite php5-curl php5-iconv

待安装完成后,继续执行

cd /opt/local/etc/php5

sudo cp php.ini-development php.ini

然后打开配置文件php.ini,修改时区

date.timezone=Asia/Shanghai

和错误级别

error_reporting=E_ALL&~E_NOTICE

,其他配置项视情况修改。

启动phpfcgi:

sudo /opt/local/bin/spawn-fcgi -C 2 -p 9000 /opt/local/bin/php-cgi

执行后即在9000这个端口监听请求。

杀死phpfcgi进程:sudo killall -9 php-cgi。

接下来安装nginx,输入

sudo port install nginx spawn-fcgi

安装完毕后,执行

vim /opt/local/etc/nginx/nginx.conf

修改配置文件。可大致参考:

# 自动显示目录索引

autoindex on;

autoindex_exact_size on;

autoindex_localtime on;

server{

#web根目录的位置,这里直接使用当前目录

root /Users/你的用户名/Sites/;

index  index.php index.html index.htm;

#本机自用,关闭log     access_log off;

#php的设置     location ~ \.php$ {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME /Users/你的用户名/Sites/$fastcgi_script_name;

include        fastcgi_params;

}

}

配置文件写好后,可通过sudo nginx -t来检测配置文件是否有效。

启动nginx:  sudo nginx

重启nginx的命令是: sudo nginx -s reload

nginx启动成功后,访问http://127.0.0.1检查是否有效。如正常,则可创建index.php以测试php部分是否正常。index.php的典型内容是:

<?php phpinfo();

访问这个页面,正常则可看到php的相关信息。

mysql的安装则很简单,访问官网下载相应的版本安装即可。安装完成后可执行 sudo vim /etc/bashrc ,在bash的配置文件中添加mysql和mysqladmin这两个工具的别名。在bashrc文件的末尾添加:

alias mysql=’/usr/local/mysql/bin/mysql’ alias mysqladmin=’/usr/local/mysql/bin/mysqladmin’

完成后重启bash。默认情况下mysql的root账号是没有密码的,可以通过 mysqladmin -u root password  “新密码”来设置。

接下来安装phpmyadmin作为mysql的管理工具。从官网下载文件后解压到~/Sites目录,目录名为phpmyadmin,然后执行  cp ~/Sites/phpmyadmin/config.sample.inc.php ~/Sites/phpmyadmin/config.inc.php  ,然后打开config.inc.php文件,修改以下内容:

$cfg[‘blowfish_secret’] = ‘输入一串字符’;  //cookies加密用

访问 http://127.0.0.1/phpmyadmin 输入账户密码,即可进入管理界面。此时可能会看到一些提示,比如没有mbstring库,安装mbstring后即可正常,重新执行上文提到的php安装指令(需在指令末尾加上php5-mbstring)即可。

至此,nginx-php-mysql基本配置完毕。

身体各个局部暴瘦的方法

1.下巴:就是抬头!一定要使劲儿仰头,感觉下巴和脖子都收紧了,停5秒再放下,每天做20~40下。一周就会见到效果。
2.上臂内侧:两个小哑铃(可用矿泉水代替),握在手里,抬起胳膊,使上臂贴近耳朵,然后曲肘,再伸直胳膊。这样为一下。每天做3组,一组15个。
3.减后背:1)准备两个哑铃,站立姿势,双臂自然下垂,握住哑铃,上臂向后做提东西的动作,把哑铃提到胸部的侧面。15个为一组,每天做3组。
2)站立,双臂自然下垂,手心向后握住哑铃,向后抬起。做这个动作时保持胳膊是伸直的。15个为一组,每天做3组。
这两个动作可以锻炼到背部,但背部的脂肪比较难减,一般的运动很难充分锻炼到这个部位,MM需要坚持一段时间。
4.上腹部:上腹部就是胃的部位。最简单的方法就是仰卧起。注意,不是仰卧起“坐”!如果你做这个运动的时候坐起来了,对你的脊柱不好,而且做的时候不要把手放到脑后,用手扶住耳朵就可以了,不然对颈椎有伤害。每天做最少3组,一组20个。
5.下腹部:就是“小肚腩”。平躺,双腿伸直,双脚并拢,缓慢的抬起来,与身体成90度角,再慢慢放下。这个动作做起来会很累,但可减少大腿前侧的肉肉。每天最少做2组,一组15个。
6.减腰两侧:1)一个是摇呼啦圈(有氧运动要持续30分钟以后才开始消耗脂肪,所以运动最少30分钟),一周后明显感觉两侧的肌肉收紧了。
2) 站立,两脚分开略比肩宽,胳膊伸平,身体呈“大”字。然后腰部侧弯用左手去触左脚踝,然后再站直,换右面。做的时候会觉得腰部两侧的肌肉有被拉伸的感觉。左右各一下为一组,每天做30个。
7.减臀部:趴在床上,两腿伸直,做游泳拍水的动作,两腿交替向上抬起,动作稍慢,胯部不要离开床。左右各一次为一下,15下为一组,每天做3~4组。
8.减胯部:侧踢腿。站立,左腿向侧面抬起,保持膝盖向着前方。慢慢抬起,到你能承受的最高位置,再慢慢放下。一侧15下为一组,每天做2~3组。
9.减大腿:1)大腿内侧:做下蹲运动。站立,两脚分开与肩同宽,脚尖向外,数1234慢慢下蹲,蹲到和地板诚平行。数5678再缓慢站起。下蹲时脚跟不要抬起,一定要落在地板上,而且动作要慢。每组做15个,每天做3~4组。
2)大腿前侧:同上。因为这个动作可以同时锻炼到大腿前侧的肌肉。
3)大腿后侧:站立。做后踢腿的动作。做时动作也要缓慢。一个八拍为一个,每组做15个,每天3~4组。每个人的身体柔韧性不同,不要太勉强自己,以免拉伤肌肉。
10.减小腿:检验小腿脂肪多少的方法很简单,放松腿部,然后用手指捏小腿肚子的部位,能轻松捏起脂肪层的就说明你的腿是脂肪型的,需要减减了~如果脂肪层很薄,光是肌肉就显得腿很粗,那就是肌肉型的。
1)脂肪型:最有效的方法就是踮脚尖,20下为一组,每天做4组。要领是动作要慢,臀部不要翘起。踮起脚尖后停3秒左右。做完运动后记得要用手轻轻抖动小腿肌肉部位,放松一下。
2)肌肉型:这要减起来就很困难了,对于肌肉型的MM,只能建议不要做强度很大的腿部运动,高跟鞋少穿,以免肌肉过于紧张而变得更粗壮。
还有,锻炼时要去感觉你所锻炼的部位有没有在运动,比如锻炼大腿部位时,你要在下蹲的同时去感觉一下你的大腿肌肉有没有收紧,做完运动后这个部位有没有酸酸的。如果有,说明你已经锻炼到这个部位了,如果没有就说明你的姿势不对,需要自己调整一下。
美腿的标准 美腿就是,有5处并拢,4处空隙的腿。具体来说,就如以下图片所示,标有○的5处(大腿,膝,腓,脚脖子内侧,脚尖)左右紧贴在一起,标有×符号的4处(大腿和根儿之间,大腿和膝之间,膝和腓之间,腓和脚脖子之间)是处于分开的状态。除此之外,如果膝朝向着正面且腿形笔直的话,可以说是非常美丽的腿了。
大腿篇通过以下的练习可以消耗掉你大腿多余的脂肪和赘肉。在塑造完美的腿部线条的同时,也可以锻炼大腿肌肉的张力。
去掉腿部多余的赘肉
1、身体侧躺在地板上,将两脚绷直
2、膝盖保持绷直的状态。大腿内侧的肌肉施力,将下侧的腿抬起。这个姿势保持10秒,换另一边。
在练习时,如左右两腿其中一条较难抬起,应在原本的时间上对该腿的练习增加5~10秒,这样可以使左右腿的肌肉更加匀称。
锻炼腿部肌肉的张力(每天各10秒)
1 眼看前方,直立。挺胸收腹。尽可能的将全身肌肉放松。
2 单腿曲起,同侧的手握脚掌,拉伸前腿肌肉。保持这个姿势10秒,后换另一边进行。
练习时,如左右两腿其中一条较难抬起,应在原本的时间上对该腿的练习增加5~10秒。
小腿篇收紧小腿肌肉,打造美丽的腿部线条。(每天5秒)
1 找一本4~5cm厚度的书,脚尖立于书上,脚后跟处于悬空状态。
2 双脚并拢,身体重心放于两脚的大脚趾处,将脚尖踮起。在保持身体平衡的同时,将这个姿势坚持5秒。
如果没有那么厚的书的话,也可以将杂志叠在一起使用。在踮脚站立时,要注意用到腓部肌肉。
放松腓部肌肉 (每天各10秒)
1背部和双腿保持90度的姿势坐在地板上,面向前方。
2双腿伸直,两手握住其中一只脚掌,将腿缓缓抬起,这个姿势保持5秒。换另一边。在做此组练习时,要注意两腿间保持并拢状态,且膝盖处不弯曲。
在双手握住脚掌的时,身体容易前倾,这个时候要注意背部需保持伸直不弯曲。
o型腿和x型腿篇
通过以下的练习,可以充分锻炼腿外侧或腿内侧的肌肉,使腿部线条匀称,矫正腿部形状。
a:o型腿 (每天 3秒×5次)
1 挺胸收腹直立于地板。
2 双腿曲起,从外向里做圆周运动。
3 膝盖并拢时,保持膝部弯曲状态3秒。
b:x型腿
1挺胸收腹直立于地板。
2 双腿曲起,自内向外做圆周运动。
3膝盖并拢时,保持膝部弯曲状态3秒。
在双腿做大幅度的圆周运动时,易使臀部翘起。因此此动作的关键在于下腹部施力。
矫正腿部形状(每天各静止5秒×3次)
1蹲在地板上,手掌与地板充分接触
2 保持手掌和地板的接触状态,慢慢站起,这个过程以5秒为宜。
3 至腿部完全绷直,这个姿势坚持5秒。若在直起时,膝盖不能完全伸直,可以将手的位置稍作调整。
在做这组练习时,需注意保持手掌和地板之间,两个膝盖之间不分开。
美腿之路五大禁忌
禁忌一:双脚在同一边的侧坐,叉开腿坐,盘腿坐。
禁忌二:单腿站立,双腿交叉站立。
禁忌三:侧身睡,趴着睡。
禁忌四:穿太高跟的鞋子。
禁忌五:一直将包挎在同一边。
4个消除眼袋的超省钱省时法
导读:眼睛是最容易泄漏女的的秘密的。爱美的你还在为眼角的细纹烦恼吗?没关系,介绍几款简单有效而且又省钱的护眼**吧。让你的眼睛永远20岁。
1.番茄+糖将番茄肉挖出,用汤匙捣烂成茄蓉。加入砂糖拌匀,敷面15分钟后用温水洗净。番茄含有丰富他命C ,具美白、均匀肤色及淡化黑色素功效,而砂糖具去角质及均匀肤色功效。
2.番茄+蛋白将茄肉挖出并捣烂成茄蓉后,加入蛋白拌匀,敷面10分钟后清洗,番茄的酸性汁液有助平衡肌肤的pH值,能改善过盛的油脂分泌,清除表皮老化角质污垢,而蛋白有助收细孔毛。
3.茶包+棉片用热水泡甘菊荼,放凉。用棉片浸茶敷在眼皮上15分钟。每周2激。可消除眼袋
4.银耳把银耳熬成浓汁,装入小瓶内冰镇。每次取3-5滴涂于眼角和眼周。有润白去皱、增强皮肤弹性的作用。每日一次

按上面图片中的动作做,每天每个动作重复20次,只要坚持,一定可以修出漂亮身材!大家不妨试试看哦 最重要是坚持阿!! 弄掉你的小肚子吧

图片图片图片­ 这些小运动, 只要每天挑一个做十分钟 两个星期内就会见效­ 这些是有氧运动­ 要慢慢的做­ 不要拼了老命的做­ 如果是第一次做的人­ 建议先做二十下­ 再看个人状况逐日增加­ 不要太勉强­ 但一定要持之以恒­ 加油吧!!!­图片图片图片图片图片图片图片图片图片图片图片

 

10个减肥窍门巧过寒冬发胖关
[导读]冬天天气寒冷,运动量减少,而身体又恰巧需要更多的热量,好抵御寒冷。于是,体重称赏不断增长的数字就成了多吃少动的后果 。但是,寒冷冬季的背后潜藏着10个危险的发胖陷阱。决定要减肥的你若稍不留神,便会“一胖而不可收拾”,发福的时候可别后悔哦!
陷阱一:早晚充满寒意的天气,让不少人失去了户外锻炼的勇气。原本定期游泳的习惯,也因为水变凉、换衣服麻烦而悄无声息了。
跨越陷阱:做做室内运动养成运动的习惯就要坚持,每周固定运动4天,每天只需20至30分钟,就可以提高你身体的新陈代谢率,你任何时候都 不必担心发胖了。
这里推荐给你四种室内运动:
1.看电视顺便摇一摇呼拉圈:摇呼啦圈每公斤每小时可消耗约5大卡的热量,以45公斤的体重为例,一个小时大约可消耗45(公斤)*5大卡=225卡的热量,而且假以时日还会变成纤腰款款的美人。
2.买卷韵律操录影带跟着跳:针对身体各部位的结实身体曲线的运动,简单又没有场地限制,每公斤每小时消耗4.2至5.7大卡的热量。
3.爬楼梯:来来回回爬楼梯,可增加心肺功能,每公斤每小时消耗的热量更是惊人,有10至18大卡。
4.跳绳:连小学生都会的运动,每公斤每小时消耗10至15大卡的热量。
陷阱二:天凉以后,浴室的温度相应降低,浴缸里的热水也很快就凉了,于是匆匆洗完了事。
跨越陷阱:事先做做暖身体操进浴室前可以先做做暖身体操(大概3至5分钟即可),让身体“热”起来,血液循环顺畅,新陈代谢也开始起步, 再泡热水澡就不会一下子难以适应了。
浴缸里的温度一开始不要太高,水以放到胸部以下为宜(怕冷的话可以在肩上披块浴巾),逐渐把水温和水量增加。记得在浴盆里顺便做些 小运动,按摩身体等等——在浴盆里做运动会瘦得很有效果。
陷阱三:衣服一天比一天穿的多,穿在身上偶然觉得有点紧,换件宽松点的就是,从此对自己的线条越来越不在意。
跨越陷阱:别让自己养成”眼不见为净“的恶习,那是一种自欺欺人的做法,你将无从比较,渐渐丧失警戒。建议你从现在起就养成早晚称体 重的习惯,一周量一次身体各部分的尺寸,才能确实地掌握身体曲线的变化。平时多穿合身的衣服,裤腰一紧就知道自己变胖了,否则到了明 年夏天你发现一切都晚了时,才真是追悔莫及。
陷阱四相信很多人都有过夏季吃不下饭的“苦夏”经历,气温降低之后,胃口大开,加之街头小吃的诱人香味,于是大开“食戒”,往常不感 兴趣的炸鸡之类食品也忍不住要大块朵颐。
跨越陷阱:是真的很想吃炸鸡,你必须降低每餐油脂量的摄取。比如说,本来想吃炒青菜的,就以凉拌青菜代替,想吃煎鱼,以清蒸鱼代替。 经常在外吃饭的人,可以准备一碗热水或是清汤,将油分滤掉。只要维持一天的总油脂量不超出标准,你就可以安心享受美食。
陷阱五:人在天凉的时候胃口很好,吃饭又快,一顿饭稀里胡涂地吃了好多还意犹未尽。
跨越陷阱:降温后人的基础代谢率比夏天高,自然而然地食物摄取量增加,食欲大增。而人的饱食中枢由胃传到大脑,需要30分钟,如果一下 子把饭吃完,大脑还没有收到吃饱的讯号,当然就会因没有饱足感而一碗接一碗了。养成细嚼慢咽的习惯,是减少多余食物摄取的不二法门。 此外,餐前先喝汤或是一大杯水,让胃得到饱足感,也是应变的方法。
陷阱六:这个时候很容易有便秘的毛病,鼓鼓的小腹让别人以为自己已胖的有了小肚子了。
跨越陷阱:运动量和喝水量的减少时便秘的机会大大增加。你除了应持续保持运动、多喝开水之外,要尽量少吃甜食、油炸的食物,多吃含有 丰富纤维质的食物,像蔬菜、魔芋、菇类食物,刺激肠胃蠕动,鼓起的小腹自然向你说Bye-Bye。
陷阱七:开怀吃火锅的季节又到了,哇,多来一碟香油,再端一碗麻酱,羊肉片和牛肉也很好吃,再要一碟吧!
跨越陷阱:你可以安心地和大伙去吃火锅,但你必须先了解什么是使你致胖的要害。
第一,火锅料都是用水煮的,已是低脂烹调食物,但可别忽略那“可怕的汤”,因为所有的油都在汤里,火锅汤是“精华”所在。
第二,要吃火锅,就不能没有够味的各式调料,不过它们的超高热量,却是肥胖的陷阱。
第三,各式各样的肉片、肉丸想必是火锅里的常客,而它们却常带着油滋滋的肥肉,这可是致胖的危机呢!这里告诉你几个开怀吃火锅又不必 发胖的诀窍:第一,多吃青菜,让自己有饱足感,尽量少喝汤,少吃肉类。第二,为了取代油腻、热量超乎想象的调味料,你可以自制调味料 ——酱油+葱+蒜+辣椒一拌,一样很够味。第三,多购买一些魔芋粉丝、魔芋块当火锅料,魔芋纤维高、热量低,大大减少了发胖的机会。
陷阱八:天冷吃冰淇淋之类甜食和冬天穿短袖一样似乎已成为时髦小姐的标志。各种口味的冰淇淋,美味确实让人无法拒绝。于是,来一个吧, 哇,再来一个……
跨越陷阱:想解解馋也是无可厚非,那就少吃半碗吧!但还是要尽量克制自己,偶一为之,否则缺乏某些营养,许多毛病就会接踵而来。
陷阱九:随着气温的逐渐降低,吃零食的欲望越来越强烈,尤其是在无所事事的夜晚,你的意志会完全失去抵抗力。
跨越陷阱:如果你实在是觉得不找点什么来吃就不行,选择的食物必须加倍小心。热量低、容易消化、能补充体力又能满足食欲的食物,比如 温热多汤的咸稀饭、汤面等,都比较合适。
千万避免不易消化的油炸食品及炖煮类,那只会让你第二天站上磅秤时懊悔不已。如果意志力尚未完全被欲望打败,建议你选择低脂牛奶、水 果、魔芋果冻等低热量食品,平静心情、养颜美容,一箭双雕。
陷阱十:夏天水分丧失很快,喝在多的白开水也不会觉得平淡无味。这时候就不同了,香浓的可可、奶茶,会比白开水来的更诱人。过不了多久 ,你就会发现,怎么没吃什么也会胖呢?
跨越陷阱:嫌喝白开水平淡无味吗?教你自制简单方便的“柠檬水”:挤一点柠檬到白开水里,如果你不喜欢太酸,可以再加一些糖,这样的 柠檬水味道酸酸甜甜,可增加喝开水的欲望。
此外一颗柠檬的热量不超过30大卡,加水稀释后热量几近于零。你还可用杜仲茶、花草茶、绿茶等冲泡式茶包代替,它们天然的香气可不 是可可及奶茶所能代替的。

Photoshop中各种参数的含义及设置技巧

Photoshop中各种参数的含义及设置技巧

PNG8的参数设置

PNG8参数设置

减低颜色深度算法与颜色

指定用于生成颜色查找表的方法,以及想要在颜色查找表中使用的颜色数量。可以选择以下减低颜色深度算法之一:

  1. 1、可感知:通过为人眼比较灵敏的颜色赋以优先权来创建自定颜色表。
  2. 2、可选择:创建一个颜色表,此表与”可感知”颜色表类似,但对大范围的颜色区域和保留 Web 颜色有利。此颜色表通常会生成具有最大颜色完整性的图像。“可选择”是默认选项。
  3. 3、随样性:通过从图像的主要色谱中提取色样来创建自定颜色表。例如,只包含绿色和蓝色的图像产生主要由绿色和蓝色构成的颜色表。大多数图像的颜色集中在色谱的特定区域。
  4. 4、受限 (Web):使用 Windows 和 Mac OS 8 位(256 色)调板通用的标准 216 色颜色表。该选项确保当使用 8 位颜色显示图像时,不会对颜色应用浏览器仿色。(该调板也称为 Web 安全调板。) 使用 Web 调板可能会创建较大的文件,因此,只有当避免浏览器仿色是优先考虑的因素时,才建议使用该选项。
  5. 5、自定:使用用户创建或修改的调色板。如果打开现有的 GIF 或 PNG-8 文件,它将具有自定调色板。使用”存储为 Web 和设备所用格式”对话框中的”颜色表”调板可自定颜色查找表。
  6. 6、黑白、灰度、Mac OS、Windows使用一组调色板。

建议:一般情况下默认选择“可选择”项即可。

减低颜色深度算法设置

仿色方法和仿色

确定应用程序仿色的方法和数量。”仿色”是指模拟计算机的颜色显示系统中未提供的颜色的方法。

较高的仿色百分比使图像中出现更多的颜色和更多的细节,但同时也会增大文件大小。为了获得最佳压缩比,请使用可提供所需颜色细节的最低百分比的仿色。

若图像所包含的颜色主要是纯色,则在不应用仿色时通常也能正常显示。包含连续色调(尤其是颜色渐变)的图像,可能需要仿色以防止出现颜色条带现象。

可以选择以下几种仿色方法之一:

  1. 1、扩散:应用与”图案”仿色相比通常不太明显的随机图案。仿色效果在相邻像素间扩散。
  2. 2、图案:使用类似半调的方形图案模拟颜色表中没有的任何颜色。
  3. 3、杂色:应用与”扩散”仿色方法相似的随机图案,但不在相邻像素间扩散图案。使用”杂色”仿色方法时不会出现接缝。

建议:一般只在图片颜色过多产生失真的情况下才需要选择仿色。建议选择扩散仿色,可以适当调节仿色的百分比以达到最佳的效果。仿色度越高文件大小也越大。

仿色设置

透明度和杂边

确定如何优化图像中的透明像素。

  1. 1、要使完全透明的像素透明并将部分透明的像素与一种颜色相混合,请选择”透明度”,然后选择一种杂边颜色。
  2. 2、要使用一种颜色填充完全透明的像素并将部分透明的像素与同一种颜色相混合,请选择一种杂边颜色,然后取消选择”透明度”。
  3. 3、要选择杂边颜色,请单击”杂边”色板,然后在拾色器中选择一种颜色。或者,也可以从”杂边”菜单中选择一个选项:”吸管”(使用吸管样本框中的颜色)、”前景色”、”背景色”、”白色”、”黑色”或”其它”(使用拾色器)。

建议:强烈建议由视觉设计师根据实际应用场景在保存之前就处理好透明图像的背景。

透明度杂边设置

交错

PNG、GIF这两种图像格式都提供了一种功能,让图像能够更快地显示。图像可以以一种特殊方式存储,显示时先大概显示图像的草图,当文件全部下载后再填充细节。这起到一种很有意义的心理效果,因为这样使人们有东西可看,而不必坐着干等大型图像慢慢显示在屏幕上。

建议:对于尺寸和文件大小相对较大的图片建议勾选此项。

JPG的参数设置

JPG参数设置

品质

从”品质级别”菜单中选取一个选项,或者在”品质”文本框中指定一个值。”品质”设置越高,压缩算法保留的细节越多。但是,使用高”品质”设置比使用低”品质”设置生成的文件大。查看几种品质设置下的优化图像,确定品质和文件大小之间的最佳平衡点。

品质设置技巧

  1. 1、不要存100%品质的JPG格式图片。因为100%并不一定是最高的品质,而是一个优化算法的极限值,所以会增加不必要的文件大小。建议存储95%品质的图片就可以最大限度的降低失真。
  2. 2、谨慎使用50%品质以下的压缩率。使用50%以下品质存储时会采用额外的压缩算法而导致图片失真更严重,尤其是对于有高对比度的图片。

优化

选择”优化”创建文件大小稍小的增强型 JPEG。建议使用”优化 JPEG”格式以获得最大文件压缩量;但是,一些较旧的浏览器不支持此特性。

建议:建议勾选此项,目前基本已经不存在不支持改功能的浏览器。

连续

选择”连续”创建在 Web 浏览器中连续显示的图像。图像将显示为一系列的叠加,使查看者在整个图像下载完毕之前,能够看到图像的低分辨率版本。连续 JPEG 需要更多的内存用于查看,一些浏览器不支持该选项。

建议:勾选此项在某些情况下可压缩文件大小(图片大小大于10k时),某些情况下会增大文件大小,建议在保存是根据实际情况决定。不过IE6及更早版本的IE浏览器不支持JPG连续显示,而是在图片完全加载后一次成像,用户体验上可能还不如不使用连续的逐步成像要好,所以建议慎选此项。

模糊

指定应用于图像的模糊量。”模糊”选项应用与”高斯模糊”滤镜相同的效果,并允许进一步压缩文件以获得更小的文件大小。建议使用 0.1 到 0.5 之间的设置。

ICC 配置文件

选择”ICC 配置文件”将图片的 ICC 配置文件与文件保留在一起。ICC 配置文件由某些浏览器用于色彩校正。(请参阅Photoshop中设置色彩管理。)

杂边

指定原稿图像中透明像素的填充色:点按”杂边”色板,然后在拾色器中选择一种颜色。从”杂边”菜单中选取选项。原稿图像中完全透明的像素由选中的颜色填充,原稿图像中部分透明的像素与选中的颜色相混合。

10个基于Ajax的PHP Webmail客户端

1. RoundCube

RoundCube Webmail 是一个基于浏览器的IMAP 客户端,其提供了丰富的功能,包含MIME,地址本,文件夹操作,邮件搜索和拼写检查。 RoundCube Webmail 由 PHP写成,需要 MySQL 或 Postgres 数据库的支持。其UI完全遵守于XHTML 和 CSS 2.

webmail1

2. Zimbra

Zimbra 提供了一个开源的邮件和日历系统,也是基于Ajax技术,非常强大的客户端,他可以通过web service集成第三方的应用“mash-ups” ,于是你可以享有CRM,地图或其它更多的功能。

webmail2

3. Xuheki

Xuheki 是一个很快的 IMAP 使用AJAX技术开发的客户端。你能想到的功能它基本上都有了,它使用的是 GNU General Public License.

webmail3

4. SquirrelMail

SquirrelMail 这是一个中规中矩的webmail,PHP语言写成,并没有使用AJAX技术,所以并不是很炫,不过它是使用了纯内建的PHP功能支持了IMAP和SMTP。所有的页面都是纯HTML 4.0 (没有任何JavaScript) ,这样的目的主要是为了最大化兼容于不同的浏览器。

webmail4

5. Atmail

AtMail, 一个免费的轻量级的 Ajax Webmail 客户端,由PHP写成,支持WEB和WAP。

webmail5

6. afterlogic

AfterLogic WebMail Lite PHP 是一个非常易用的 webmail 但其界面又非常Cool,其支持 AJAX 和皮肤。支持POP3 和 SMTP。支持收发邮件,多附件,多帐号,多域,邮件预览,站点管理。安装非常容易,需要PHP 4.1+,完全开源并完全免费。

webmail6

7. Hastymail

Hastymail 是一个有完整功能的 IMAP/SMTP 客户端,由 PHP 写成。兼容于 PDAs, 手机, 文本浏览器,以及所有的主流浏览器。 Hastymail 有强大的 插件 系统,因为PHP程序员可以随意地改变或增加自己想要的插件。

webmail7

8. Mailr

Mailr 是一个开源的 webmail 由 Ruby写成,它使用 Ruby On Rails 的web application 框架。

webmail8

9. Claros inTouch

Claros inTouch 是一个Ajax 消息套装其包含了主要特性有webmail,地址本,记事本,日历(还在开发),网络硬盘 (还在开发),内建的即时聊天,以及RSS阅读器。这是第一个开源的webmail其包含了内建的垃圾邮件保护和即时聊天功能的项目。但主要使用了Java语言,利用 JSP/Servlets 及 J2EE技术和 MySQL 数据库。

webmail9

10. Postaci

Postaci 是一个基于 PHP 的POP3/IMAP 邮件客户端,其支持 SMTP 认证。 其使用MySQL, mSQL, Microsoft SQL, Sybase 或PostgreSQL数据库。

webmail10

文章:来源

我曾经想去改变这个世界

当我还是个年轻人的时候,我的理想就是 去改变这个世界。

但我发现这太难做到了,于是我就决定去 改变我的国家。

当我发现自己没有能力去改变祖国之时, 我就决定去改变我的故乡。

但我也没有能力去改变我的故乡。随着年 纪的增大,我一心想的就是去改变我的家 庭。

现如今,我已是一位老人。我意识到自己 有能力改变的唯一一样东西便是我自己。 我突然意识到,要是我在很久很久的以前 就致力于改变自己,那我的家庭或许就会 发生改变。我和我的家人也就能进而改变 我们的故乡。故乡的新面貌会改变我的祖 国,最后就是实现改变这个世界的梦想。

 

http://article.yeeyan.org/view/222854/310017

JS 库浅析之 Google Closure

http://ued.sohu.com/article/611

首先,祝咱们所有搞前端开发的童鞋们新年快乐,同时祝大家新的一年在前端开发领域走的更高更远,都赚大钱!当然,如果想在年后换一个工作环境的同学,这里我们提供给大家一个加入搜狐 UED 和我们一起进步和提高的机会,详情点这里

说正题了,相信大家经过两周的时间,状态都差不多调整和恢复过来了吧,年前的一小段时间,手头开发计划不是很多,就计划着把公司内部我们自己开发的一个JS库进行重构和完善,把它提升到框架的高度,而不简单的是一个工具箱,希望能提供给前端开发更多的指导方案,所以就花了点时间分析了一下现有常见的几个库,希望能帮助我们自己带来一些新的思路,我这边主要是对库中JS文件组织规划,类实现,接口使用模式三个方面,下面就先对Google Closure中的JS库部分,类实现做一个简单分析

文件结构图

说明: 下面我们先看看Google Closure的源文件物理结构图,有个比较直观的了解,后面会具体进一步分析,具体的类,命名空间和物理结构的关系

图例:

gc

分析:

  • goog 是顶级文件夹,它又包含了更多的子文件夹(如:timer、ui)
  • 每个子文件夹下面一般都包含了具体的JS源文件(如:tooltip.js)
  • 有时候子文件夹下面还包含了更下一级的文件夹(如ui下面的editor),而更下一级文件夹又包含了JS源文件
  • 这里大部分深度是两层文件夹,第三层是JS源文件,而最大的深度是三层文件夹,第四层是JS源文件
  • 总的来说,整个组织结构还是比较扁平简单的,没有太复杂的组织规划

一个比较完整的类实现实例(toolTip.js)

说明:这里是摘 自Google Cloure Lib中的一个ui类 Tooltip的实现,中间为了简化,把一些重复功能的语句给删减掉了,不影响我们下面对类实现细节的分析

代码:

  1. //Tooltip 类
  2. goog.provide(goog.ui.Tooltip);
  3. goog.provide(goog.ui.Tooltip.State);
  4.  
  5. goog.require(goog.Timer);
  6. goog.require(goog.array);
  7.  
  8. goog.ui.Tooltip = function(opt_elopt_stropt_domHelper) {
  9.   this.dom_ = opt_domHelper || (opt_el ?
  10.       goog.dom.getDomHelper(goog.dom.getElement(opt_el)) :
  11.       goog.dom.getDomHelper());
  12.  
  13.   goog.ui.Popup.call(thisthis.dom_.createDom(
  14.       div{styleposition:absolute;display:none;}));
  15. };
  16.  
  17. goog.inherits(goog.ui.Tooltipgoog.ui.Popup);
  18.  
  19. goog.ui.Tooltip.activeInstances_ = [];
  20.  
  21. goog.ui.Tooltip.prototype.className = goog.getCssName(goog-tooltip);
  22.  
  23. goog.ui.Tooltip.prototype.attach = function(el) {
  24.   el = goog.dom.getElement(el);
  25.  
  26.   this.elements_.add(el);
  27.   goog.events.listen(elgoog.events.EventType.MOUSEOVERthis.handleMouseOver,falsethis);
  28. };

分析: 一个JS源文件包含如下几个部分

  • 自己能提供什么功能(类声明:使用goog.provide方法声明和注册一个类)
  • 提供这些功能需要额外的哪功能的支持(依赖声明:使用goog.require方法声明具体依赖的其它类)
  • 自身功能的具体实现(对象,类成员变量和成员方法声明和实现)
  • GO ON: 下面我们继续详细的分解每一部分的实现方式和细节

命名空间构造和注册(自己能提供什么功能)

说明: 下面是命名空间申明,声明一个js文件能提供哪些类,provide方法就是根据字符串创建一个JS对象,俗称命名空间

代码:

  1. //Tooltip 类声明
  2. goog.provide(goog.ui.Tooltip);
  3. goog.provide(goog.ui.Tooltip.State)// Enum 形式的对象
  4. // ==========更多的例子============
  5. //[goog/array/array.js]
  6.  
  7. goog.provide(goog.array);
  8. //[goog/dom/dom.js]
  9. goog.provide(goog.dom);// 命名空间声明,此命名空间下有变量和方法实现
  10. goog.provide(goog.dom.DomHelper);
  11. goog.provide(goog.dom.NodeType);
  12. //[goog/ui/combobox.js]
  13. goog.provide(goog.ui.ComboBox);
  14. goog.provide(goog.ui.ComboBoxItem)// Combobox的子项类

分析:

  • 一个文件可以当成一个包
  • 一个包中能声明(注册)多个类(多个类之间关系都比较密切[Tooltip 和 Tooltip.State],一般存在直接引用或者逻辑上是包含关系[Combobox和ComboboxItem],一般不超过三个)
  • 结合最上面的文件物理结构,我们可以发现类的命名空间和文件夹结构基本是一一对应的,但却不是完全对应。(如:goog.ui.Tooptip类对应文件结构为goog/ui/tooltip.js,而goog.ui.Tooltip.State就不是了对应goog/ui/tooltip/state.js,所以不是完全对应)
  • 根据第三点,下面会进一步分析google为什么没有直接利用这种对应关系以简化类到源文件的映射….
  • GO ON: 声明完自己能提供什么功能后,下面接着我们需要收集实现这些功能,我们还可以充分利用已经存在和实现的哪些功能,所以就需要加载这些功能所对应的文件包。

直接依赖包加载(提供这些功能需要额外的哪功能的支持)

说明: 声明完成类或者对象后,这里就需要去加载该包直接依赖的其它包了,所谓直接依赖,就是指在代码实现中有直接引用类或者对象的,比如 goog.Timer.clear(this.showTimer),这里就需要使用goog.require(‘goog.Timer’)加载goog.Timer所在的文件包了。

代码 :

  1. //Tooltip 依赖包加载
  2. goog.require(goog.Timer);
  3. goog.require(goog.array);
  4. // 类,依赖和文件之间的关系实现
  5.  
  6. goog.addDependency(ui/tooltip.js[goog.ui.Tooltip,goog.ui.Tooltip.State][goog.Timergoog.arraygoog.dom]);
  7. goog.addDependency(ui/tree/treenode.js[goog.ui.tree.TreeNode],[goog.ui.tree.BaseNode]);
  8. goog.addDependency(useragent/useragent.js[goog.userAgent],[goog.string]);
  9. 。。。。。。

分析:

  • 这里理论上可以加载任意多个直接依赖的文件包
  • 这里只是实现了包对包的依赖,并且这里使用的是异步加载机制,所以无法实现同步调用机制,即方法对包的依赖
  • googleClosure 提供一张很大的表达来存储类及其类所依赖的其它类,以及该类对应的物理文件路径
  • 再结合上面的物理文件结构和类声明部分,就大概知道为什么这里采用了非常庞大的一张表来存储类与JS源文件的映射关系,因为上面说的它的类名和文件夹结构不是完全对应的,如果完全对应的话,我们就不需要一张这么大的表来指明这种映射了,直接根据对应规则即可得到类的物理文件路径
  • 当然,有一张映射表,物理文件结构会更灵活一些,比如这里的多个关系比较密切的类可以申明到一个文件中

构造函数实现

说明: 这里很简单,就是使用最原始也最符合js本身实现的一种方式声明一个类

代码:

  1. //Tooltip 构造函数
  2. goog.ui.Tooltip = function(opt_elopt_stropt_domHelper) {
  3.   this.dom_ = opt_domHelper || (opt_el ?
  4.       goog.dom.getDomHelper(goog.dom.getElement(opt_el)) :
  5.       goog.dom.getDomHelper());
  6.  
  7.   goog.ui.Popup.call(thisthis.dom_.createDom(
  8.       div{styleposition:absolute;display:none;}));
  9. };

分析:

  • 直接使用最原生的方式,简单直接明了,不从形式上去模仿Java后者其它后端语言,个人比较推荐
  • 参数规范
    • a.所有参数直接使用单个变量形式,不使用把可选参数放到一个options对象中
    • b.针对可选参数,在前面opt_前缀,标识此参数是可选参数
  • 使用call形式调用父类构造函数进行初始化,这里就能实现把父类实例对象的数据绑定到当前子类实例对象上,至于父类方法的绑定请继续看下面的继承声明和实现

继承声明和实现

说明: 上面是JS类构造函数的实现,其中有调用父类构造函数的实现,下面就如何继承父类进行分析,搞清楚这里就能明白父类方法绑定到子类的实现方式

代码:

  1. //Tooltip 继承实现
  2. goog.inherits(goog.ui.Tooltipgoog.ui.Popup);
  3. // 继承方法实现
  4. goog.inherits = function(childCtorparentCtor) {
  5.   /** @constructor */
  6.   function tempCtor() {};
  7.   tempCtor.prototype = parentCtor.prototype;
  8.   childCtor.prototype = new tempCtor();
  9.   childCtor.superClass_ = parentCtor.prototype;
  10.  
  11.   childCtor.prototype.constructor = childCtor;
  12. };

分析:

  • 通过设置子类的prototype,引入一个含有空构造函数的tempCtor类,实现父类纯方法的继承
  • 通过增加一个superClass变量指向父类的prototype,实现父类方法的直接调用,而不用担心子类重写了父类的方法,类似java的super调用
  • 通过增加constructor变量指向子类自己,实现Js原生数据类型的 constructor 引用
  • GO ON: 上面把一个包文件的结构部分基本分析清楚了,下面我们再继续分析一下一个类具体成员变量和成员方法的声明和实现的细节处理

属性声明

说明: 再接再励,继续分析类成员变量的声明和实现,这个基本比较简单,没什么难度,主要是需要说明一些书写规则和业内规范

代码:

  1. //Tooltip 成员变量
  2. goog.ui.Tooltip.activeInstances_ = [];
  3.  
  4. goog.ui.Tooltip.prototype.className = goog.getCssName(goog-tooltip);
  5. // 更多
  6. goog.ui.PopupBase.DEBOUNCE_DELAY_MS = 150;

分析:

  • 常量使用全大写,单词之间使用下划线分割
  • 很少的公有变量
  • 私有变量在后面添加下划线标识
  • 使用getter和setter访问私有变量
  • 没有保护权限的变量

方法实现

说明: 成员方法和成员变量基本一致

代码:

  1. //Tooltip 成员方法
  2. goog.ui.Tooltip.prototype.attach = function(el) {
  3.   el = goog.dom.getElement(el);
  4.  
  5.   this.elements_.add(el);
  6.   goog.events.listen(elgoog.events.EventType.MOUSEOVERthis.handleMouseOver,falsethis);
  7. };

分析:

  • 使用prototype声明方法
  • 私有方法和私有变量保持一致,在后面添加下划线标识
  • 公有方法直接声明
  • 没有保护权限的方法

总结陈词

差不多了,这里只是一个非常简单的关于 Google Closure Lib中一个类组织和实现的一个大致分析,希望对各位同学在库这块有一些帮助,预告下先,后面会有关于 YUI3 的一个简单分析,敬请关注!

xmail开放源代码的免费电子邮件服务器

xmail简介

XMail是一款出色的Internet & Intranet 邮件服务器,包括 SMTP Server、POP3 Server、Finger Server,支持多域名、STMP Relay

  6c224f4a20a446232e2c844a9822720e0cf3d737XMail

检测、远程控制、别名、事件记录,可以与外部 POP3 服务器进行同步。它是免费软件,并且具有跨平台优势,在windows,linux/unix上均可以运行。

编辑本段Xmail项目准备

Xmail项目是架构于Tomcat上,采用“源码、表现形式”完全剥离的技术框架“Cocoon”,综合利用Java+XML+XSLT实现可以接收任何邮件服务商邮件的功能。

开发环境

OS:WindowsXP SP2

Tomcat:5.0.28

Cocoon:2.1.5.1

JDK:5.0

开发工具:Eclipse 3.0

环境搭建

1,将%cocoon_home%build/下的webapp拷贝到%tomcat_home”/webapps/下面然后重命名为cocoon。访问一下http://localhost:8080/cocoon看是否出现cocoon的首页。(关于cocoon和tomcat的整合可以参看本blog的名为”Cocoon学习的小例子(包括Cocoon的安装)“的文章)

2,在Eclipse中“new Project”起名为Xmail。

3,新建一个library,将%tomcat_home”/webapps/cocoon/lib里的所有jar加进来。

4,新建一个folder,起名“cocoon”将其链接到%tomcat_home”/webapps/cocoon上。

5,新建一个source folder,起名”src”(可以随意)。

6,然后指定源程序的输出目录为%tomcat_home”/webapps/cocoon//WEB-INF/classes上。

环境完成。

编辑本段XMAIL的安装及配置

LINUX系统下的安装,为方便阅读后面以$source代表源码目录:

cd $source

make -f Makefile.lnx

cp -a MailRoot /var

chown root /var/MailRoot

chgrp root /var/MailRoot

chmod 700 /var/MailRoot

cd bin

cp ./CtrlClnt MkUsers sendmail XMail XMCrypt /var/MailRoot/bin

cp ./CtrlClnt /usr/bin

mkdir /usr/share/doc/xmail

cd ..

cp ./docs/Readme.txt /usr/share/doc/xmail/Manual.txt

cp ./docs/Readme.html /usr/share/doc/xmail/Manual.html

cp ./xmail /etc/rc.d/init.d # Redhat(cp xmail /etc/init.d # SuSE)

chmod a+x /etc/rc.d/init.d/xmail

cd /etc/rc.d # Redhat (# SuSE 见最尾)

ln -s init.d/xmail rc0.d/K27xmail

ln -s init.d/xmail rc1.d/K27xmail

ln -s init.d/xmail rc2.d/K27xmail

ln -s init.d/xmail rc6.d/K27xmail

ln -s init.d/xmail rc3.d/S43xmail

ln -s init.d/xmail rc4.d/S43xmail

ln -s init.d/xmail rc5.d/S43xmail

cd bin

cp ./sendmail /usr/sbin/sendmail.xmail

chmod +s /usr/sbin/sendmail.xmail

cd ..

cp ./s e n d m a i l . s h /usr/sbin/sendmail

chmod +x /usr/sbin/sendmail

前面可以照抄录入,后面就要注意了:

编辑/var/MailRoot/server.tab,把xmailserver.test改成你的域名,以下以localhost为例

/var/MailRoot/bin/XMCrypt 密码

系统返回一串字符,如:/var/MailRoot/bin/XMCrypt ciao返回060c040a

打开/var/MailRoot/ctrlaccounts.tab,一般是个空文件,录入以下内容存盘

[引号]用户名[引号][tab][引号]密码[引号][回车]

注意用户名是你的管理用户名,密码是刚才是/var/MailRoot/bin/XMCrypt [密码]得到的值

/etc/rc.d/init.d/xmail start

export MAIL_ROOT=/var/MailRoot

/var/MailRoot/bin/XMail -Md -Pl -Sl -Fl -Cl -Ll %26amp;

到此为止,一个XMAILl服务安装已经完成,下面要介绍命令行配置,如果你服务器上能运行PHP,最方便的管理方法还是下载一个phpxmail程序放在自己的PHP环境下来运行:

https://s o u r c e f o r g e. n e t/projects/phpxmail

(—————上面启动行可加到rc.d的rc.local让其自启动—————)

建立域: /var/MailRoot/bin/CtrlClnt -s localhost -u postmaster -p ciao domainadd localhost

建立用户: /var/MailRoot/bin/CtrlClnt -s localhost -u postmaster -p ciao useradd localhost newuser password U

删除域: /var/MailRoot/bin/CtrlClnt -s localhost -u postmaster -p ciao domaindel localhost

删除用户: /var/MailRoot/bin/CtrlClnt -s localhost -u postmaster -p ciao userdel localhost newuser

改密码: /var/MailRoot/bin/CtrlClnt -s localhost -u postmaster -p ciao userpasswd localhost 用户名 密码

现在可以建立你的电子邮件进行接收试试,比如上面例子用newuser@localhost收发信件,密码为password,发送邮件用sendmail。

建立和删除用户别名:

/var/MailRoot/bin/CtrlClnt -s localhost -u postmaster -p ciao aliasadd localhost 用户名 别名 U

/var/MailRoot/bin/CtrlClnt -s localhost -u postmaster -p ciao aliasdel localhost 别名

参照上面格式:

custdomget – List a Custom Domain File

custdomset – Define a Custom (Secondary) Domain

poplnkadd – Setting Up a POP3 Drop

usersetmproc – Define a Custom (Forwarding) User Filter

usergetmproc – List a Custom User Filter

附录:

(cd /etc/init.d # SuSE

ln -s xmail rc0.d/K27xmail

ln -s xmail rc1.d/K27xmail

ln -s xmail rc2.d/K27xmail

ln -s xmail rc6.d/K27xmail

ln -s xmail rc3.d/S43xmail

ln -s xmail rc4.d/S43xmail

ln -s xmail rc5.d/S43xmail)

You need to replace the original sendmail executable with the XMail version. If you don’t have sendmail installed at all you can skip this step, but if it’s installed it should be replaced. First, shut down the sendmail daemon and save the old executables under a different name:

mv /usr/sbin/sendmail /usr/sbin/sendmail.orig

###安装指南(Windows平台):

将下载的文件解压缩,将mailroot目录拷贝到比如c:\mailroot(权限设为system和administrator允许)。然后将解压得到的所有的.exe文件拷贝到c:\mailroot\bin目录下。

在注册表中的’HKEY_LOCAL_MACHINE\SOFTWARE\’下建立’GNU’项,在’GNU’下建立’XMail’项, 在’XMAIL’下建立字符串’MAIL_ROOT’值为’C:\MailRoot’。建立字符串’MAIL_CMD_LINE’,可设置XMail的运行参数,建议至少设置’-MM'(采用Maildir存储格式)。

打开命令行窗口,进入c:\mailroot\bin目录,运行”XMail –install-auto”。

进入c:\mailroot目录,用文本编辑器打开ctrlaccounts.tab文件,添加管理员帐号,格式是:

“管理员名”TAB键”加密管理密码”回车键

其中加密管理密码用bin目录下的xcrypt.exe生成。将ctrlaccounts.tab存盘。

手工启动xmail服务,或重启机器

编辑本段XMail 工具

eyeXMail – 多用途COM组件,用于管理、发送和接收邮件,作者Shawn Anderson

XMWizard – XMail安装和配置软件,windows平台,作者Shawn Anderson

XmailFilter – XMail过滤器例子,用C#写的,作者Andrew Jennings

XMailAdmin – XMail配置工具,VB写的,作者John Kielkopf

XMailInstaller – 安装和初始化XMail,在windows环境,作者Shawn Anderson

xmailWebMail – Web方式管理界面,ASP写的,作者Zhou Bo

XMailWAI – XMail Web管理界面,作者 Michal ‘Altair’ Valasek

XMailAutoReply – XMail自动回复程序, 作者 Theo

PHPXmail – XMail管理工具,PHP写的

econv – XMail的spool文件到email的转化器(C源代码)

rbuild – Email到XMail spool 格式的转化器(C源代码)

l i s s e t .pl – XMail的cmdaliases生成器,配合ecartis邮件列表服务器,(Perl源码)

e c a r t i s . s h – 执行Ecartis邮件列表服务器的Shell程序

swrap.c – 安全执行器

AV Scripts – 反病毒程序代码,收集者 Edinilson J. Santos

XMail PHP Administration Interface – XMail Web管理界面,PHP,作者 Andreas Klein and Hagen Herrschaft

XMail Debian Package – XMail Debian 包

XMail Web Frontend – XMail web界面,PHP,作者 Achim Schmidt

xm2nntp – XMail 连接 nntp 网关的程序,作者 Thomas Loo

AntiVirus filter – 反病毒过滤器,用于XMail,作者 Peter Lindeman

XMail Manager – XMail 管理工具,VB,作者Mike Harrington

XScanner – 快速来信内容过滤器,作者:DOLIST Technical Center

XArchive – 快速邮件存档内容过滤器,作者:DOLIST Technical Center

XMail Queue Manager – XMail队列管理器,作者 Harald Schneider

SpamAssassin filter – Perl写的过滤器,为XMail集成了SpamAssassin,作者Don Drake

Hosting Controller – 管理XMail运行的命令行界面,Windows环境

SCOPE – Scope is a procedure engine for Xmail ESMTP server written in PERL by Thomas Loo

z i n c .pl – Generates XMail delivery time tables

m b o x s e n d . p l – Perl script that delivers mail to MBOX files

mboxsend.c – C source version of m b o x s e n d .pl

HOWTO Linux and XMail – How to configure XMail on a Linux system by Jeffrey Laramie

SmartPost Home Page – Fully featured email solution

Courier IMAP with XMail – Configuring XMail and Courier-IMAP to work together by Keith Strickland

Xmail Gentoo Build Files – How to build XMail for Gentoo by Sergey Ivanov

XQFlusher – Command line utility to handle the spool by Leonardo Cabral

FProt AV Scan – Filter script to AV scan messages using FProt by Filip

HowTo non-root XMail – How to run XMail with a non root user account by Sergey Ivanov

XMail’s NT Domain Authentication – Executable that can be used to perform XMail’s external authentication against an NT doman by Tracy

Change password option for UebiMiau (Perl CGI) – Adding “change password” option to users’ preferences menu in UebiMiau 2.7.2 on for XMail by Liron Newman

Change password option for UebiMiau (PHP) – Adding “change password” option to users’ preferences menu in UebiMiau on for XMail by Brandon Wittenburg

Log Reader – Utility to read Xmail SMTP logs and present them in a readable format by Nick Marino

Mail Traffic Counter – Filter that collect traffic information and store it inside a database (Windows only) by Roman Dusek

Anti Virus Filter – Anti Virus filter written in C (Windows) by DOLIST Technical Center

Check MTA Util – Simple telnetish client to check the responses from the mail server by Chuck Frolick

.NET Libs to Manage XMail – .NET libs and apps to manage and interface by Tim Aranki

XMailGraph – XMail log analyzer and graphing tool by Achim Schmidt

XMail Setup On Solaris 9 – XMail setup instructions for Solaris 9 by Hagen Mayer

XAVStats – XAV statistics for XMail by Liron Newman

XMail Utilities – Miscellaneous utilities for XMail by Dario Jakopec

x m – s p f .pl – SPF integration filter for XMail

XMail IPV6 Patch – Experimental IPV6 patch for Linux by Yasuhiko Kamata

XMail AV and SPAM filters – AV and SPAM filters for Windows by Jason J. Ellingson

XMail .NET Objects – .NET Library written in C# to interface with XMail by Shawn Anderson

XMail and Python Spambayes – XMail and Python Spambayes interface by Ng Pheng Siong

XMail Non-Root – Another XMail Non-Root approach by Ng Pheng Siong

GLST – SMTP Grey Listing module for Unix and Windows platforms

XMail Filters – Collection of XMail filters by Chris L. Franklin

SSL Patch – SSL patch for XMail by Eugene Vasilkov

SpamAssassin Filter – SpamAssassin Filter for XMail by OKI Miyuki

xmspam – Another SpamAssassin Filter for XMail by Jean-Francois Hovinne

Patch for XMail HPUX Support – This is a patch for XMail 1.22 to support HPUX OS by Raphael Couto

XMail Log Archiver – XMail log archiver

编辑本段XMail邮件服务器使用指南

  ::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::2

安装指南(Windows平台)

· 软件下载(1.23版)

· 将下载的文件解压缩,将mailroot目录拷贝到比如c:\mailroot(权限设为system和administrator允许)。然后将解压得到的所有的.exe文件拷贝到c:\mailroot\bin目录下。

· 在注册表中的’HKEY_LOCAL_MACHINE\SOFTWARE\’下建立’GNU’项,在’GNU’下建立’XMail’项, 在’XMAIL’下建立字符串’MAIL_ROOT’值为’C:\MailRoot’。建立字符串’MAIL_CMD_LINE’,可设置XMail的运行参数,建议至少设置’-MM'(采用Maildir存储格式)。

· 打开命令行窗口,进入c:\mailroot\bin目录,运行”XMail –install-auto”。

· 进入c:\mailroot目录,用文本编辑器打开ctrlaccounts.tab文件,添加管理员帐号,格式是:

“管理员名”TAB键”加密管理密码”回车键

其中加密管理密码用bin目录下的xcrypt.exe生成。将ctrlaccounts.tab存盘。

· 手工启动xmail服务,或重启机器。

配置指南

· 修改你的域名MX解析到你的ip地址,找你的域名注册商。

· 进入c:\mailroot\bin目录,运行ctrlclnt.exe添加域名和邮箱名。

添加域名:ctrlclnt -s 127.0.0.1 -u 管理员名 -p 管理密码 domainadd 域名

添加邮箱:ctrlclnt -s 127.0.0.1 -u 管理员名 -p 管理密码 useradd 域名 邮箱名 邮箱密码 U

修改密码:ctrlclnt -s 127.0.0.1 -u 管理员名 -p 管理密码 userpasswd 域名 邮箱名 新密码

删除邮箱:ctrlclnt -s 127.0.0.1 -u 管理员名 -p 管理密码 useradd 域名 邮箱名

· 进入c:\mailroot目录,打开smtprelay.tab文件,删除为空,保存。

· 打开server.tab文件,将里面涉及到域名的部分全部改为你自己的域名。将”DefaultSmtpPerms”改为”MR”。

客户端设置

· 你现在已经可以使用outlook或foxmail等软件收发邮件,添加帐户时注意要设置发送身份验证,具体设置参考(你需要把里面的2 9 9 . n e t换成自己的域名)。

Web界面

· 请使用本站的XMail改进版,并下载Web界面。或者参考XMail官方网站。

编辑本段xmail邮件服务器心得

xmail邮件服务器安装配置方法(针对win系统,主要是客户需要win的系统)

1.下载xmailserver

登入访http://www. x m a i l s e r v e r . o r g / (xmail的官方网站)下载xmail

最新的版本是:

XMail Version 1.22

主要有linux和win的平台的各种版本

Linux/FreeBSD/OpenBSD/Solaris/OSX/NetBSD

Linux RPM

Linux SRPM

NT/2k/XP Sources

NT/2k/XP Binaries

选择win下的Binaries的下载最新的软件包。

2.将下载下来的安装包解压

在解压的目录

XMail-1.22下有个MailRoot的目录,将其拷贝到c:\下

然后将xmail-1.22目录下的所有.exe可执行文件拷贝到c:\MailRoot\bin下

3.修改注册表

在’HKEY_LOCAL_MACHINE\SOFTWARE\’下创建’GNU’项,

再在’HKEY_LOCAL_MACHINE\SOFTWARE\GNU’下创建’ XMail’项。

在’HKEY_LOCAL_MACHINE\SOFTWARE\GNU\XMail\’下创建字符串名称:’ MAIL_ROOT’ 值是:’C:\MailRoot’(就是刚才安装的目录)

4.自动启动

打开dos窗口,进入C:\MailRoot\bin目录之执行XMail –install-auto,安装为系统服务,自动启动,  

5.用telnet localhost 25

telnet localhost 100来测试邮件服务器有没有配置好。

6.添加一个root用户

现用xmcrypt生成一个密码(加密的)

xmcrypt admin 得到密码:0401080c0b .

修改c:\MailRoot\ctrlaccounts.tab增加用户

“admin” [tab键] “0401080c0b”

就可以用该用户名和密码来创建用户邮箱了

7.修改:SERVER.TAB

SERVER.TAB 是服务器的全局配置选项。用我的域名g r e e n . o r g来作一个例子,修改以下内容:

RootDomain to “g r e e n . o r g”

SmtpServerDomain to “mail. g r e e n . o r g”

POP3Domain to “mail.g r e e n . o r g”

HeloDomain to “mail.g r e e n . o r g”

PostMaster to “p o s t m a s t e r @ g r e e n . o r g”

ErrorsAdmin to “p o s t m a s t e r @ g r e e n . o r g”

8.添加域名

ctrlclnt -s -u -p

执行

ctrlclnt -s localhost -u admin -p admin domainlist

“xmailserver.test”

列出已经添加的域名。

执行

ctrlclnt -s localhost -u admin -p admin domaindel “xmailserver.test”

删除该域名

执行

ctrlclnt -s localhost -u catfish -p testpassword userlist

“xmailserver.test” “xmailuser” “xmail” “U”

列出已经存在的用户。

执行

ctrlclnt -s localhost -u catfish -p testpassword aliaslist

“xmailserver.test” “root” “xmailuser”

“xmailserver.test” “postmaster” “xmailuser”

列出用户别名

执行

ctrlclnt -s localhost -u admin -p admin domainadd g r e e n . o r g

就添加了一个g r e e n . o r g的域名

执行

ctrlclnt -s localhost -u admin -p admin useradd g r e e n . o r g username password U

添加一个username用户,密码是password到该g r e e n . o r g域名

添加好就可以在outlook的客户端测试了。

XMail V1.23 For Windows

XMail V1.23 For Linux

开源网络Web邮件系统

SquirrelMail

SquirrelMail 是一套基于标准的,采用PHP4开发Webmail邮件系统。它内置纯PHP支持的IMAP和SMTP协议,所有页面都遵循html4.0标准(没有使用 javascript支持),以便最大限度兼容更多浏览器上。它对系统要求非常低,并且安装和配置非常容易。SquirrelMail具备一个客户端邮件程序所应拥有的一切功能,包括支持增强型的MIME、地址薄、文件夹操作等等功能。Outlook皮肤主题。

PhpGmailDrive

PHPGmailDrive(PGD)是一组PHP脚本用于与其他人共享你Gmail中的附件。它能够自动登录到Gmail并取得附件列表,然后让其他人下载它们。PHPGmailDrive可包含在任何HTML页面中。

PHPMailer

PHPMailer是一个用于发送电子邮件的PHP函数包。

IlohaMail

IlohaMail是一个轻量级的而且功能丰富的支持多国语言的webmail系统。它采用纯PHP开发,易于安装和使用,不需要数据库支持和IMAP包(内置自定义的一个IMAP/POP3包)。此外IlohaMail还提供一些个人信息管理的功能如名片夹等。

RoundCube Webmail

RoundCube Webmail是一个基于浏览器,支持多国语言的IMAP客户端,操作界面看起像一个桌面应用程序。它提供一个e-mail客户端应该具备的所有功能包括 MIME支持,地址薄,文件夹操作,信息搜索和拼写检查。RoundCube Webmail采用PHP+ajax开发并且需要MySQL数据库来存储数据。 用户界面采用XHTML+CSS2设计

Inside Systems Mail

Inside Systems Mail是一个Webmail系统采用PHP开发。它设计适用于任何IMAP服务(包括Microsoft Exchange)。支持多种数据存储xml,encrypted xml,mysql和postgresql。Inside Systems Mail最大的特点是快速和使用简单。

Openmailadmin

Openmailadmin是一个支持中文并且非常完善的IMAP邮件服务器后台管理系统。它支持IMAP提供的所有功能。

PHlyMail

PHlyMail 是一个用户界面类似于桌面应用程序的WebMail系统。支持POP3/IMAP;提供文件夹管理;当使用IMAP时能够跨服务器拷贝和移动邮件;垃圾邮件过滤;收/发纯文件或HTML格式并且带附件的邮件;支持发送SMS到移动电话;更换界面主题。由于PHlyMail采用模块化设计,所以很方便添加各种新的功能(如RSS,个人文件存储,书签管理等)。

IMP Webmail

IMP是一个支持IMAP与POP3协议的WebMail系统。它的特点包括:crypting支持,灵活的字符集处理,用于保存搜索结果的虚拟文件夹,一个WYSIWYG编辑器用于创建HTML格式的邮件,支持MIME邮件等。

AtMail

AtMail是一个开源的WebMail客户端。提供”清爽“的Ajax Webmail界面,通信录管理,支持IMAP,视频邮件。

libgmailer

libgmailer是一个用于访问GMail的PHP函数包提供的功能包括:
邮件管理:读取,写作,保存草稿,发送,应用星标/标签,删除星标/标签,下载附件,搜索等。 .
账号管理:修改过滤器,修改联系人列表,修改标签列表,修改GMail各项参数等。

Telaen

Telaen是一个采用PHP开发的webmail。它不需要任何数据库支持,兼容POP3和IMAP协议。所以它可运行在任何支持PHP的email服务器下包括Sendmail与QMAIL。此外皮肤与语言都可很容易更换。

P3Mailer

P3Mailer 是一个采用PHP5编写,面向对象的SMTP邮件脚本。它最主要的特点是提供对大附件的支持,这是其它php mail脚本缺少的地方。此外P3Mailer还具有:支持多个收件人/暗送人/抄送人;支持7/8bit,base64,quoted- printable编码;支持HTML/Text格式的邮件;支持Multipart/附件邮件。

Swift

Swift是一个完全采用面向对象编码用于发送e-mail的PHP函数库。Swift不依赖于PHP的mail()函数,因为用它发送多封邮件时会占用较高的服务器资源。Swift通过直接连到SMTP服务器或MTA能够更快,更高效地发送邮件。

XPertMailer

XPertMailer你利用它来发送MIME类型的邮件如text,HTML,含图片的HTML页面,附件等。支持Cc和Bcc功能。

CsWebmail

CsWebmail 是一个Web mail系统。支持IMAP、NNTP和SMTP、procmail、Rich Text mail、备份功能。此外CsWebmail还提供一个Clam AntiVirus插件(Clam AntiVirus是为UNIX以及类UNIX系统设计的杀毒软件)。

Postaci Webmail

Postaci 是一个跨平台的Webmail系统,它具有独立于数据库,支持多国语言,支持POP3/IMAP,完全支持MIME等特点。当使用POP3协议来获取邮件时,它利用数据库来实现文件夹管理。你可以在文件夹上保存,移动,删除和读取邮件。Postaci也包含地址簿,记事本和书签管理程序。

Sparrow 邮件客户端成长记

位于法国巴黎列式街的Dominique Leca公司拥有着二十七年的历史,一个设计师带领着他的工程师团队致力于为iPhone设计更好的邮件应用。一些其他的邮件客户端本身存在的各种缺陷使人们对iPhone的邮件应用爱不释手,像是eMailGanizer,界面丑到让人退避三舍;而Gmail更像是一个网站应用。Sparrow项目团队的目标就是:做出一个大家每天都想要使用的邮件应用。

Leca设计的语言界面是基于使用者设计的,你会发现它似乎比以往的那些软件都更懂你的心。正是由于Sparrow操作简单,具有启发性,并符合实际需求(这也是最重要的一点),目前已经用有超过十万的使用者。可以肯定的说,Sparrow就是为iPhone量身定做的几近完美的邮件应用。

接下来,让我们大概了解一下Sparrow的成长历史。

screen-shot-2012-03-19-at-10-29-37-am
起飞

“在法国,要成为一个企业家是很难的,”Leca带着浓厚的法国腔说道。“实话告诉你,以前我不知道自己应该做什么,所以才去上商学院。”当进一步深入了解后,你才会意识到他确实是从法国顶尖商学院之一的HEC毕业的。

当提到创业前那段浑浑噩噩的日子时,Leca觉得那是很无聊的一段时光。“我只是尽力去找实习机会,做过广告,搞过房地产,也做过律师助理。”他大笑着自嘲道:“当律师说不定挺有趣的?”

毕业的一段时间里Leca每天只是编写一些供那些大型汽车公司每天使用十分钟的垃圾程序。最终,他决定辞职。就在他辞职两个月后,之前公司最有才华的工程师Dinh Viêt Hoà带着一个创意找到Leca,希望与他联合开发一个新的邮件客户端。

为Mac量身设计Sparrow

最终,他们两个联手设计并建立了一个日常使用的桌面电子邮件客户端并取名为Sparrow,它完全可以媲美Gmail的各项功能,诸如标签,加星标,以及“发送并存档”。

Leca说,要为Mac建立一个Sparrow,第一步很简单。“我们去使用Gmail,也使用其他比如Postbox一样的邮件客户端,体验它们的各项功能;我们的目标是设计一个只需要使用翻页就能查收邮件而不用占用整个电脑屏幕的邮件应用。”Sparrow可以缩小为一个简单的邮件列表窗口,这样使用者就能一边看邮件,一边完成其他工作。

Leca和他的团队似乎更加注重除了精美的设计以外的东西。他们尝试将Sparrow与Facebook,CloudApp或是Dropbox等第三方应用软件结合起来,使得Sparrow更具个性化。Leca更认为这种集成使用方式只是Sparrow灵活性呈现的冰山一角,它还有巨大的完善空间,甚至能够超越以往的传统邮件功能。

Leca表示,他对团队在Sparrow设计开发和完善上做出的努力十分满意,接下来他们只需要继续优化Sparrow的界面和其他功能,以更好地满足用户的需求。围绕着“通过某种方式使邮件更公开化”这个核心目标,Leca和他的团队提出了两个想法:一个是给每个邮件添加URL,用户可以通过链接进行分享;另一个则是允许用户以短邮件的形式将邮件内容发布到网络上。“这些想法都很好,只是需要更多时间去尝试和完善;欲速则不达。”

sparrow-mac-app-store-two

做到Google所不能及的事情

Leca认为,想要把Gmail应用程序添加到台式电脑上并不是困难的事情,只是没人去做,因为在线的邮箱形式已经相当不错了。通常,人们只是把邮箱当做是与外界沟通的一个管道而已,使用简单又方便。而要给iPhone建立一个电子邮件应用却不是这么容易的事情,毕竟连屏幕都比电脑迷你得多。幸运地是,Leca可以借鉴参考Path 2.0, Facebook,Tweetie和iPhone自带的邮件应用的使用模式,这些应用都有自身的优缺点,Leca要做的就是取其精华,去其糟粕。

由于Hoà忙于Mac Sparrow的开发,Leca找到Jean-Baptiste Begue合作开发iPhone Sparrow,并对他赞赏有加。而这个曾自己成功开发过应用程序的工程师最终成为了iPhone Sparrow“背后的男人”。在这期间,他们也碰到过难题:文字和HTML编辑很糟糕,他们也尝试将传统的邮件发送和接收界面改成气泡对话形式,最后还是放弃了。

苹果拖后腿

就在iPhone Sparrow即将发布的前几周,苹果投诉Dominique Leca公司使用了基于苹果公司服务器的VoIP Privilege向用户发送邮件。Sparrow可以用自己的服务器发送邮件,但需要对每个用户的邮件证书安全性进行跟踪并负责。而电子邮件如此个人化,Leca并不想承担这样一个风险,他说他的专长是电子邮件应用,不是网络安全顾问。

Tweetbot的工程师Haddad说:“与Tweetbot相比,邮件客户端确实更加实用,却存在安全隐患···但最起码,没有其他应用能与苹果相比。”使用Gmail时就没有这个担忧,因为你使用的是谷歌全套(从服务器到应用)的服务,没有第三方软件的参与,就不需要担心邮件的安全。

面对着这样一个多数用户将感到失望并疑惑的功能,Sparrow要如何继续下去呢?为此,Leca想苹果公司提交了请愿书,希望苹果重新审查关于邮件压入操作特权的相关规定。尽管对自己的情愿书不抱太大希望,但Leca还是要试一试。

Leca目前拒绝透露下一个可能应用Sparrow的项目,而似乎他是真的不知道下一个项目会是什么,他觉得安卓,iPad都有可能会是下个目标。

折翼的飞翔

过去的一年里,Sparrow团队证明了飞速更新的应用时代,而Sparrow也会紧随这个趋势去做好的,正确的事情。iPhone Sparrow售价预计为2.99美元,正如Mac Sparrow售价为9.99美元一样,这个价位的选择只是凭感觉决定的。

Sparrow团队也一直在听取用户的意见,包括商标这类事情,团队都希望知道客户的选择和喜好;有些用户甚至自己为Sparrow设计商标,而且看起来非常不错,或许Sparrow会征得设计者的同意后,使用这个新商标。

Sparrow介于技术和艺术之间,启发了许多软件开发者,也从别人身上获得灵感。iPhone Sparrow尽管仍有残缺,却已经实现了;这也给了其他开发者信心——只要思考谨慎并处理得当,要打败苹果和谷歌不在话下。

CEO做什么其实是在传达一个信号

今天晚上在大学街的意大利煎饼果子铺, 我们几个人在聊Facebook的高管在做什 么。几个细节引起了我的注意。CEO Zuck 每年还是要Checkin一行代码的(显然这 是一个象征性的动作),COO Sandberg 每天都自己盯着解决几个用户的问题。这 个小动作其实大有值得借鉴的地方。

每个人做任何事情其实都有至少两部分的 力量:一部分,我做完了这件事情;第二 部分,我向其他人发送了一个信号,说明 了些什么。在自己一个人干活的时候,前 者或许更重要,而当一个领导者,后者的 比重越来越大,甚至变成最重要的部分。

如果CEO在写代码,哪怕只是一行,这明 确的传达了一个信号。显然一家公司不会 因为一个人写的一行代码有实质性的变 化,但这个信号是如此明确,就是技术对 于这个公司是重要的。这种态度是组织需 要的。

COO把头埋下来,每天哪怕只解决一个问 题,这也是一个信号。显然在上万的问题 中一个是如此渺小以至于不会有任何实质 影响,但这个明确的信号是,我在乎用 户。这个信号会被组织放大,变成整个组 织的行为。

为什么这个信号如此重要呢?

第一个原因应该就是“认可”。人都需要被 认可,自己写的代码,

问题,或者自己和用户的一个电话,

里都希望有人可以认可。当公司里有人, 尤其是CEO,愿意花时间去看一段代码, 或者看一个问题,或者听一段电话,其实 最重要的信号就是,这个工作很重要。没 有人愿意感觉到自己的工作对于公司的成 功没有贡献。这种认可可以通过一个小小 的行动达到。上次和康俊会所的一个按摩 师聊天,他说他们的最高奖励就是他们大 老板会给获奖者亲自按脚一个小时。这是 一个按脚出身的淳朴的CEO对这份工作的 认可,其他人都能感知道。这也就是为什 么很多做得很成功的企业都是创始人就是 这个行业里出来的原因。一个蛋糕师虽然 不比MBA更懂管理,但他开的面包店更懂 得做面包的自豪感。

第二个原因是“抽样“。一旦CEO开始听电 话,审核用户问题解决的纪录,或者看或 写代码,这方面的工作就会暴露在CEO的 眼下。这其实是一种敦促。虽然谁都知道 自己做的部分被看到的可能性其实不大, 但只要CEO在做这件事情,又有谁能确定 自己的工作不被“抽到”呢?不做这件事 情,可能性是零;做了,可能性就有了。 人是感性动物,不区分可能性的大小的, 而仅仅区分有或者没有这种可能性。这可 能就解释了为什么没有人会去买不可能中 奖的彩票却对哪怕可能性再小的彩票感兴 趣,或者解释了为什么一个几千万人的城 市里哪怕一起凶杀案会让所有人不安。一 旦有了这种可能性,大家个工作状态的确 会有改变。

在领导团队的时候,领导者可以用上百种 细微的方式在散发着各种信号。这些细小 的信号组成了一个团队只可意会不可言传 的气质。传达什么信号,其实就是由这一 件件小事情完成的。