Welcome to SpiceShop Theme

Sea summo mazim ex, ea errem eleifend definitionem vim. Ut nec hinc dolor possim mei ludus efficiendi ei sea summo mazim ex.

Archive 2007

Ruby不支持中文

一直用Ruby那么久了,但是从来没有像今天一样尴尬。因为我还没有真正意识到ruby不支持Unicode。从接触ruby到现在,都是使用英文,今天偶尔想写个小应用程序来获取一些中文信息,没想到结果是乱码,其实我早应该知道这样的,毕竟不支持Unicode呀。即便如此,我仍然在心里面责备自己太无知了。网上流行了很多包来解决此,而且ruby的作者也说在下一个版本中支持。但是按照ruby这样的速度开发下去,不知道是何年何月呀。 最后再次BS一下自己。

å±± III

前面已经写了2篇关于山的文章,如果有兴趣可以参考前面的文章。还是让自己直接切入主题吧。 中山陵南京留给我最深印象之一是中山陵。当时去中山陵的时候,还记得自己心里特别不快,也许就是为了去散散心吧。自从去了中山陵,自己的心情的确好了很多。也许正是这样堂皇的理由,才让我更加对它具有好感。中 山陵位于钟山风景名胜区内,紫金山东峰茅山的南麓。西邻明孝陵,东毗灵谷寺,傍山而筑,整个建筑群依山势而建,由南往北沿中轴线逐渐升高。个人感觉挺大 的,也许以前去过的山太多了,所以其他地方也没有走,就参观了一下孙中山先生的陵墓,然后爬了爬石坊,这个石坊台阶也蛮多了,不过和五台山那的台阶相比, 就差远了。当时去的时候是下午,天气比较炎热,但是在这里,空气相当好,绿茵匆匆,蓝色的天空还有几朵白云,也许这是南京最后的一片净土,当然有些夸张 了,但是足以说明空气是如何程度的好。遗憾的是游客太多,心理面当时就很那闷,这么个大热天,大家难道都和我一样心情不爽,但那绝对不可能的。最后参观完之后,跑下来找个阴乘起凉来了。看着成群的人们,心里平和很多,也被这嘈杂的环境完全给湮灭了。上 面说的完全从自己主观出发,其实客观上讲,中山陵确实是一个好去处,你要是在南京绝对找个僻静的地方,这是一个不错的选择,可能你会问,你上面介绍的不是 说很多人们,确实如此,因为上面说的是中山陵的精华,当然有很多人,你可以稍微往远处走一走。总结一下,得出以下结论: 如果你想找个安静的去处,中山陵是个不错的选择 如果你认为南京没有好玩的地方,中山陵也许能让你改变这个想法。 如果你觉得心情烦恼,中山陵绝对是一个安心之处。 如果你尊敬孙中山先生,中山陵你不得不去。 如果你觉得南京除了梧桐,没有绿地,中山陵让你感到很诧异。 娘子关 也不什么时候娘子关这个词进入自己的大脑,每次坐石太线都会经过这里,遗憾的是路过N多次,也无缘下来走一走。每当经过这里,我就在想古时候我的前辈们是如何守在这里的。娘子关是山西和河北的交界处,地势险要。历经几千年,这里的文化也正如娘子关一样屹立在我们心里。 我只能从火车窗户口望望,和黄土高原的很多山岭一样,带着一点荒凉,不过感觉非常好,荒凉是荒凉,也不至于能看见见大片的石头和黄土。 直至自己看不清楚时,也才几十秒的事情,但是每次都能震慑自己的心,这种震撼在渐渐远行的列车上激昂起来。 (本系列未完)

å±± II

