应该理解,即使它说 "创建邮箱",你实际上是在创建文件夹。现在,作为 IMAP 管理员,你可以使用此函数创建邮箱以及更多内容。
因此,实际上,你在创建 "邮箱" 时总是创建文件夹。邮件管理员会理解这一点,但程序员可能无法完全理解这个概念。
如果你验证了一个单一用户帐户并使用这些函数,它们不会创建邮件被传递到的邮箱,而实际上会创建一个你可以将消息复制到的文件夹。
这是一个翻译
imap_createmailbox = 为当前已认证用户的 IMAP 会话(imap_open)在帐户中创建一个文件夹
imap_deletemailbox = 删除当前已认证用户的 IMAP 会话(imap_open)的文件夹(以及其中的电子邮件)
imap_getmailboxes = 获取当前已认证用户的 IMAP 会话(imap_open)的所有文件夹
imap_renamemailbox = 重命名当前已认证用户的 IMAP 会话(imap_open)的文件夹
================
这是一个使用 PHP5 登录帐户、生成所有基本文件夹并返回连接、成功消息以及返回 IMAP 帐户所有基本文件夹的快速类
<?php
class Imap {
public $folders;
public $connection;
public function login($user, $pass) {
$mbox = @imap_open("{imap.example.org:143}", $user, $pass);
if(!$mbox)
return ('您的登录失败,用户名为 <strong>'.$user.'</strong>。请尝试重新输入您的用户名和密码。<br />');
$fldrs_made = 0;
$folders = imap_listmailbox($mbox, "{localhost:143}", "*");
if(1 === mailgui::create_default_folders($mbox,$folders)) {
$folders = imap_listmailbox($mbox, "{localhost:143}", "*");
$fldrs_made = 1;
}
sort($folders);
$this->folders = $folders;
$this->connection = $mbox;
if(1 === $fldrs_made)
return ('用户已成功登录,用户名为 '.$user.'. 这是您第一次登录,欢迎使用我们的网页邮件!<br />');
else
return ('用户已成功登录,用户名为 '.$user.'.<br />');
}
private function create_default_folders($imap_stream, $folders) {
$change=0;
if(!in_array('{imap.example.org}TRASH',$folders)) {
@imap_createmailbox($imap_stream, imap_utf7_encode("{imap.example.org:143}TRASH"));
$change=1;
}
if(!in_array('{imap.example.org}SENT',$folders)) {
@imap_createmailbox($imap_stream, imap_utf7_encode("{imap.example.org:143}SENT"));
$change=1;
}
if(!in_array('{imap.example.org}SPAM',$folders)) {
@imap_createmailbox($imap_stream, imap_utf7_encode("{imap.example.org:143}SPAM"));
$change=1;
}
if(!in_array('{imap.example.org}SENT',$folders)) {
@imap_createmailbox($imap_stream, imap_utf7_encode("{imap.example.org:143}SENT"));
$change=1;
}
if(!in_array('{imap.example.org}SENT',$folders)) {
@imap_createmailbox($imap_stream, imap_utf7_encode("{imap.example.org:143}DRAFTS"));
$change=1;
}
if(!in_array('{imap.example.org}MY_FOLDERS',$folders)) {
@imap_createmailbox($imap_stream, imap_utf7_encode("{imap.example.org:143}PERSONAL EMAIL"));
$change=1;
}
return $change;
}
public function close_mail_connection() {
@imap_close($this->connection);
}
}
if($_POST['imap_username'] && $_POST['imap_password']) {
$imap_login = new Imap();
$imap_login->login($_POST['imap_username'],$_POST['imap_password']);
$message_headers = imap_mailboxmsginfo($imap_login->connection);
print_r($imap_login->folders, true);
print '<br /><hr size="1" noshade />';
print_r($message_headers, true);
$imap_login->close_mail_connection();
}
?>