如何建立与 Outlook 相容的 IMap 目录(PHP)

我们公司的邮件服务器是用 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 对于邮件匣名称的编码、解码。

参考网页

  1. No comments yet.

  1. No trackbacks yet.

return top

%d 位部落客按了赞: