3 0fd75c45 2022-07-30 mischa // Postfix Admin
4 0fd75c45 2022-07-30 mischa // by Mischa Peters <mischa at high5 dot net>
5 0fd75c45 2022-07-30 mischa // Copyright (c) 2002 - 2005 High5!
6 0fd75c45 2022-07-30 mischa // License Info: http://www.postfixadmin.com/?file=LICENSE.TXT
8 0fd75c45 2022-07-30 mischa // File: create-mailbox.php
10 0fd75c45 2022-07-30 mischa // Template File: create-mailbox.tpl
12 0fd75c45 2022-07-30 mischa // Template Variables:
14 0fd75c45 2022-07-30 mischa // tMessage
15 0fd75c45 2022-07-30 mischa // tUsername
18 0fd75c45 2022-07-30 mischa // tDomain
20 0fd75c45 2022-07-30 mischa // Form POST \ GET Variables:
22 0fd75c45 2022-07-30 mischa // fUsername
23 0fd75c45 2022-07-30 mischa // fPassword
24 0fd75c45 2022-07-30 mischa // fPassword2
27 0fd75c45 2022-07-30 mischa // fDomain
28 0fd75c45 2022-07-30 mischa // fActive
31 0fd75c45 2022-07-30 mischa require ("./variables.inc.php");
32 0fd75c45 2022-07-30 mischa require ("./config.inc.php");
33 0fd75c45 2022-07-30 mischa require ("./functions.inc.php");
34 0fd75c45 2022-07-30 mischa include ("./languages/" . check_language () . ".lang");
36 0fd75c45 2022-07-30 mischa $SESSID_USERNAME = check_session ();
37 0fd75c45 2022-07-30 mischa $list_domains = list_domains_for_admin ($SESSID_USERNAME);
39 0fd75c45 2022-07-30 mischa if ($_SERVER['REQUEST_METHOD'] == "GET")
41 0fd75c45 2022-07-30 mischa $tQuota = $CONF['maxquota'];
43 0fd75c45 2022-07-30 mischa $pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text'];
44 0fd75c45 2022-07-30 mischa $pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text'];
45 0fd75c45 2022-07-30 mischa $pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text'];
47 0fd75c45 2022-07-30 mischa if (isset ($_GET['domain'])) $tDomain = escape_string ($_GET['domain']);
49 0fd75c45 2022-07-30 mischa include ("./templates/header.tpl");
50 0fd75c45 2022-07-30 mischa include ("./templates/menu.tpl");
51 0fd75c45 2022-07-30 mischa include ("./templates/create-mailbox.tpl");
52 0fd75c45 2022-07-30 mischa include ("./templates/footer.tpl");
55 0fd75c45 2022-07-30 mischa if ($_SERVER['REQUEST_METHOD'] == "POST")
57 0fd75c45 2022-07-30 mischa $pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text'];
58 0fd75c45 2022-07-30 mischa $pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text'];
59 0fd75c45 2022-07-30 mischa $pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text'];
61 0fd75c45 2022-07-30 mischa $fUsername = escape_string ($_POST['fUsername']) . "@" . escape_string ($_POST['fDomain']);
62 0fd75c45 2022-07-30 mischa $fUsername = strtolower ($fUsername);
63 0fd75c45 2022-07-30 mischa $fPassword = escape_string ($_POST['fPassword']);
64 0fd75c45 2022-07-30 mischa $fPassword2 = escape_string ($_POST['fPassword2']);
65 0fd75c45 2022-07-30 mischa $fName = escape_string ($_POST['fName']);
66 0fd75c45 2022-07-30 mischa $fDomain = escape_string ($_POST['fDomain']);
67 0fd75c45 2022-07-30 mischa if (isset ($_POST['fQuota'])) $fQuota = escape_string ($_POST['fQuota']);
68 0fd75c45 2022-07-30 mischa if (isset ($_POST['fActive'])) $fActive = escape_string ($_POST['fActive']);
69 0fd75c45 2022-07-30 mischa if (isset ($_POST['fMail'])) $fMail = escape_string ($_POST['fMail']);
71 0fd75c45 2022-07-30 mischa if (!check_owner ($SESSID_USERNAME, $fDomain))
73 0fd75c45 2022-07-30 mischa $error = 1;
74 0fd75c45 2022-07-30 mischa $tUsername = escape_string ($_POST['fUsername']);
75 0fd75c45 2022-07-30 mischa $tName = $fName;
76 0fd75c45 2022-07-30 mischa $tQuota = $fQuota;
77 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
78 0fd75c45 2022-07-30 mischa $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1'];
81 0fd75c45 2022-07-30 mischa if (!check_mailbox ($fDomain))
83 0fd75c45 2022-07-30 mischa $error = 1;
84 0fd75c45 2022-07-30 mischa $tUsername = escape_string ($_POST['fUsername']);
85 0fd75c45 2022-07-30 mischa $tName = $fName;
86 0fd75c45 2022-07-30 mischa $tQuota = $fQuota;
87 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
88 0fd75c45 2022-07-30 mischa $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error3'];
91 0fd75c45 2022-07-30 mischa if (empty ($fUsername) or !check_email ($fUsername))
93 0fd75c45 2022-07-30 mischa $error = 1;
94 0fd75c45 2022-07-30 mischa $tUsername = escape_string ($_POST['fUsername']);
95 0fd75c45 2022-07-30 mischa $tName = $fName;
96 0fd75c45 2022-07-30 mischa $tQuota = $fQuota;
97 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
98 0fd75c45 2022-07-30 mischa $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1'];
101 0fd75c45 2022-07-30 mischa if (empty ($fPassword) or ($fPassword != $fPassword2))
103 0fd75c45 2022-07-30 mischa if ($CONF['generate_password'] == "YES")
105 0fd75c45 2022-07-30 mischa $fPassword = generate_password ();
109 0fd75c45 2022-07-30 mischa $error = 1;
110 0fd75c45 2022-07-30 mischa $tUsername = escape_string ($_POST['fUsername']);
111 0fd75c45 2022-07-30 mischa $tName = $fName;
112 0fd75c45 2022-07-30 mischa $tQuota = $fQuota;
113 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
114 0fd75c45 2022-07-30 mischa $pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text_error'];
118 0fd75c45 2022-07-30 mischa if ($CONF['quota'] == "YES")
120 0fd75c45 2022-07-30 mischa if (!check_quota ($fQuota, $fDomain))
122 0fd75c45 2022-07-30 mischa $error = 1;
123 0fd75c45 2022-07-30 mischa $tUsername = escape_string ($_POST['fUsername']);
124 0fd75c45 2022-07-30 mischa $tName = $fName;
125 0fd75c45 2022-07-30 mischa $tQuota = $fQuota;
126 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
127 0fd75c45 2022-07-30 mischa $pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text_error'];
131 0fd75c45 2022-07-30 mischa $result = db_query ("SELECT * FROM alias WHERE address='$fUsername'");
132 0fd75c45 2022-07-30 mischa if ($result['rows'] == 1)
134 0fd75c45 2022-07-30 mischa $error = 1;
135 0fd75c45 2022-07-30 mischa $tUsername = escape_string ($_POST['fUsername']);
136 0fd75c45 2022-07-30 mischa $tName = $fName;
137 0fd75c45 2022-07-30 mischa $tQuota = $fQuota;
138 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
139 0fd75c45 2022-07-30 mischa $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error2'];
142 0fd75c45 2022-07-30 mischa if ($error != 1)
144 0fd75c45 2022-07-30 mischa $password = pacrypt ($fPassword);
146 0fd75c45 2022-07-30 mischa if ($CONF['domain_path'] == "YES")
148 0fd75c45 2022-07-30 mischa if ($CONF['domain_in_mailbox'] == "YES")
150 0fd75c45 2022-07-30 mischa $maildir = $fDomain . "/" . $fUsername . "/";
154 0fd75c45 2022-07-30 mischa $maildir = $fDomain . "/" . escape_string ($_POST['fUsername']) . "/";
159 0fd75c45 2022-07-30 mischa $maildir = $fUsername . "/";
162 0fd75c45 2022-07-30 mischa if (!empty ($fQuota))
164 0fd75c45 2022-07-30 mischa $quota = $fQuota * $CONF['quota_multiplier'];
168 0fd75c45 2022-07-30 mischa $quota = 0;
171 0fd75c45 2022-07-30 mischa if ($fActive == "on")
173 0fd75c45 2022-07-30 mischa $fActive = 1;
177 0fd75c45 2022-07-30 mischa $fActive = 0;
180 0fd75c45 2022-07-30 mischa $result = db_query ("INSERT INTO alias (address,goto,domain,created,modified,active) VALUES ('$fUsername','$fUsername','$fDomain',NOW(),NOW(),'$fActive')");
181 0fd75c45 2022-07-30 mischa if ($result['rows'] != 1)
183 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
184 0fd75c45 2022-07-30 mischa $tMessage = $PALANG['pAlias_result_error'] . "<br />($fUsername -> $fUsername)</br />";
187 0fd75c45 2022-07-30 mischa $result = db_query ("INSERT INTO mailbox (username,password,name,maildir,quota,domain,created,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$quota','$fDomain',NOW(),NOW(),'$fActive')");
188 0fd75c45 2022-07-30 mischa if ($result['rows'] != 1)
190 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
191 0fd75c45 2022-07-30 mischa $tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />";
196 0fd75c45 2022-07-30 mischa db_log ($SESSID_USERNAME, $fDomain, "create mailbox", "$fUsername");
198 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
199 0fd75c45 2022-07-30 mischa $tMessage = $PALANG['pCreate_mailbox_result_succes'] . "<br />($fUsername";
200 0fd75c45 2022-07-30 mischa if ($CONF['generate_password'] == "YES")
202 0fd75c45 2022-07-30 mischa $tMessage .= " / $fPassword)</br />";
206 0fd75c45 2022-07-30 mischa $tMessage .= ")</br />";
209 0fd75c45 2022-07-30 mischa $tQuota = $CONF['maxquota'];
211 0fd75c45 2022-07-30 mischa if ($fMail == "on")
213 0fd75c45 2022-07-30 mischa $fTo = $fUsername;
214 0fd75c45 2022-07-30 mischa $fFrom = $SESSID_USERNAME;
215 0fd75c45 2022-07-30 mischa $fHeaders = "To: " . $fTo . "\n";
216 0fd75c45 2022-07-30 mischa $fHeaders .= "From: " . $fFrom . "\n";
218 0fd75c45 2022-07-30 mischa if (!empty ($PALANG['charset']))
220 0fd75c45 2022-07-30 mischa $fHeaders .= "Subject: " . encode_header ($PALANG['pSendmail_subject_text'], $PALANG['charset']) . "\n";
221 0fd75c45 2022-07-30 mischa $fHeaders .= "MIME-Version: 1.0\n";
222 0fd75c45 2022-07-30 mischa $fHeaders .= "Content-Type: text/plain; charset=" . $PALANG['charset'] . "\n";
223 0fd75c45 2022-07-30 mischa $fHeaders .= "Content-Transfer-Encoding: 8bit\n";
227 0fd75c45 2022-07-30 mischa $fHeaders .= "Subject: " . $PALANG['pSendmail_subject_text'] . "\n\n";
230 0fd75c45 2022-07-30 mischa $fHeaders .= $CONF['welcome_text'];
232 0fd75c45 2022-07-30 mischa if (!smtp_mail ($fTo, $fFrom, $fHeaders))
234 0fd75c45 2022-07-30 mischa $tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />";
238 0fd75c45 2022-07-30 mischa $tMessage .= "<br />" . $PALANG['pSendmail_result_succes'] . "<br />";
244 0fd75c45 2022-07-30 mischa include ("./templates/header.tpl");
245 0fd75c45 2022-07-30 mischa include ("./templates/menu.tpl");
246 0fd75c45 2022-07-30 mischa include ("./templates/create-mailbox.tpl");
247 0fd75c45 2022-07-30 mischa include ("./templates/footer.tpl");