我有一个邮箱(法语),结构如下:
me@example.com
|
|_Inbox
|_Brouillons (="Drafts")
|_Éléments envoyés (="Sent items")
|_Éléments supprimés (="Deleted items")
我的用户通常使用网络邮件或邮件客户端查看他们的电子邮件。但有时我需要在“已发送”文件夹中手动添加邮件,其名称为Éléments envoyés
,其中包含多个重音和空白。
以下是相关的PHP代码:
$imap_stream = imap_open("{imap.example.com:143/tls}", "me@example.com", "password");
imap_append($imap_stream, "{imap.example.com:143/tls}Éléments envoyés",
...
上述代码不起作用。如果我尝试使用没有重音符号的文件夹,例如Brouillons
,则会正确复制邮件。
这可能是编码问题吗?如果我使用Thunderbird检查属性,则位置显示为
imap://me%40example.com@imap.example.com/%26AMk-l%26AOk-ments%20envoy%26AOk-s
提前致谢!
答案 0 :(得分:2)
感谢Max的评论,我知道该找什么,我发现beetstra's answer。
解决方案是:
$utf7_folder_name = mb_convert_encoding("Éléments envoyés", "UTF7-IMAP", "UTF-8");
$imap_stream = imap_open("{imap.example.com:143/tls}", "me@example.com", "password");
imap_append($imap_stream, "{imap.example.com:143/tls}".$utf7_folder_name,
...