Apple Mail 邮件太多不下载问题的解决

Apple Mail version3.6(936)

原先拿到这个 mac 本本的时候,由于家中网速比较慢,收发邮件比较折磨人,而我又属于对邮件依赖较重的,所以专门申请了个新的 gmail 帐号,专门用在这个机器上,把邮件下载到本地便于处理(平时个人邮件都是自己发给自己的 N 个邮箱共享),顺便体验下 Apple Mail 软件。

Apple Mail 倒算是中规中矩,按下不表,中间有一段时间没怎么用这台 mac,而这个专用 gmail 帐号里面堆积的邮件应该也不少了,简单估计有几百封吧。终于,等到我想用的那一天,突然发现它不下载新邮件了。

逐项检查,系统和软件工作正常,网络正常,gmail 登录进去肯定是有新邮件,而且 pop 设置正常。所有的东西都没有动过,并且原先刚设置好这个帐号的时候,邮件下载都是正常的。Command+0 打开 Activity 窗口监视──连接、登录、查找新邮件、退出,貌似正常,但完全无视我邮箱中赫然在目的新邮件哪。

纯属无意中翻看 gmail 的在线帮助,其实对这类帮助并不报太大希望的,因为一般上面只有一些常规问题的答案,我的问题比较蹊跷,八成没有。帮助里面专门有针对 Apple Mail 3.0 Troubleshooting,列了几个问题,对照我的情况,逐个回答如下:

  • Have you recently used Gmail’s POP service with this client and address?
  • --> Yes, this address just worked recently
  • When are you encountering problems?
  • --> Downloading
  • Does your client display an error?
  • --> No, my mail client does not show an error
  • Downloading issues
  • --> Some or all messages don’t download

然后帮助给了4个解决方法,其中第2条是亮点:

Try enabling recent mode in your POP client by replacing 'username@gmail.com'
in the Username field of your POP client settings with 'recent:username@gmail.com',
and uncheck the box next to Remove copy from server after retrieving a message
in your Advanced POP client settings. Recent mode fetches the last 30 days of mail,
regardless of any other factors. If you don't Leave messages on server your 
messages will be moved to Trash after download.

看仔细了,在邮件帐户前面加上 recent:,只下载最近30天的邮件,这个以前没听说过,从之,我的邮件又愉快的下载了。至于30天以前的邮件如何下载,我是不需要了。至于为什么会这样,还真不明白是 gmail 这里有限制,还是 Apple Mail 无法读取30天以前邮件的邮件头导致无法下载,希望有明白人指点一二。

附 gmail 帮助截图为据:

Gmail帮助中关于Apple Mail的Troubleshooting

Flash 无法修改设置的问题

Adobe flash player settings

这个怪怪的问题也不是一天两天了,就是 flash 设置窗口,或者当 flash 游戏需要使用本地存储空间时,自动弹出的设置窗口,这个窗口无法用鼠标点击,用键盘 TAB 键能在各部分之间游荡但还是无法调整设置,基本上就卡死在这里了。

遇到这种情况,可以访问这个链接:http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager07.html,注意链接中并不是图片,而是实际的设置调整组件。比如刚才说的访问本地资源需要确认的问题,在这里设置成Never Ask Again,同网站的资源就再也不会弹出窗口导致 flash 卡死了。

Ubuntu 9.04, Firefox 3.0.13, Flash Player 10.0 r32.

参考:

Windows安全更新KB951748可能导致dns无法解析

很久没有鼓捣 windows 了,今天帮一个朋友修复他“不能上网”的问题,遇到了,记录于此。

首先遇到的是局域网 ip 设置问题,居然自己无法 ping 出去,别人却能 ping 通自己,怀疑是网络管理员作了什么设定,更改ip设置绕过。

然后就是 windows 里 dns 的怪问题了,具体表现为:用 nslookup 能够正常解析域名,直接 ping 域名却得到域名无法解析的错误。用 ip 地址可以直接打开网站,可输入域名却由于无法解析而打不开。

怀疑是 winsock 或者 lsp 的问题,尝试修复却未发现任何问题。

最终原因就是这个 windows 安全更新 KB951748,网上的说法是:

这个问题是microsoft把dns解析的本地端口改成了49152-65535,和visita一样(所以visita系统不受影响)。对于lns等 rules based firewall,只需要把dns rule的本地端口范围改成49152-65535就ok了(xp系统缺省是1024-5000)。

卸载之,一切恢复正常。

Mysql升级到5.1后库升级失败的问题

一台 mysql 5.0 服务器,升级到 5.1 后,发现原来有个 database 名字变成了 #mysql50#t-2008-zbb ,刚开始没在意想直接 RENAME DATABASE ,结果这个语法由于过渡危险已经取消了,改用ALTER DATABASE db_name UPGRADE DATA DIRECTORY NAME,结果执行错误:

mysql> ALTER DATABASE `#mysql50#db_name` UPGRADE DATA DIRECTORY NAME;
ERROR 1450 (HY000): Changing schema from '#mysql50#db_name' to 'db_name' is not allowed.

原来这里面还有个 BUG ,刚刚修正过来,发行版中肯定还没有呢。幸好,从中得到了提示,因为 View 的存在导致库无法升级的,删掉所有视图后 UPGRADE 成功:

mysql> ALTER DATABASE `#mysql50#db_name` UPGRADE DATA DIRECTORY NAME;
Query OK, 0 rows affected (0.08 sec)