今天写写的这篇山的文章是继续前一文章。 官地没有几个人能知道这样的地方,也没有人注意这样的地方,但是在中国的土地上居然就有这么一个山地,而且这个山地造就了如今中国第二大煤矿公司。也许大家都知道中国神华,因为其煤炭。但是你知道谁是第二?那就是西山煤电。西山煤电的资源就是从下面来的。也许就连当地的居民可能只知道西山煤电,而不是知道官地这个地方吧。官地,这个名字真是有点玄乎,正如其名,它留给我的东西我这一辈子不能忘记。6年前,一个人去了一趟,在路途中,看见一辆接一辆的大卡车拖着煤,在那坑坑洼洼的水泥路上走着,偶尔一阵煤灰扑面而来,我知道我自己快要到了官地。放眼望去,黑黑的山在那里屹然着。本来汽车是要到官邸内下的,但是我还是在外面下了,因为一些事情触动了我的心。走 在不窄不宽的煤灰路上,发现有一些矿工朋友在那破破烂烂的小屋门口蹲着,我明白,他们可能刚刚从矿井出来。看着他们木纳的表情,我被他们触动了。这些矿工 朋友眼神里流露出来的那种麻木神情,相信这个世界上的任何人看见了都忘不了。继续往前走,看见有些矿工朋友拿着瓷盆,里面就这一点大烩菜,然后几个馒头, 也许这就是他们的一顿饭。这些朋友都是干体力活的,恐怕这点不够吧。大部分人都是从外地过来打工的,其实挖煤收入相对不错,但是其风险性也是非常高的,他 们为了省吃俭用,目的可能就是为了多挣点钱。去的时候正直12月份,天气非常严寒。他们很多人就在这寒风中吹着。如果你往前仔细看,你胡发现多少煤粒已经 嵌入到了他们的脸部,到肉里面去了,这是生活给他们留下的唯一烙印。从头到尾,我没有见过一个矿工朋友在微笑。但是,看见微笑的,看起来像是领导级的人物。到了官地之后,有很多当地的居民,他们大包拎小包的从公共汽车上下,又说有笑,看样子刚刚去市里头逛了一圈,买了不少吃的,喝的等消费用品。这和前面的矿工朋友形成了鲜明的对比,不管怎么说,这就是现实。接下来,往里走,发现了一节节从矿井运煤的小车躺在铁轨上,一直通向矿井口,我不知道这些小车在它们行业里叫什么。反正就是煤从下到上的工具。望着前面一些不太高的,但是有黑漆漆的小山,难道这些山不是山而是煤么?显然不是,只不过这里生产煤,而导致这些山的表面铺满了煤灰而已。矿工们就在这些小山的下面长年累月的工作者,生活着。时隔很久,一直不能忘怀,今年在电视上看见该省省长为了解决职工的住房问题,才发现自己一直在关注着,心理面突然热了,突然对该省长产生好感。官地,其实是个地名,那里有些山,山下有煤。令我感触最深的地方之一。 太新线对国家铁路了解的人知道太新线的意义。太新线是从太原到新乡的一条铁路,建设难度非常之高。那么我为什么把这条铁路拿出来说事?那是因为它走的线路旁边的山非常要险的缘故。走过这条线的朋友都知道,这条线穿过很多山洞,我记得最长的一个山洞火车大概走了5分钟。这是非常了不起的,因为这条线修建的特别早,当时设备也没有现在这么发达,很难想象它是怎么修建成的。穿 山洞恐怕要比在2座山之间修桥简单。记得有一次,火车陡然慢了下来,我往外面忘了一眼,才发现前面有山,当时也没有注意到火车就在悬崖之间的桥上行走,一 旦我发现之后,心理面凉了一下,因为旁边的山谷看样子是见不到底的。晕,之前从来没有见过这样的情景。只听见火车哐,哐的声音。火车特别慢,要是快了,恐 怕意外就会发生,真是觉得命在顷刻之间。既然说到山,那就描述一下吧,山比较荒凉,全是石头,书目不多,但是偶尔从石头缝里蹦出一些灌木来。说它的目的就是为了赞扬一下咱们中国的老百姓的智慧。 未完待续

å±±

