Blame


1 0fd75c45 2022-07-30 mischa <?php
2 0fd75c45 2022-07-30 mischa //
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
7 0fd75c45 2022-07-30 mischa //
8 0fd75c45 2022-07-30 mischa // File: create-mailbox.php
9 0fd75c45 2022-07-30 mischa //
10 0fd75c45 2022-07-30 mischa // Template File: create-mailbox.tpl
11 0fd75c45 2022-07-30 mischa //
12 0fd75c45 2022-07-30 mischa // Template Variables:
13 0fd75c45 2022-07-30 mischa //
14 0fd75c45 2022-07-30 mischa // tMessage
15 0fd75c45 2022-07-30 mischa // tUsername
16 0fd75c45 2022-07-30 mischa // tName
17 0fd75c45 2022-07-30 mischa // tQuota
18 0fd75c45 2022-07-30 mischa // tDomain
19 0fd75c45 2022-07-30 mischa //
20 0fd75c45 2022-07-30 mischa // Form POST \ GET Variables:
21 0fd75c45 2022-07-30 mischa //
22 0fd75c45 2022-07-30 mischa // fUsername
23 0fd75c45 2022-07-30 mischa // fPassword
24 0fd75c45 2022-07-30 mischa // fPassword2
25 0fd75c45 2022-07-30 mischa // fName
26 0fd75c45 2022-07-30 mischa // fQuota
27 0fd75c45 2022-07-30 mischa // fDomain
28 0fd75c45 2022-07-30 mischa // fActive
29 0fd75c45 2022-07-30 mischa // fMail
30 0fd75c45 2022-07-30 mischa //
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");
35 0fd75c45 2022-07-30 mischa
36 0fd75c45 2022-07-30 mischa $SESSID_USERNAME = check_session ();
37 0fd75c45 2022-07-30 mischa $list_domains = list_domains_for_admin ($SESSID_USERNAME);
38 0fd75c45 2022-07-30 mischa
39 0fd75c45 2022-07-30 mischa if ($_SERVER['REQUEST_METHOD'] == "GET")
40 0fd75c45 2022-07-30 mischa {
41 0fd75c45 2022-07-30 mischa $tQuota = $CONF['maxquota'];
42 0fd75c45 2022-07-30 mischa
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'];
46 0fd75c45 2022-07-30 mischa
47 0fd75c45 2022-07-30 mischa if (isset ($_GET['domain'])) $tDomain = escape_string ($_GET['domain']);
48 0fd75c45 2022-07-30 mischa
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");
53 0fd75c45 2022-07-30 mischa }
54 0fd75c45 2022-07-30 mischa
55 0fd75c45 2022-07-30 mischa if ($_SERVER['REQUEST_METHOD'] == "POST")
56 0fd75c45 2022-07-30 mischa {
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'];
60 0fd75c45 2022-07-30 mischa
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']);
70 0fd75c45 2022-07-30 mischa
71 0fd75c45 2022-07-30 mischa if (!check_owner ($SESSID_USERNAME, $fDomain))
72 0fd75c45 2022-07-30 mischa {
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'];
79 0fd75c45 2022-07-30 mischa }
80 0fd75c45 2022-07-30 mischa
81 0fd75c45 2022-07-30 mischa if (!check_mailbox ($fDomain))
82 0fd75c45 2022-07-30 mischa {
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'];
89 0fd75c45 2022-07-30 mischa }
90 0fd75c45 2022-07-30 mischa
91 0fd75c45 2022-07-30 mischa if (empty ($fUsername) or !check_email ($fUsername))
92 0fd75c45 2022-07-30 mischa {
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'];
99 0fd75c45 2022-07-30 mischa }
100 0fd75c45 2022-07-30 mischa
101 0fd75c45 2022-07-30 mischa if (empty ($fPassword) or ($fPassword != $fPassword2))
102 0fd75c45 2022-07-30 mischa {
103 0fd75c45 2022-07-30 mischa if ($CONF['generate_password'] == "YES")
104 0fd75c45 2022-07-30 mischa {
105 0fd75c45 2022-07-30 mischa $fPassword = generate_password ();
106 0fd75c45 2022-07-30 mischa }
107 0fd75c45 2022-07-30 mischa else
108 0fd75c45 2022-07-30 mischa {
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'];
115 0fd75c45 2022-07-30 mischa }
116 0fd75c45 2022-07-30 mischa }
117 0fd75c45 2022-07-30 mischa
118 0fd75c45 2022-07-30 mischa if ($CONF['quota'] == "YES")
119 0fd75c45 2022-07-30 mischa {
120 0fd75c45 2022-07-30 mischa if (!check_quota ($fQuota, $fDomain))
121 0fd75c45 2022-07-30 mischa {
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'];
128 0fd75c45 2022-07-30 mischa }
129 0fd75c45 2022-07-30 mischa }
130 0fd75c45 2022-07-30 mischa
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)
133 0fd75c45 2022-07-30 mischa {
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'];
140 0fd75c45 2022-07-30 mischa }
141 0fd75c45 2022-07-30 mischa
142 0fd75c45 2022-07-30 mischa if ($error != 1)
143 0fd75c45 2022-07-30 mischa {
144 0fd75c45 2022-07-30 mischa $password = pacrypt ($fPassword);
145 0fd75c45 2022-07-30 mischa
146 0fd75c45 2022-07-30 mischa if ($CONF['domain_path'] == "YES")
147 0fd75c45 2022-07-30 mischa {
148 0fd75c45 2022-07-30 mischa if ($CONF['domain_in_mailbox'] == "YES")
149 0fd75c45 2022-07-30 mischa {
150 0fd75c45 2022-07-30 mischa $maildir = $fDomain . "/" . $fUsername . "/";
151 0fd75c45 2022-07-30 mischa }
152 0fd75c45 2022-07-30 mischa else
153 0fd75c45 2022-07-30 mischa {
154 0fd75c45 2022-07-30 mischa $maildir = $fDomain . "/" . escape_string ($_POST['fUsername']) . "/";
155 0fd75c45 2022-07-30 mischa }
156 0fd75c45 2022-07-30 mischa }
157 0fd75c45 2022-07-30 mischa else
158 0fd75c45 2022-07-30 mischa {
159 0fd75c45 2022-07-30 mischa $maildir = $fUsername . "/";
160 0fd75c45 2022-07-30 mischa }
161 0fd75c45 2022-07-30 mischa
162 0fd75c45 2022-07-30 mischa if (!empty ($fQuota))
163 0fd75c45 2022-07-30 mischa {
164 0fd75c45 2022-07-30 mischa $quota = $fQuota * $CONF['quota_multiplier'];
165 0fd75c45 2022-07-30 mischa }
166 0fd75c45 2022-07-30 mischa else
167 0fd75c45 2022-07-30 mischa {
168 0fd75c45 2022-07-30 mischa $quota = 0;
169 0fd75c45 2022-07-30 mischa }
170 0fd75c45 2022-07-30 mischa
171 0fd75c45 2022-07-30 mischa if ($fActive == "on")
172 0fd75c45 2022-07-30 mischa {
173 0fd75c45 2022-07-30 mischa $fActive = 1;
174 0fd75c45 2022-07-30 mischa }
175 0fd75c45 2022-07-30 mischa else
176 0fd75c45 2022-07-30 mischa {
177 0fd75c45 2022-07-30 mischa $fActive = 0;
178 0fd75c45 2022-07-30 mischa }
179 0fd75c45 2022-07-30 mischa
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)
182 0fd75c45 2022-07-30 mischa {
183 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
184 0fd75c45 2022-07-30 mischa $tMessage = $PALANG['pAlias_result_error'] . "<br />($fUsername -> $fUsername)</br />";
185 0fd75c45 2022-07-30 mischa }
186 0fd75c45 2022-07-30 mischa
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)
189 0fd75c45 2022-07-30 mischa {
190 0fd75c45 2022-07-30 mischa $tDomain = $fDomain;
191 0fd75c45 2022-07-30 mischa $tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />";
192 0fd75c45 2022-07-30 mischa }
193 0fd75c45 2022-07-30 mischa else
194 0fd75c45 2022-07-30 mischa {
195 0fd75c45 2022-07-30 mischa
196 0fd75c45 2022-07-30 mischa db_log ($SESSID_USERNAME, $fDomain, "create mailbox", "$fUsername");
197 0fd75c45 2022-07-30 mischa
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")
201 0fd75c45 2022-07-30 mischa {
202 0fd75c45 2022-07-30 mischa $tMessage .= " / $fPassword)</br />";
203 0fd75c45 2022-07-30 mischa }
204 0fd75c45 2022-07-30 mischa else
205 0fd75c45 2022-07-30 mischa {
206 0fd75c45 2022-07-30 mischa $tMessage .= ")</br />";
207 0fd75c45 2022-07-30 mischa }
208 0fd75c45 2022-07-30 mischa
209 0fd75c45 2022-07-30 mischa $tQuota = $CONF['maxquota'];
210 0fd75c45 2022-07-30 mischa
211 0fd75c45 2022-07-30 mischa if ($fMail == "on")
212 0fd75c45 2022-07-30 mischa {
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";
217 0fd75c45 2022-07-30 mischa
218 0fd75c45 2022-07-30 mischa if (!empty ($PALANG['charset']))
219 0fd75c45 2022-07-30 mischa {
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";
224 0fd75c45 2022-07-30 mischa }
225 0fd75c45 2022-07-30 mischa else
226 0fd75c45 2022-07-30 mischa {
227 0fd75c45 2022-07-30 mischa $fHeaders .= "Subject: " . $PALANG['pSendmail_subject_text'] . "\n\n";
228 0fd75c45 2022-07-30 mischa }
229 0fd75c45 2022-07-30 mischa
230 0fd75c45 2022-07-30 mischa $fHeaders .= $CONF['welcome_text'];
231 0fd75c45 2022-07-30 mischa
232 0fd75c45 2022-07-30 mischa if (!smtp_mail ($fTo, $fFrom, $fHeaders))
233 0fd75c45 2022-07-30 mischa {
234 0fd75c45 2022-07-30 mischa $tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />";
235 0fd75c45 2022-07-30 mischa }
236 0fd75c45 2022-07-30 mischa else
237 0fd75c45 2022-07-30 mischa {
238 0fd75c45 2022-07-30 mischa $tMessage .= "<br />" . $PALANG['pSendmail_result_succes'] . "<br />";
239 0fd75c45 2022-07-30 mischa }
240 0fd75c45 2022-07-30 mischa }
241 0fd75c45 2022-07-30 mischa }
242 0fd75c45 2022-07-30 mischa }
243 0fd75c45 2022-07-30 mischa
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");
248 0fd75c45 2022-07-30 mischa }
249 0fd75c45 2022-07-30 mischa ?>