这台服务器还作了双向同步,我还得手工重置同步状态,又是麻烦一连串儿的事情,幸亏这次操作的是测试服务器,下次升级正式服务器之前,记得先把所有 View 删掉,升级完成后再重新创建。

另外 RENAME DATABASE 实在是危险,我执行过程中出错终止了,结果一部分表在新库里、一部分表在旧库中,不小心把未转完的目标库删掉了(不然后面的正常 ALTER DATABASE 无法继续),结果就丢失了这些表的数据。

机房搬家过程中的几件趣事

都是真事儿,先介绍现象,后面再说搞笑的原因。由于是搬家,目的地场地环境有一些变化,加上现在的机器上灰尘已经攒了好几年的了,所以每台机器都尽量拆开了、逐个零部件清洁,然后再装好开机检查,这一拆一装问题就来了。

  • 一台IBM X3650拆开清理后装好了,接上电,开机没反应,但电源线都正常插着呢。
  • 一台HP LH6000,3个电源模块,需要2条电源线,都接上了,开机,发现转几下后自动停机,有点儿带不动或者自检出错的感觉,怀疑是内存的原因(此机原来出现过类似的内存错误)。
  • 一台HP LH3000,网线接上了交换机,但不亮,系统中也显示“网线已断开”,但这条网线测了N遍都是通而且很正常的,换别机器的网线仍然如故。
  • 防火墙内网、外网、SSN/DMZ的网线都接上了,也都通,可怎么配置就是连不上外网,奇怪啊,搬之前还正常用来着,就改了个互联IP的事嘛。

其实啊,这些活儿虽然很辛苦,还真多亏了这些“奇妙”的故障原因,实乃枯燥工作过程中的小小点缀,我下面要说的原因,你都猜到了么?

  • IBM X3650的电源模块的纵切面是长方形的,所以上下颠倒也可以放到槽里,就是卡子卡不紧而已,所以有位哥们儿就顺理成章的上下颠倒的安上了,还抱怨不好卡。我是看到电源上AC灯亮而DC灯不亮发现的,因为电源屁股后面的文字也都是倒的。
  • 虽然两条电源线都正确的接在了电源的屁股后面,但由于众台机器都拆去清洗了,地面上遗留的线缆比较多,所以。。。有一根电源线的另外一头不在插座上。同样是检查电源模块上的灯发现的,可怜之前我们插拔cpu/内存板子和调整内存N遍啊。
  • HP LH3000原先是用光纤与交换机连接的,搬家之后换用铜缆了,当然光纤网卡和铜缆网卡不是一块,最关键的是,以前我们为了不让数据从铜缆走,把接铜缆的网卡禁用了。所以换铜缆之后(此时还未开机或启动进入桌面),这根线也通线序也没问题,但肯定就是不会亮啊。
  • 这个最简单,防火墙和交换机都挨着装在机柜的最上方,而且我们的内网和SSN/DMZ都是连到一个交换机上,联通扯过来的光纤已经被机房管理人员用铜缆跳到了机柜自带交换机(位于机柜最下方)上,离得比较远而且也没有线头再外面露着,所以就用三根短跳线从防火墙接到了我们自带的交换机上,和联通光纤没有任何物理连接,能通才出鬼了。

还有一件我们研究了半天的事情,IBM机架服务器自带滑轨在前方除了有2个圆柱用于对入机架上的方形孔外,前面还有一个向下的小钩子,此时我们已将所有东西都拆了下来运到目的机房准备安装,恰好大家以前接触机架滑轨也少,也巧了机房现有服务器看了个遍滑轨全部都是用螺丝固定的,不像我们这个IBM滑轨只用卡件解决。最致命的是,滑轨前方的小钩比机柜上的方孔要宽,怎么也穿不过去,这样怎么才能把滑轨“钩”在机柜上固定啊?机柜是图腾的,滑轨是IBM的,按说都是符合标准的玩意儿,咋就不“兼容”了呢?研究了半天,一位聪明的小胖子终于发现,通过弹簧把2个圆柱压回去,空出的空间正常卡入机柜竖架,松开手弹簧自然把圆柱弹入机柜竖架上的方孔,这一端就固定完毕。至于那个向下的方形小钩子嘛,是在服务器装上、完全推入滑轨之后,“卡”得一声卡住服务器的,并非是要卡在机柜方孔中。可怜我们怀疑图腾和IBM不兼容老半天,就差打电话到他们公司去问了-_-!。

Intrepid中的php-sybase凑合能用了

以前说过Ubuntu升级到hardy之后,php-sybase没了,现在在intrepid里又有了,不过有些变化。

主要的原因好像是支持方式从以前的ctlib变成了dblib,其实是和mssql的支持作在一起了,所以现在没有了sybase_ct.so,并且如果使用了adodb(我新下载的版本是5.07),要修改drivers/adodb-sybase.inc.php的148行,把

return sybase_unbuffered_query($sql,$this->_connectionID);

替换为

return sybase_query($sql,$this->_connectionID);

因为sybase_unbuffered_query只有在使用CT library时才能用

另外一个小变化就是timestamp读出来以后的值变了,由于sybase内置的timestamp其实是varbinary类型,所以原来使用ctlib的时候读出来就是这样的:000007d001917b36,但现在变成了类似中文字符串的形式,所以也需要转换一下:

if (16 != strlen($ts))
    $ts = bin2hex($ts);

Update @ 2009-03-01

还是日期的问题,现在从数据库日期字段里取出来的数据多了个毫秒部分,比如Mar 01 2009 00:24:00:000AM,致命的是这个字符串交给strtotime()函数居然不返回值,把毫秒部分:000去掉就没事了。