山,从小就希望自己站在高高的山上。当时只是从课本上知道世界上还有上。看看电视上的山,梦想自己哪天要是真见到山时是一种什么样的心态。 儿时的山在读大学之前,从来没有见过山。甚至弱智的认为,我 们家乡根本没有山。确实,我们家乡在江汉平原广阔的土地上,据说最高的山也就50m高,当然,到现在我也没有机会目睹这我们那最高的山,真的感到非常遗 憾。其实听长辈说那也不是什么山,只不过我们那边茫茫的平原一块,50m高的当然称得上山了。当然,以现在的观点看,就是一点土坡而已,上面密密麻麻长了 几颗老树,我在怀疑有没有石头呢。 那个时候我的地理知识应该算是贫瘠中的精品,居然不知道自己所在的省是什么地貌。到了后来,才知道由70%的丘陵,20%的平原,加上10%的山区组成。 开始以为是全国比较大的一省,因为人口众多呀,后来才知道也不不过才18W而已,当然,说大也大,说小也小,关键是和谁比了。 绵山 真正第一次去过的山石绵山,位于山西省介休市,当时是班上组织去的。遗憾的是,去的时候正是绵山开发阶段,很多还没有修好。记得我和我们宿舍的两哥们小鹏 和猪一起走到了终点,遗憾的是时间有限,辅导员开始催了,后来我们几个人在那里说到,在大学四年期间,我们一定还要来一次,弥补这次的缺憾。 绵山是我见过在山西比较漂亮的山。当汽车开在盘山公路上时,遥望远处的村庄,就好象地球上看月亮似的,非常美,因为山西地处黄土高原,远处的村庄犹如坐在 大片大片黄金上,相当壮观。我顺势往汽车外忘,我的天呀,下面的山谷真是够危险的,真不知道心里面是什么滋味,要是一不小心出了什么问题,咱们可是必死无 疑。 第一次见到山是如此的兴奋,以至于我们几个马不停蹄的往前冲,山上的树,树上的鸟,鸟下的河,真是一副名副其实的山水画。特别是有条河,水真够清的。最后 蹦了大约半天,停停玩玩,吃吃喝喝,没想到到了最前面。往我们后面一望,居然其他的同学一个也没看见。但是离终点(水帘洞)还差一段距离。来了一次不到终 点多没劲,于是吭哧吭哧跑到了那,呆了短暂几分钟,后面有同学过来叫我们,晕,要撤离了。遗憾呀,于是也就有了上面说的约定。 既然说到约定,我最后还真的来了,可惜猪和小鹏没有来。当时有人组织去,而自己自己又不想学习,毫不犹豫的报了个名。打电话给小黄约她,小黄欣然同意。不 幸的事情发生了,这帮组织人居然在出发的前一天晚上掉链子,说人不够呀什么的,但是想砍了他们的心都有。算了,你们不去,老子自己去。第二天5点就起床, 因为咱们学校比较偏,连个出租车都没有,于是和小黄边走边等,终于来了一辆,到了火车站之后,看了列车时刻表,晕,北京到韩城的火车再过7分钟就发了。也 不买票了,直接上车去补吧。 7:30左右到介休火车站,吃了碗刀削面,8:30从介休市出发。这次来感觉不一样,一是和不同人在一起,另外这次绵山修好了。遗憾的是,修好了可是人多 了,人多了当然就不爽了。还好,比我想象中的要好,加上那天天气不错,心里面就在想,叫你们掉链子,不来是你们的损失。下午3点就到了终点,才发现终点好 冷,不知道洞里有没有鱼呢。 总之,绵山是一座不错的山。我喜欢。 学校附近的山 每次起床,往窗口一站,远处的山就在我面前。光秃秃的山,山上面偶尔有几颗小树,偶尔也能看见几根电线杆。山的颜色是灰白灰白的,一看就知道特别脏。我们有去过跟前,据说对面宿舍的人去了,回来破口大骂,下面的会足足有10cm厚,直接令人抓狂。 桂林的山 桂林的山是另外一种不同的感觉,特别寂静。和山西的山形成鲜明的反差。桂林的山一般不高,特别是市里头的,爬爬就没了。由于地质的原因,桂林的山有很多钟乳石。比较有特点,这和云贵高原的山有一些类似之处的。毕竟所处的纬度差不多。 桂林的山比较多,但是要说有个性,我不这么认为,小学课本上说桂林山水甲天下,确实是那么一回事情。我去的第一天,哇塞,够漂亮,够清秀,太爽了。第二天,怎么发现都一样呀,兴趣骤减。第三天基本上没什么兴趣,还不如去逛街呢。 所以,我觉得桂林的山水不错,但是不宜太久。 河池的山 河池市就在山脚下,在其大街上看,远远的就能看见有山为你遮风挡雨。 既然河池在山下,旁边都是山,所以不用奢望这个市有多大。旁边的山是灰色的,看起来时间应该有个千万年了吧。随便说说,我是不知道有多长,但是时间肯定是 非常漫长的。高高的山,有很多突出的石头,有时候石头缝隙里一不小心就有一堆灌木群,当然,除了灌木外,大树也是必不可少的。 这和桂林的山比起来,感觉沉稳多了。 宜州的山 刘三姐的故乡,正如刘三姐一样,山也漂亮。感觉有的山河桂林的山差不多,有的又有浙江这边山的韵味。 五台山 在五台县小琴家呆了一个礼拜。帮它们家里去挖大葱,当然我也吃了到现在为止最好吃的土豆饼,土豆粉。真是太棒了。说远了,呵呵。小琴家旁边就有山,每天起来都去爬爬山,这山不是特别高,但是荆棘密布,其实对当地人来说没什么,但对我来说还是比较多的。 站在山顶山,看看下面的村庄,烟雾缭绕,真是古时候诗词那样写的。太美了。 这里的空气特别清新,以至于我后来都不想回了。 当时到达五台时是在晚上,因为当天不能到小琴家,于是找到了小琴家的姑姑借宿一宿。我怀疑那天是30,晚上天也够黑的。随便吃了一些东西,有土豆饼什么 的,然后吃了一些苹果,就睡觉了。晚上不是在他姑姑家睡觉的,而是和一位老爷爷共度一晚上,在去的路上,我看见远处的大山的黑影,觉得自己真的到了世外桃 源。晚上和老爷爷聊了一会,因语言沟通问题,适可而止吧,有点遗憾。 第二天清晨,起床很早,打了声招呼,就跑到了认为是昨天晚上见到身影的山上。爬的时候,才发现山上有很多小路,同时也看到很多刚干完活的朋友们下山,看了 看,还有庄稼呢。真是令人唏嘘不已。以前到过的都是一些景区,而这次摆在自己面前的就是最生活最朴实的大山。山上的松树N多,有时候还有松鼠,真是有趣。 路有时候不好找,只好搀扶着。 因为还要赶路,也没有怎么多逗留就下山了,这次是步行,走的路就是在山脚小,但是马路挺宽的,旁边的山比较普通。 到了五台,肯定要去五台山的,五台山虽然说在山西,但是和我以前看见的山不同。时时刻刻都能体会到一种历史文化在里面。去过五台山的人都知道五台山有五个峰。但是又特别远,一般去玩的人选择一两个就行了。我呢,那次不是去玩,主要就是用心感受一下大自然。 还没有到五台山,远处就能看见白白的雪已经覆盖了山顶。据说,五台山的雪每年5月后才能融化完,所以去那边最后的时期是7-8月份,这个时候不至于太冷。 我是10月去的,当然已经有雪了,要知道10月底就有可能下雪。何况是山顶呢。旁边的树叶非常多,都已经开始变黄了。一般吃饭就是吃点面点什么的,感觉不 错。五台山的空气没有刚才提到的那么好,毕竟是佛门重地和旅游胜地,人自然多了。但不管怎么说,空气还是非常棒的。 五台山本质上说和其它五台的山没有区别,就是因为有5个峰,再加上佛教的影响,自然就不一样了。 远处望着这些山,才发现自己特别的渺小。也许见了山之后,自己的胸径突然一下成指数级的增长。 从五台山回来之后,到小琴家歇息几天。其中我们步行走到了一座在山腰的小寺庙。路还算好走,旁边的山也是高高的,淡黄色的石头,加上一些荆棘,景观真是不错。有的时候发现自己旁边就是一颗野山楂树在那边,饿了,摘几颗下来吃吃。

