PHP 8.3.4 Released!

imap_createmailbox

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

imap_createmailboxYeni bir posta kutusu oluşturur

Açıklama

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

pk ile belirtilen posta kutusunu oluşturur.

Bağımsız Değişkenler

imap

IMAP\Connection nesnesi.

pk

Posta kutusu ismi; daha fazla bilgi için imap_open() işlevine bakınız. Uluslararası karakterler içeren posta kutusu isimleri imap_utf7_encode() ile kodlanmalıdır.

Uyarı

imap.enable_insecure_rsh iptal edilmedikçe bu bağımsız değişkene güvenilir olmayan verinin aktarılması güvenli değildir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.1.0 imap bağımsız değişkeni artık IMAP\Connection nesnesi kabul ediyor, evvelce resource türünde geçerli bir imap değeri kabul ederdi.

Örnekler

Örnek 1 - imap_createmailbox() örneği

<?php
$mbox
= imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die(
"bağlanılamadı: " . imap_last_error());

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

$newname = $name1;

echo
"Yeni posta kutusu: '$name1'<br />\n";

// Gelen kutusunda önce "phptestbox" adında yeni bir posta kutusu
// oluşturacağız. Oluşturduktan sonra durumuna bakacağız ve son olarak
// gelen kutusunu ilk haline getirmek için yeni posta kutusunu sileceğiz.

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
"Yeni posta kutusu '$name1' ile ilgili durum:<br />\n";
echo
"İleti sayısı: " . $status->messages . "<br />\n";
echo
"Son gelen sayısı: " . $status->recent . "<br />\n";
echo
"Okunmamış sayısı: " . $status->unseen . "<br />\n";
echo
"Sonraki eşsiz kimlik: " . $status->uidnext . "<br />\n";
echo
"Kimlik doğrulaması: " . $status->uidvalidity . "<br />\n";

if (
imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname",
"{imap.example.org}INBOX.$name2")) {
echo
"Yeni posta kutusunun ismi '$name1' iken '$name2' yapıldı<br />\n";
$newname = $name2;
} else {
echo
"imap_renamemailbox başarısız oldu: " .
imap_last_error() . "<br />\n";
}
} else {
echo
"Yeni posta kutusunun durumuna bakılırken bir hata oluştu: " .
imap_last_error() . "<br />\n";
}

if (@
imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
echo
"Yeni posta kutusu silindi.<br />\n";
} else {
echo
"Yeni posta kutusu için imap_deletemailbox başarısız oldu: " .
implode("<br />\n", imap_errors()) . "<br />\n";
}

} else {
echo
"Yeni posta kutusu oluşturulamadı: " .
implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Ayrıca Bakınız

add a note

User Contributed Notes 1 note

up
13
tiznull
14 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