0

我有一个具有以下结构的邮箱(法语):

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

提前致谢!

4

1 回答 1

2

感谢 Max 的评论,我知道要寻找什么,并且找到了 beetstra 的答案

那么解决方案是:

$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,
...
于 2013-08-16T22:37:11.143 回答