Read More

又是卡巴斯基的问题

今天用到Intellij IDEA 6.0,令人奇怪的是没法调试。给出的错误提示是: Error running DEBUG,Host address localhost:8080 is already in use.既然再用,于是我将Tomcat关了,因为tomcat使用了8080端口。try again. 依旧如故。输入netstat,没有发现8080端口的使用。怎么办?第一个考虑到的是防火墙的问题,因为IDEA调试调用了端口。于是快速到控制面板的安全设置里将8080端口以及所用到的debug端口加入到允许列表中。遗憾的是这样是失败的。没办法,看了看IDEAçš„help文档,总的来说该文档对我来说毫无价值。于是跑到官方网站,可惜的是教你怎么做,但是没有troubleshooting。接下来去哪里?按照经验,社区是个不错选择,遗憾的是没有类似问题。我就不明白装了卡巴斯基的人就没有碰到该问题。看来自己太背了。最后也没有解决。在下班的时候,看见卡巴斯基在那里扫描,眼前一亮,是不是他的问题呢?赶紧pause它,居然好了。又是卡巴斯基的问题,上次SVN也是他的问题。看来得把它加入重点观察对象。解决方法:  æ‰“开卡巴斯基 选择Protection下的Web anti-virus,右击点击settings 选择Connectivityçš„HTTP 点击Port Settings uncheck 8080端口即可 其他杀毒软件可能也有类似情况。 本文关键字:IDEA, 卡巴斯基,调试,端口,防火墙

