[PHP]如何建立与 Outlook 相容的 IMap 目录
我们公司的邮件服务器是用 IMap 协定来读取电子邮件 (因为 IMap 的邮件是放在服务器上,不怕用户的电脑中毒,就算用户的硬盘毁了,邮件也都还在),因为这个原因,所以我必须要找一个可以支援 IMap 的 Webmail。
找啊找,支援 IMap 的 Webmail 是有找到几个,可是却找不到可以相容于 Outlook 的!
为何说无法相容于 Outlook 呢? 以 Outlook 上的“寄件备份”及“草稿”这两个邮件匣为例,Outlook 便会在 Linux 服务器上的用户目录下分别建立“&W8RO9lCZTv0-”及“&g0l6Pw-”这两个档案存放邮件。问题出在我所找到的 Webmail 程式大多不允许用户建立中文邮件匣,即使可以建立,也不会转换成像“&W8RO9lCZTv0-”、“&g0l6Pw-”这样奇怪的名称,更何况要从这两个档案存取邮件!
于是我就找一个支援 IMap 协定、使用上我也觉得比较顺手的 Webmail: UebiMiau 去改,但它就像我说的,无法建立中文件邮件匣,于是我就用着我粗浅的 PHP 程式技术改啊改,改了一天,终于改好了,也可以相容 Outlook 了,真高兴!
下面的程式片段只是列出邮件匣名称的编码及解码方法…
中文邮件匣名称的编码、解码
拜 Google 所赐,原来“寄件备份”及“草稿”变成了“&W8RO9lCZTv0-”及“&g0l6Pw-”是经过了“UTF-8”+“UTF-7”编码所致,下面就是编码及解码的程式片段:
//编码 $encode = mb_convert_encoding( iconv("BIG-5", "UTF-8//TRANSLIT", "寄件备份"), "UTF7-IMAP", "UTF-8" ); //解码 $decode = iconv( "UTF-8","BIG-5//TRANSLIT", mb_convert_encoding( $encode, "UTF-8", "UTF7-IMAP" ) );
最后还是找到了
UebiMiau 在经过一连串的修改之后,虽然已经可以相容于 Outlook 了,但用了几天,觉得它的功能还是太少,本来我打算拿 Open Webmail 再来改一改,而且也找到了 Perl 的改法 (请参考这一篇)。
不过,不小心找到另一套可以支援 IMap 又可转换中文邮件匣名称的 Webmail 系统,它就是 IlohaMail,它还支援多国语言及更换布景主题,我已经改用这一套了。
所以,这一段时间,我只有学会 IMap 对于邮件匣名称的编码、解码。
No comments yet.