imap_createmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_createmailboxCria uma nova caixa de correio

Descrição

imap_createmailbox(IMAP\Connection $imap, string $mailbox): bool

Cria uma nova caixa de correio especificada por mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

O nome da caixa de correio, veja imap_open() para mais informações. Nomes contendo caracteres internacionais devem ser codificados por imap_utf7_encode()

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 Exemplo de imap_createmailbox()

<?php
$mbox
= imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die(
"Não foi possível conectar: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewböx"); // phpnewb&w7Y-x

$newname = $name1;

echo
"O novo nome será '$name1'<br />\n";

// Agora criaremos uma nova caixa de correio "phptestbox" na pasta de caixa de entrada,
// verificaremos seu status após a criação e finalmente a
// removeremos para restaurar a caixa de entrada ao seu estado inicial

if (@imap_createmailbox($mbox, imap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
$status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
if (
$status) {
echo
"Sua caixa de correio '$name1' tem o seguinte status:<br />\n";
echo
"Messages: " . $status->messages . "<br />\n";
echo
"Recent: " . $status->recent . "<br />\n";
echo
"Unseen: " . $status->unseen . "<br />\n";
echo
"UIDnext: " . $status->uidnext . "<br />\n";
echo
"UIDvalidity:" . $status->uidvalidity . "<br />\n";

if (
imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
echo
"Renomeada a nova caixa de correio de '$name1' para '$name2'<br />\n";
$newname = $name2;
} else {
echo
"imap_renamemailbox na nova caixa de correio falhou: " . imap_last_error() . "<br />\n";
}
} else {
echo
"imap_status na nova caixa de correio falhou: " . imap_last_error() . "<br />\n";
}

if (@
imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
echo
"Nova caixa de correio removida para restaurar o status inicial<br />\n";
} else {
echo
"imap_deletemailbox na nova caixa de correio falhou: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

} else {
echo
"Não foi possível criar a nova caixa de correio: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
13
tiznull
16 years ago
One should understand that even though it says "create mailbox", you are really creating a FOLDER. Now, as a imap admin you can create mailboxes and more with this function.

So in reality, you are always creating folders when creating "mailboxes". Mail admin's get this, but programmers may not understand the concept completely.

If you auth a single user account and use these functions, they will not create mailboxes where mail is delivered, they will actually create a folder where you can copy messages to.

Here is a translation:
imap_createmailbox = create a folder in the account for the current authenticated user's imap session (imap_open)
imap_deletemailbox = delete a folder (and the email in it) for the current authenticated user's imap session (imap_open)
imap_getmailboxes = get all your folders for the current authenticated user's imap session (imap_open)
imap_renamemailbox = Rename a folder for the current authenticated user's imap session (imap_open)

================

Here is a quick class to login to an account, generate all of your base folders, and return the connection, success message and returns all the base folders for an imap account using PHP5:

<?php

class Imap {
public
$folders;
public
$connection;

public function
login($user, $pass) {
$mbox = @imap_open("{imap.example.org:143}", $user, $pass);
if(!
$mbox)
return (
'Your login failed for user <strong>'.$user.'</strong>. Please try to enter your username and password again.<br />');

// Login worked, let us begin!!!!....

// gather folder lost...
$fldrs_made = 0;
$folders = imap_listmailbox($mbox, "{localhost:143}", "*");
// create the default folders....
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 logged in successfully as '.$user.'. This is your first time logging in, welcome to our webmail!!!<br />');
else
return (
'User logged in successfully as '.$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);
}
}

// usage, create a form, post it....
if($_POST['imap_username'] && $_POST['imap_password']) {
$imap_login = new Imap();
$imap_login->login($_POST['imap_username'],$_POST['imap_password']);

// Do some mail stuff here, like get headers...., use obj connection
$message_headers = imap_mailboxmsginfo($imap_login->connection);

// show the folders....
print_r($imap_login->folders, true);

print
'<br /><hr size="1" noshade />';

print_r($message_headers, true);


// close the connection
$imap_login->close_mail_connection();
}

?>
To Top