在Debian上部署Rails Apache+fcgi(或FastCgi)

Rails+Apache2+fcgid安装 安装Ruby tar xzvf ruby-1.8.6.tar.gz cd ruby-1.8.6./configure makemake install      检查一下ruby是否安装,输入: ruby -v 安装zlib tar xvzf  zlib-1.2.3.tar.gzcd zlib-1.2.3./configuremakemake install 安装rubygem   tar xzvf rubygems-0.9.4.tgzcd rubygems-0.9.4ruby setup.rb 为了看是否安装上,输入: gem -v Rails gem install rails -y  æœ‰çš„时候可能因为网速问题装不上,请耐心多试记下. 测试 rails testRailscd testRailsruby script/server         会有如下显示: => Booting WEBrick…=> Rails application started on http://0.0.0.0:3000=> Ctrl-C to shutdown

Read More

SOHO中国

18个月前,我到北京建外SOHO.白色的几幢写字楼吸引了我,因为和周边的大楼相比较,这几幢楼实在太显眼,甚至看起来有些不相称.当时就想,谁敢在北京盖这白色的大楼.后来才知道这是小潘创建的.OK,先贴张图: 看见没有,灯光最亮的就是建外SOHO. 当我踏入写字楼,感觉不错.大厅里也是乳白色的.第一感觉自己就想是透明的,非常轻,甚至有点像进入仙境的感觉.踏入电梯,比较宽敞,而且较稳.进入写字楼房间,什么都好,唯一不爽的就是每层的高度不够,感觉有点压抑.不管怎么说,感觉相当好. 午餐在其商业铺搞定的,可能是刚建成不久,看起来也没有多少商户.当然吃饭的地方还是有的.餐厅里人不是特别多,价格还可以,不是特别贵.但是最终给我的印象是环境和人气还需改善.想必现在应该好很多了吧. 这次SOHO中国给我的印象是:胆大,具有创意. 回到上海之后,才发现SOHO中国在海南有酒店,在北京有多处SOHU,例如除了建外SOHU之外,还有光华路SOHO,朝外SOHO,SOHO现代城等. 于是我开始关注起来.小潘和王石,冯仑都有着不少的关系吧. 最近这几天,SOHO中国要在香港上市了,发行约15亿股,90%给投资机构,其他给个人投资者,股价约为8.3港元.这是相当不错的融资方案.120多亿,能干很多事情的.这几天小潘在全球路演.希望他一切都顺利. 遗憾的是,如果在大陆投资的话,看起来比较遥远.毕竟还不能到香港去买其股票.但是我个人对SOHO中国还是很看好的.尽管不如万科,万通那么有名,但是其设计,创意等丝毫不差. 最后贴几张图: SOHU现代城   光华路SOHO 朝外SOHO,据说这次上市资金可能用于此 SOHO尚都 长城脚下的公社,(这也能建?) 博鳌博鳌凯宾斯基饭店 最后,有个人不得不提,那就是小潘的爱人张欣. 关于更多详情,参考http://www.sohochina.com 注:本文绝不是给SOHO做广告,再说了,小潘也没有给我广告费呀.    

mongrel启动问题的解决方案

如果使用Mongrel来部署Rails,就不可避免的使用 mongrel_rails start -C mongrel.config   这里mongrel.config是mongrel的配置文件,可以为: —    :config_script:    :environment: development    :pid_file: log/mongrel.pid    :num_processors: 1024    :docroot: public    :timeout: 0    :host: 0.0.0.0    :mime_map:    :port: 3000    :daemon: false    :cwd: /home/linux/projects/mongrel/testapp    :includes:    – mongrel    :debug: false    :log_file: log/mongrel.log   然后到app的根目录下运行上述的命令,恭喜您,你启动成功了.但是有个问题,如果我不在app的根目录下运行呢?系统会给出我们信息: !!! Path to log file not valid: log/mongrel.log   mongrel::start reported an error. Use mongrel_rails mongrel::start -h to get help.   第一眼看见这个错误,觉得非常简单,Mongrels的创始人给出的答案是将相对路径改为绝对路径.也许上述的方法能解决问题,但是我相信仍然有一种情况:即使改为绝对路径,还是出现同样的错误.如果发生上述的错误应该怎么办?不幸的是,上述的问题我已经碰见过,很长时间不得要领.文档看破皮了,还是不能运行.不得已,打开mongrels的源代码看看.最后发现需要指定工作目录,因为工作目录是在log之前验证的.摘录一段代码: ruby 代码 module Mongrel     class Start < GemPlugin::Plugin "/commands"       include Mongrel::Command::Base          def configure         options [           ["-e", "–environment ENV", "Rails environment to run as", :@environment, ENV[‘RAILS_ENV’] || "development"],           ["-d", "–daemonize", "Run daemonized in the background", :@daemon, false],           [‘-p’, ‘–port PORT’, "Which port to bind to", :@port, 3000],           [‘-a’, ‘–address ADDR’, "Address to bind to", :@address, "0.0.0.0"],           [‘-l’, ‘–log FILE’, "Where to write log messages", :@log_file, "log/mongrel.log"],           [‘-P’, ‘–pid FILE’, "Where to write the PID", :@pid_file, "log/mongrel.pid"],           [‘-n’, ‘–num-procs INT’, "Number of processors active before clients denied", :@num_procs, 1024],           [‘-t’, ‘–timeout TIME’, "Timeout all requests after 100th seconds time", :@timeout, 0],           [‘-m’, ‘–mime PATH’, "A YAML file that lists additional MIME types", :@mime_map, nil],           [‘-c’, ‘–chdir PATH’, "Change to dir before starting (will be expanded)", :@cwd, Dir.pwd],           [‘-r’, ‘–root PATH’, "Set the document root (default ‘public’)", :@docroot, "public"],           [‘-B’, ‘–debug’, "Enable debugging mode", :@debug, false],           [‘-C’, ‘–config PATH’, "Use a config file", :@config_file, nil],           [‘-S’, ‘–script PATH’, "Load the given file as an extra config script", :@config_script, nil],           [‘-G’, ‘–generate PATH’, "Generate a config file for use with -C", :@generate, nil],           [”, ‘–user USER’, "User to run as", :@user, nil],           [”, ‘–group GROUP’, "Group to run as", :@group, nil],           [”, ‘–prefix PATH’, "URL prefix for Rails app", :@prefix, nil]         ]       end          def validate         @cwd = File.expand_path(@cwd)         valid_dir? @cwd, "Invalid path to change to during daemon mode: #@cwd"  

Read More

ruby利用mail和sendmail发送邮件

在linux上一般都带有mailx,mail或者sendmail,那么如何利用ruby来发送邮件呢?实现起来并不太难. 思路mailå’Œsendmail都是linux下的命令,也就是说得让ruby调用这些命令,如何调用,那就是 ruby 代码 IO.popen(sendmail_cmd)   如何利用mail或sendmail发送邮件 mail: mailx -s SUBJECT_CONTENT SEND_TO_EMAIL   sendmail: #sendmail -t -v   To:someone@domain.com   From:your address   Subject: your subject   your email text   Ctrl_D   Ruby实现   Emailx: email_to=["to@domail.com"]   cc_to=[""ccc@domail.comm"]  file="attachment-path"    sendmail_cmd="(uuencode  #{file};"     sendmail_cmd<<"cat body)"    sendmail_cmd <<" |mailx -s \"hello\" #{email_to} "     pipe=IO.popen(sendmail_cmd)        sendmail pipe=IO.popen("/usr/sbin/sendmail -t -v","w")   pipe.puts "To: to@domain.com\n"   pipe.puts "From:Admin<admin@domain.com>\n"   pipe.puts "Subject: Subject here\n"   pipe.puts    pipe.puts "hello,this is email text!"      pipe.close_write   问题 å…¶å®žä¸Šé¢çš„实现很简单,不过有几个问题: 对于emailx,如何改变from addresså‘¢ 对于sendmail,如何实现附件呢