├── .gitignore
├── INSTALL
├── README.md
├── addressbook.php
├── attachments.php
├── classes
├── imap.inc
├── imap_pop3.inc
├── mailbox.inc
├── mime_mail.inc
├── phpDB-msql.inc
├── phpDB-mssql.inc
├── phpDB-mysql.inc
├── phpDB-postgresql.inc
├── phpDB-sybase.inc
├── phpDB.inc
├── pop3.inc
└── userclass.inc
├── contactdetails.php
├── contactupdate.php
├── createcontact.php
├── createfavorites.php
├── createfolder.php
├── createnote.php
├── deleteattachment.php
├── deletecontact.php
├── deletefavorites.php
├── deletefolder.php
├── deletemessage.php
├── deletenote.php
├── doc
├── FAQ
│ ├── FAQ
│ ├── FAQ.doc
│ └── FAQ.pdf
├── INSTALL
├── LICENSE
├── THANKS
├── TODO
├── UPGRADE
└── WHATSNEW
├── download_attachment.php
├── favoritedetails.php
├── favorites.php
├── favoritesupdate.php
├── folders.php
├── htaccess
├── images
├── attach.gif
├── background.gif
├── block.gif
├── bt_addressbook.gif
├── bt_addressbook2.gif
├── bt_email.gif
├── bt_favorites.gif
├── bt_notebook.gif
├── button.psd
├── company_logo.jpg
├── company_logo2.jpg
├── company_logo3.jpg
├── delete.gif
├── deutsch_version1.gif
├── deutsch_version2.gif
├── dot.gif
├── dutch_version1.gif
├── dutch_version2.gif
├── empty.gif
├── english_version1.gif
├── english_version2.gif
├── espanol_version1.gif
├── espanol_version2.gif
├── forward.gif
├── francais_version1.gif
├── francais_version2.gif
├── italiano_version1.gif
├── italiano_version2.gif
├── line_horizantal_shadow.gif
├── line_tool.gif
├── line_vertical_blue_back.gif
├── next.gif
├── norsk_version1.gif
├── norsk_version2.gif
├── polski_version1.gif
├── polski_version2.gif
├── portugues_version1.gif
├── portugues_version1.gif.tmp
├── portugues_version2.gif
├── postaci_webmail.jpg
├── previous.gif
├── print.gif
├── reply.gif
├── save.gif
├── sponsor.gif
├── turkce_version1.gif
├── turkce_version2.gif
├── turkish_version1.gif
├── turkish_version2.gif
├── welcome.psd
├── welcome_deutsch.gif
├── welcome_dutch.gif
├── welcome_english.gif
├── welcome_espanol.gif
├── welcome_francais.gif
├── welcome_italiano.gif
├── welcome_norsk.gif
├── welcome_polski.gif
├── welcome_polski.gif.tmp
├── welcome_portugues.gif
└── welcome_turkce.gif
├── import_addressbook.php
├── includes
├── commonhead.inc
├── finish_spell.php
├── functions.inc
├── global.inc
├── headinside.inc
├── javascripts.inc
├── spellcheck.php
└── stylesheets.inc
├── index.php
├── lang
├── deutsch.inc
├── dutch.inc
├── english.inc
├── espanol.inc
├── francais.inc
├── italiano.inc
├── norsk.inc
├── polski.inc
├── portugues.inc
└── turkce.inc
├── mailbox.php
├── message_move.php
├── notebook.php
├── notebookdetails.php
├── notebookupdate.php
├── postmail.php
├── preferences.php
├── queries
├── UPGRADE
│ ├── upgrade-mysql-1.1.0-1.1.3.sql
│ └── upgrade-mysql-1.1.1-1.1.3.sql
├── postaci-mssql-1.1.sql
├── postaci-mysql-1.1.sql
├── postaci-pgsql-1.1.sql
└── tblDomains.sql
├── readmessage.php
├── renamefolder.php
├── renamefolder_action.php
├── save_preferences.php
├── sendmail.php
├── spellcheck.php
├── template.php
├── upload.php
└── validate_login.php
/.gitignore:
--------------------------------------------------------------------------------
1 | # osx noise
2 | .DS_Store
3 | profile
4 |
5 | # xcode noise
6 | build/*
7 | *.mode1
8 | *.mode1v3
9 | *.mode2v3
10 | *.perspective
11 | *.perspectivev3
12 | *.pbxuser
13 | *.xcworkspace
14 | xcuserdata
15 |
16 | # svn & cvs
17 | .svn
18 | CVS
19 |
--------------------------------------------------------------------------------
/INSTALL:
--------------------------------------------------------------------------------
1 | Postaci Webmail is a complex piece of software in terms of installation and maintanance.
2 | Please read doc/INSTALL file and follow these steps carefully. When you have finished,
3 | please read the FAQ which is also in the doc directory. These documents should give a
4 | slight idea of what Postaci is.
5 |
6 | More information is also available at http://www.postaciwebmail.org/
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Postaci Webmail
2 | Postaci (Turkish for Postman) is multiplatform Webmail software which is database independent, multilanguage, POP3/IMAP, and fully MIME-compatible. While using POP3 mode to fetch messages it uses database fields to simulate IMAP folders, on which you can save, move, delete, and read e-mail. It also contains an adressbook, a notebook, and a bookmark manager application.
3 |
4 | ### Recent releases
5 |
6 | **2.0.1 01 Oct 2006 19:24**
7 | Release Notes: SMTP authentication for those who need to authenticate to send email. An Email Address field in Preferences allows you to manually set your From: email address. A problem in moving messages when using IMAP has been fixed.
8 |
9 | **2.0 20 Mar 2006 02:03**
10 | Pete Larsen is maintaining the project from now on. A spell check feature and an address book window have been added to the sendmail page. Passwords will no longer be stored in the database. SQL injection attacks are prevented. Problems adding, renaming, and deleting folders and problems adding, moving, and deleting messages have been fixed. The message size is stored in the database when you move messages. It is easier to customize the colors. There are numerous enhancements.
11 |
12 | **1.1.3 07 Nov 2000 16:39**
13 | Release Notes: The infamous attachments bug was fixed. Some problems with Courier-IMAP servers were fixed, and some minor bugfixes were made. Polish and Spanish support was added.
14 |
15 | **1.1.2 04 Nov 2000 20:35**
16 | Release Notes: This release adds French and Norwegian support and some minor bugfixes.
17 |
18 | **1.1.1 31 Oct 2000 09:13**
19 | Release Notes: A severe security hole has been fixed, and minor bugfixes were added. An FAQ and global.inc file documentation were included. Translations are provided for German, Italian, Dutch, and Portuguese. Support for Qmail/vpop users has been added.
20 |
--------------------------------------------------------------------------------
/classes/imap.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : imap.inc
4 | Version : 1.1.0
5 | Author : Umut Gokbayrak
6 | e-mail : umut@trlinux.com
7 | Purpose : It automates any IMAP function. It is included from th imap_pop3 class.
8 | Last modified : 10 Sep 2000
9 | */
10 |
11 | /*******************************************************************************/
12 | /* Functions IMAP and POP3 share */
13 | /*******************************************************************************/
14 |
15 |
16 | class imap_pop3 {
17 | var $port;
18 | var $protocol;
19 | var $hostname;
20 | var $username;
21 | var $password;
22 | var $mbox;
23 | var $mbox_id;
24 | var $message_count;
25 |
26 | function imap_pop3($port, $protocol, $hostname, $username, $password,$mbox_id) {
27 | global $text80;
28 |
29 | $this->port = $port;
30 | $this->protocol = $protocol;
31 | $this->hostname = $hostname;
32 | $this->username = $username;
33 | $this->password = $password;
34 | $this->mbox = false;
35 | $this->mbox_id = $mbox_id;
36 | $this->messagecount = 0;
37 |
38 | if (trim($port) == "") {
39 | switch ($protocol) {
40 | case "imap" :
41 | $this->port = "143";
42 | break;
43 | case "pop3" :
44 | $this->port = "110";
45 | break;
46 | default :
47 | echo "
$text80
";
48 | die;
49 | } // end switch
50 | } // end if
51 |
52 | $this->makealive();
53 | } // end function
54 |
55 | function authenticate() {
56 | $this->mbox = imap_open("{" . $this->hostname . "/" . $this->protocol . "}", $this->username, $this->password);
57 | if ($this->mbox) {
58 | imap_close($this->mbox);
59 | return true;
60 | } else {
61 | return false;
62 | } // end if
63 |
64 | } // end function
65 |
66 | function decode_mime_string ($string) {
67 | if (eregi("=?([A-Z,0-9,-]+)?([A-Z,0-9,-]+)?([A-Z,0-9,-,=,_]+)?=", $string)) {
68 | $coded_strings = explode('=?', $string);
69 | $counter = 1;
70 | $string = $coded_strings[0];
71 | while ($counter < sizeof($coded_strings)) {
72 | $elements = explode('?', $coded_strings[$counter]);
73 | if (eregi("Q", $elements[1])) {
74 | $elements[2] = str_replace('_', ' ', $elements[2]);
75 | $elements[2] = eregi_replace("=([A-F,0-9]{2})", "%\\1", $elements[2]);
76 | $string .= urldecode($elements[2]);
77 | } else {
78 | $elements[2] = str_replace('=', '', $elements[2]);
79 | if ($elements[2]) { $string .= base64_decode($elements[2]); }
80 | }
81 | if (isset($elements[3]) && $elements[3] != '') {
82 | $elements[3] = ereg_replace("^=", '', $elements[3]);
83 | $string .= $elements[3];
84 | }
85 | $string .= " ";
86 | $counter++;
87 | }
88 | }
89 | return $string;
90 | }
91 |
92 | /*******************************************************************************/
93 | /* Only IMAP specific functions */
94 | /*******************************************************************************/
95 |
96 | function makealive() { // checks to see if imap stream is active. If not it does.
97 | if (!$this->mbox) {
98 | $this->mbox = imap_open("{" . $this->hostname . "/" . $this->protocol . ":" . $this->port . "}$this->mbox_id", $this->username, $this->password) or die (" ");
99 | } else {
100 | $active = imap_ping($this->mbox);
101 | if (!$active) {
102 | $this->mbox = imap_open("{" . $this->hostname . "/" . $this->protocol . ":" . $this->port . "}$this->mbox_id", $this->username, $this->password) or die (" ");
103 | } // end if
104 | } // end if
105 | } // end function
106 |
107 |
108 | /*******************************************************************************/
109 | /* IMAP specific functions with shared names */
110 | /*******************************************************************************/
111 |
112 | function getMailboxes() { // returns an array of subscribed imap folders
113 | $this->makealive();
114 | if ($this->mbox ){
115 | $list = imap_getsubscribed($this->mbox, "{" . $this->hostname . ":" . $this->port . "}", "*");
116 | if (is_array($list)) {
117 | $folders = array("name" => array(),
118 | "id" => array());
119 |
120 | $folder_counter=-1;
121 | reset($list);
122 | while (list($key, $val) = each($list)) {
123 | $folder_counter++;
124 | $folders["name"][$folder_counter] = substr(stristr(imap_utf7_decode($val->name),"}"), 1);
125 | $folders["id"][$folder_counter] = rawurlencode(substr(stristr($val->name,"}"), 1));
126 | } // end while
127 | } // end if
128 | }
129 |
130 | return $folders;
131 | } // end function
132 |
133 |
134 | function mbox_exists($mbox_id) { // Checks to see if the mbox_id is a valid mailbox or not.
135 | if (trim($mbox_id) != "INBOX") {
136 | $this->makealive();
137 | if ($this->mbox){
138 | $it_exists = false;
139 | $list = imap_getsubscribed($this->mbox, "{" . $this->hostname . ":" . $this->port . "}", "*");
140 | if (is_array($list)) {
141 | while (list($key, $val) = each($list)) {
142 | if (substr(stristr(imap_utf7_decode($val->name),"}"), 1) == trim($mbox_id)) {
143 | $it_exists = true;
144 | } // end if
145 | } // end while
146 | } // end if
147 | } else {
148 | Header("Location: index.php?error_id=2");
149 | } // end if
150 | if (!$it_exists) {
151 | Header("Location: index.php?error_id=3");
152 | }
153 | }
154 | } // end function
155 |
156 |
157 | function postaci_get_headers() {
158 | global $text40, $topmsg, $seperator;
159 | $postaci_headers= array("msg_no" => array(),
160 | "attach" => array(),
161 | "from" => array(),
162 | "to" => array(),
163 | "subject" => array(),
164 | "size" => array(),
165 | "status" => array(),
166 | "cc" => array(),
167 | "msg_date"=> array());
168 |
169 | $this->makealive();
170 | if ($this->mbox ){
171 | $mailbox_headers = array();
172 | $mailbox_headers=imap_headers($this->mbox);
173 |
174 | if ($topmsg >= $this->messagecount) {
175 | $topmsg = $this->messagecount;
176 | $bottommsg = $this->messagecount - $seperator +1;
177 | }
178 | if ($topmsg <= 0) {
179 | $topmsg = $this->messagecount;
180 | $bottommsg = $this->messagecount - $seperator +1;
181 | } else {
182 | $bottommsg = $topmsg - $seperator +1;
183 | }
184 | if ($bottommsg <= 0) {
185 | $bottommsg = 1;
186 | }
187 |
188 | $simple_counter = -1;
189 |
190 | for ($i = $topmsg; $i>=$bottommsg;$i = $i -1) {
191 |
192 | $simple_counter++;
193 |
194 | $size=$mailbox_headers[$i-1];
195 | $size=ereg_replace(".*\(","",$size);
196 | $size=ereg_replace(" .*$"," ",$size);
197 | $htmlsize=ceil($size/1024). "K";
198 |
199 | $message_header=imap_header($this->mbox,$i);
200 |
201 | $message_date=ereg_replace(" "," ", date("Y M d - H:i",$message_header->udate));
202 | if ($message_header->Unseen == "U" || $message_header->Recent == "N") {
203 | $message_is_new = 1;
204 | } else {
205 | $message_is_new = 0;
206 | }
207 | $htmlfrom = htmlspecialchars($this->decode_mime_string($message_header->fromaddress));
208 | $htmlcc = htmlspecialchars($this->decode_mime_string($message_header->ccaddress));
209 | $htmlto = htmlspecialchars($this->decode_mime_string($message_header->toaddress));
210 | $mysubject = $this->decode_mime_string($message_header->subject);
211 | if (strlen($mysubject) <= 0 ) {
212 | $mysubject="$text40";
213 | }
214 | $message_number=trim($message_header->Msgno);
215 | $structure=imap_fetchstructure($this->mbox,$message_number);
216 | $c=count($structure->parts);
217 | $attachment_exists = 0;
218 | if ($c>1 ) {
219 | $attachment_exists = 1;
220 | }
221 |
222 | $postaci_headers["msg_no"][$simple_counter] = $message_number;
223 | if ($attachment_exists == 0) {
224 | $postaci_headers["attach"][$simple_counter] = 0;
225 | } else {
226 | $postaci_headers["attach"][$simple_counter] = 1;
227 | }
228 | $postaci_headers["from"][$simple_counter] = $htmlfrom;
229 | $postaci_headers["to"][$simple_counter] = $htmlto;
230 | $postaci_headers["subject"][$simple_counter] = $mysubject;
231 | $postaci_headers["size"][$simple_counter] = $htmlsize;
232 | $postaci_headers["status"][$simple_counter] = $message_is_new;
233 | $postaci_headers["cc"][$simple_counter] = $htmlcc;
234 | $postaci_headers["msg_date"][$simple_counter] = $message_date;
235 | }
236 |
237 | } else {
238 | Header("Location: index.php?error_id=2");
239 | } // end if
240 |
241 | return $postaci_headers;
242 | } // end function
243 |
244 | function empty_mailbox() {
245 | $this->makealive();
246 | if ($this->mbox){
247 | $mboxstatus=imap_check($this->mbox);
248 | $this->messagecount=$mboxstatus->Nmsgs;
249 | if ($this->messagecount == 0) {
250 | return true;
251 | } else {
252 | return false;
253 | }
254 | } else {
255 | Header("Location: index.php?error_id=2");
256 | } // end if
257 | } // end function
258 |
259 | function close_mailbox() {
260 | if ($this->mbox){
261 | imap_close($this->mbox);
262 | }
263 | } // end function
264 |
265 |
266 | } // end class
267 |
268 | ?>
269 |
--------------------------------------------------------------------------------
/classes/imap_pop3.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : imap_pop3.inc
4 | Version : 1.1.0
5 | Author : Umut Gokbayrak
6 | e-mail : umut@trlinux.com
7 | Purpose : It examines the protocol being used and includes appropriate class.
8 | Last modified : 06 Sep 2000
9 | */
10 |
11 | include($postaci_directory . "classes/" . $default_protocol . ".inc");
12 |
13 | ?>
14 |
--------------------------------------------------------------------------------
/classes/mailbox.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : mailbox.inc
4 | Version : 1.1.0
5 | Author : Umut Gokbayrak
6 | e-mail : umut@trlinux.com
7 | Purpose : Used for gathering information about and manipulating the mailboxes.
8 | Last modified : 05 Sep 2000
9 | */
10 |
11 | class mailbox {
12 | var $mbox_id;
13 |
14 | function mailbox() {
15 | } // end function
16 |
17 |
18 | // Finds the user with max ID in tblUsers
19 | function findMaxMboxID() {
20 | global $db;
21 |
22 | $dbq = $db->execute("select mbox_id from tblMailBoxes");
23 | $dbq->lastrow();
24 | $this->mbox_id = $dbq->fields['mbox_id'];
25 | $dbq->close();
26 |
27 | return $this->mbox_id;
28 | } // end function
29 |
30 |
31 | } // end class
32 |
33 | ?>
34 |
--------------------------------------------------------------------------------
/classes/mime_mail.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : mime_mail.inc
4 | Version : 2.0.0
5 | Author : Umut Gokbayrak, Serdar Soydemir, Pete Larsen
6 | Purpose : Generating MIME based e-mail
7 | Last modified : 29 Sept 2006
8 | */
9 |
10 | class mime_mail
11 | {
12 | var $parts;
13 | var $to;
14 | var $from;
15 | var $cc;
16 | var $bcc;
17 | var $headers;
18 | var $subject;
19 | var $body;
20 | var $message_all;
21 | var $smtp_user;
22 | var $smtp_pass;
23 |
24 | function mime_mail() {
25 | $this->parts = array();
26 | $this->to = "";
27 | $this->from = "";
28 | $this->cc = "";
29 | $this->bcc = "";
30 | $this->subject = "";
31 | $this->body = "";
32 | $this->headers = "";
33 | $this->message_all = "";
34 | $this->smtp_user = "";
35 | $this->smtp_pass = "";
36 | }
37 |
38 | function add_attachment($message, $name, $ctype) {
39 | $this->parts[] = array ("ctype" => $ctype,
40 | "message" => $message,
41 | "encode" => $encode,
42 | "name" => $name);
43 | }
44 |
45 | function build_message($part) {
46 | $message = $part[ "message"];
47 | $message = chunk_split(base64_encode($message));
48 | $encoding = "base64";
49 | return "Content-Type: ".$part[ "ctype"].
50 | ($part[ "name"]? "; name = \"".$part[ "name"].
51 | "\"" : "").
52 |
53 | "\nContent-Transfer-Encoding: $encoding\n\n$message\n";
54 | }
55 |
56 | function build_multipart() {
57 | $boundary = "b".md5(uniqid(time()));
58 | $multipart =
59 | "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
60 |
61 | for($i = sizeof($this->parts)-1; $i >= 0; $i--)
62 | {
63 | $multipart .= "\n".$this->build_message($this->parts[$i]).
64 | "--$boundary";
65 | }
66 | return $multipart.= "--\n";
67 | }
68 |
69 | function get_mail($complete = true) {
70 | global $remote_ip;
71 |
72 | $mime = "";
73 | $this->message_all = $mime;
74 |
75 | $this->message_all = $this->message_all . "Subject: $this->subject\n";
76 | $this->message_all = $this->message_all . "To: ".$this->to. "\n";
77 | if (!empty($this->from))
78 | $mime .= "From: ".$this->from. "\n";
79 | if (!empty($this->cc))
80 | $mime .= "Cc: ".$this->cc. "\n";
81 | if (!empty($this->bcc))
82 | $mime .= "Bcc: ".$this->bcc. "\n";
83 |
84 | $mime .= "X-Mailer:Postaci 1.1.0 (ftp://ftp.onar.com.tr/pub/linux/postaci)\n";
85 | $mime .= "X-Comment: This message was sent from " . $remote_ip . "\n";
86 |
87 | if (!empty($this->body))
88 | $this->add_attachment($this->body, "", "text/plain");
89 | $mime .= "MIME-Version: 1.0\n".$this->build_multipart();
90 |
91 | $this->message_all = $this->message_all . $mime;
92 | return $mime;
93 | }
94 |
95 | function send() {
96 | global $smtp_host, $smtp_port, $text91;
97 | global $smtp_auth;
98 |
99 | $mime = $this->get_mail(false);
100 |
101 | $allrecip = $this->to.",".$this->cc.",".$this->bcc;
102 | str_replace(",,", ",", $allrecip);
103 | $recipients = explode(",", $allrecip);
104 |
105 | if ($smtp_host != "localhost") {
106 | $fp = fsockopen($smtp_host,$smtp_port);
107 | $data = substr(fgets($fp,1024),0,3);
108 | if ($data != "220") {
109 | echo "";
110 | die;
111 | }
112 | fputs($fp,"HELO localhost\r\n");
113 |
114 | if ($smtp_auth == "yes") {
115 | $user = base64_encode($this->smtp_user);
116 | $pass = base64_encode($this->smtp_pass);
117 | fputs($fp, "AUTH LOGIN\r\n");
118 | fputs($fp, "$user\r\n");
119 | fputs($fp, "$pass\r\n");
120 | }
121 |
122 | $data = fgets($fp,1024);
123 | fputs($fp, "mail from:<" . $this->from . ">\r\n");
124 | for($i=0; $i<=sizeof($recipients); $i++) {
125 | if ($recipients[$i] != null) {
126 | $data = fgets($fp,1024);
127 | fputs($fp,"rcpt to: <" . $recipients[$i] . ">\r\n");
128 | }
129 | }
130 | $data = fgets($fp,1024);
131 | fputs($fp,"data" . "\r\n");
132 | $data = fgets($fp,1024);
133 | fputs($fp, $this->message_all . "\r\n");
134 | fputs($fp,"\n.\r\n");
135 | $data = fgets($fp,1024);
136 | fputs($fp,"quit\r\n");
137 | $data = fgets($fp,1024);
138 | sleep(1);
139 | fclose($fp);
140 | } else {
141 | mail($this->to, $this->subject, "", $mime);
142 | }
143 | }
144 | };
145 |
146 | ?>
147 |
--------------------------------------------------------------------------------
/classes/phpDB.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : phpDB.inc
4 | Version : 1.1.0
5 | Author : Joe Thong
6 | Purpose : phpDB General Module. A PHP database wrapper for various database servers. Database results
7 | are flushed automatically by phpDB. Supported database servers are MySQL, MSQL, PostgreSQL,
8 | Microsoft SQL Server and Sybase.
9 | Last modified : 03 Sep 2000
10 |
11 | Copyright (c) Joe Thong Chean Fonk.
12 | All rights reserved.
13 | */
14 |
15 | if (!defined("_PHPDB_GENERAL_LAYER")) {
16 | define("_PHPDB_GENERAL_LAYER", 1 );
17 | }
18 |
19 | $databaseType = $database_type;
20 | $phpDBRootPath = '.';
21 |
22 | function useDB($dbType = "") {
23 | global $phpDBRootPath,$postaci_directory;
24 | switch (strtolower($dbType)) {
25 | case "mysql":
26 | case "msql":
27 | case "postgresql":
28 | case "mssql":
29 | case "sybase":
30 | include("$postaci_directory" . "classes". "/phpDB-" . "$dbType" . ".inc");
31 | break;
32 | case "":
33 | die("$text72");
34 | return false;
35 | default:
36 | die("$text73");
37 | return false;
38 | }
39 | return true;
40 | }
41 |
42 | useDB($databaseType);
43 |
44 | ?>
45 |
--------------------------------------------------------------------------------
/classes/userclass.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : userclass.inc
4 | Version : 1.1.0
5 | Author : Umut Gokbayrak
6 | e-mail : umut@trlinux.com
7 | Purpose : Used for gathering information about the users.
8 | Last modified : 05 Sep 2000
9 | */
10 |
11 | class userclass {
12 | var $user_id;
13 |
14 | function userclass() {
15 | } // end function
16 |
17 |
18 | // Finds the user with max ID in tblUsers
19 | function findMaxUserID() {
20 | global $db;
21 |
22 | $dbq = $db->execute("select user_id from tblUsers order by user_id desc");
23 | //$dbq->lastrow();
24 | $this->user_id = $dbq->fields['user_id'];
25 | $dbq->close();
26 |
27 | return $this->user_id;
28 | } // end function
29 |
30 | // Finds the domain_id for any username in tblUserDomains
31 | function findUserDomainID($username) {
32 | global $db;
33 |
34 | $domain_id = 1;
35 | $dbq = $db->execute("select domain_id from tblUserDomains where username='$username'");
36 | $domain_id = $dbq->fields['domain_id'];
37 | if (!$domain_id) {
38 | $domain_id = 1;
39 | }
40 | return $domain_id;
41 | } // end function
42 |
43 |
44 | } // end class
45 |
46 | ?>
47 |
--------------------------------------------------------------------------------
/contactupdate.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : contactupdate.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 | $dbq->close();
20 |
21 | // security check
22 | $item_id = clean_data($item_id);
23 | $dbq = $db->execute("select user_id from tblAdressbook where item_id=$item_id");
24 | $auth_user = $dbq->fields['user_id'];
25 | if ($auth_user != $user_id) {
26 | Header("Location: index.php?error_id=1");
27 | }
28 | $dbq->close();
29 |
30 | if ($log_id == ""){
31 | Header("Location: index.php?error_id=1");
32 | } else {
33 |
34 | $txtnamesurname = clean_data($txtnamesurname);
35 | $txtemail = clean_data($txtemail);
36 | $txtnotes = clean_data($txtnotes);
37 | $txttelephone = clean_data($txttelephone);
38 |
39 | $dbq = $db->execute("update tblAdressbook set real_name='$txtnamesurname',email1 = '$txtemail', notes='$txtnotes',telephone='$txttelephone' where user_id = $user_id and item_id = $item_id");
40 |
41 | Header("Location: addressbook.php");
42 | }
43 |
44 | ?>
45 |
--------------------------------------------------------------------------------
/createcontact.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : createcontact.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 |
20 | $dbq->close();
21 | if ($log_id == ""){
22 | Header("Location: index.php?error_id=1");
23 | } else {
24 |
25 | $txtemail = str_replace(";", "", $txtemail);
26 | $abentry = explode(" <", $txtemail);
27 | $txtnamesurname = $abentry[0];
28 | $txtemail = $abentry[1];
29 | $txtemail = str_replace(">", "", $txtemail);
30 | if ($txtemail == "") { $txtemail = $txtnamesurname; }
31 |
32 | $txtnamesurname = trim($txtnamesurname);
33 | if ($txtnamesurname == "") {
34 | $txtnamesurname = "-----------";
35 | }
36 |
37 | $dbq = $db->execute("select item_id from tblAdressbook order by item_id desc");
38 | $max_item_id = $dbq->fields['item_id'];
39 | $dbq->close();
40 | $max_item_id++;
41 |
42 | $txtnamesurname = clean_data($txtnamesurname);
43 | $txtemail = clean_data($txtemail);
44 | $txttelephone = clean_data($txttelephone);
45 |
46 | $dbq = $db->execute("insert into tblAdressbook values($max_item_id,$user_id,'$txtnamesurname','$txtemail','','$txttelephone')");
47 | $dbq->close();
48 |
49 | if ($rm == 1) {
50 | //$mbox_id = rawurlencode($mbox_id);
51 | Header("Location: readmessage.php?ek=1&mbox_id=$mbox_id&msg_no=$msg_no");
52 | } else {
53 | Header("Location: addressbook.php");
54 | }
55 |
56 | }
57 |
58 | ?>
59 |
--------------------------------------------------------------------------------
/createfavorites.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : createfavorites.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 |
20 | $dbq->close();
21 | if ($log_id == ""){
22 | Header("Location: index.php?error_id=1");
23 | } else {
24 |
25 | $txttitle = trim($txttitle);
26 | if ($txttitle == "") {
27 | $txttitle = "-----------";
28 | }
29 |
30 | $dbq = $db->execute("select favorite_id from tblFavorites order by favorite_id desc");
31 | $max_favorite_id = $dbq->fields['favorite_id'];
32 | $dbq->close();
33 | $max_favorite_id++;
34 |
35 | $txturl = clean_data($txturl);
36 | $txttitle = clean_data($txttitle);
37 |
38 | $dbq = $db->execute("insert into tblFavorites values($max_favorite_id,$user_id,'$txturl','$txttitle','')");
39 | Header("Location: favorites.php");
40 | }
41 |
42 | ?>
43 |
--------------------------------------------------------------------------------
/createfolder.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : createfolder.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 | $dbq->close();
20 |
21 | if ($log_id == ""){
22 | Header("Location: index.php?error_id=1");
23 | exit;
24 | } else {
25 | if (trim($newfolder) != ""){
26 | if(isset($pnspace)) {
27 | $newfolder = $pnspace.$newfolder;
28 | }
29 | if ($default_protocol == "imap") { // protocol = imap
30 | include ("$postaci_directory" . "classes/imap_pop3.inc");
31 | $newfolder = imap_utf7_encode($newfolder);
32 | $email=new imap_pop3($default_port,$default_protocol,$default_host,$username,$password,"INBOX");
33 | $sonuc = imap_createmailbox($email->mbox, "{" . $default_host . "}" . $newfolder);
34 | imap_subscribe($email->mbox, "{" . $default_host . "}" . $newfolder);
35 |
36 | if (!$sonuc) {
37 | Header("Location: folders.php?error_id=4");
38 | exit;
39 | }
40 | } else { // protocol = pop3
41 | $dbq = $db->execute("select mbox_id from tblMailBoxes order by mbox_id desc");
42 | $max_mbox_id = $dbq->fields['mbox_id'];
43 | $max_mbox_id++;
44 | $dbq->close();
45 |
46 | $newfolder = clean_data($newfolder);
47 | $dbq = $db->execute("select mbox_id from tblMailBoxes where user_id = $user_id and mboxname = '$newfolder'");
48 | $mbox_exists = $dbq->fields['mbox_id'];
49 | if ($mbox_exists == 0) {
50 | $dbq = $db->execute("insert into tblMailBoxes values('$max_mbox_id','$user_id','$newfolder',3)");
51 | $dbq->close();
52 | } else {
53 | Header("Location: folders.php?error_id=4");
54 | exit;
55 | }
56 | } // end if
57 | } else {
58 | Header("Location: folders.php?error_id=5");
59 | exit;
60 | }
61 |
62 | Header("Location: folders.php");
63 | }
64 |
65 |
66 | ?>
67 |
--------------------------------------------------------------------------------
/createnote.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : createnote.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | if (trim($txttitle) == "") {
15 | $txttitle = $text40;
16 | }
17 |
18 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
19 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
20 | $log_id = $dbq->fields['log_id'];
21 | $user_id = $dbq->fields['user_id'];
22 | $username = $dbq->fields['username'];
23 |
24 | $dbq->close();
25 | if ($log_id == ""){
26 | Header("Location: index.php?error_id=1");
27 | } else {
28 |
29 | $dbq = $db->execute("select note_id from tblNotebook order by note_id desc");
30 | $max_note_id = $dbq->fields['note_id'];
31 | $dbq->close();
32 | $max_note_id++;
33 |
34 | $tarih = date('Y-m-d');
35 |
36 | $txttitle = addslashes(clean_data($txttitle));
37 | $txtnote = addslashes(strip_tbls($txtnote));
38 |
39 | $dbq = $db->execute("insert into tblNotebook values($max_note_id,$user_id,'$txttitle','$txtnote','$tarih')");
40 | Header("Location: notebook.php");
41 | }
42 |
43 | ?>
44 |
--------------------------------------------------------------------------------
/deleteattachment.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : deleteattachment.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | include ("includes/global.inc");
11 | session_start();
12 |
13 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
14 | $dbq = $db->execute("select log_id from tblLoggedUsers where hash = '$ID'");
15 | $log_id = $dbq->fields['log_id'];
16 | $dbq->close();
17 | if ($log_id == ""){
18 | Header("Location: index.php?error_id=1");
19 | } else {
20 |
21 | // Saving the message body to a temporary file.
22 | $dosyaadi = "msgbody.txt";
23 | $fp = fopen($attach_directory . $ID . "#####" . "msgbody.txt", "w+");
24 | if ($fp) {
25 | $sonuc = fputs($fp, $msgbody);
26 | fclose($fp);
27 | } //end if
28 |
29 | // Deleting the actual file.
30 | unlink($attach_directory . $slcsil);
31 |
32 | Header("Location: attachments.php?to=$to&cc=$cc&bcc=$bcc&subject=$subject&attached=1&mbox_id=$mbox_id&post_act=1");
33 |
34 | }
35 |
36 | ?>
37 |
--------------------------------------------------------------------------------
/deletecontact.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : deletecontact.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 | $dbq->close();
20 |
21 | // security check
22 | $item_id = clean_data($item_id);
23 | $dbq = $db->execute("select user_id from tblAdressbook where item_id=$item_id");
24 | $auth_user = $dbq->fields['user_id'];
25 | if ($auth_user != $user_id) {
26 | Header("Location: index.php?error_id=1");
27 | }
28 | $dbq->close();
29 |
30 | if ($log_id == ""){
31 | Header("Location: index.php?error_id=1");
32 | } else {
33 |
34 | $dbq = $db->execute("delete from tblAdressbook where item_id = $item_id and user_id = $user_id");
35 | $dbq->close();
36 |
37 | Header("Location: addressbook.php");
38 | }
39 |
40 | ?>
41 |
--------------------------------------------------------------------------------
/deletefavorites.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : deletefavorites.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 | $dbq->close();
20 |
21 | // security check
22 | $favorite_id = clean_data($favorite_id);
23 | $dbq = $db->execute("select user_id from tblFavorites where favorite_id=$favorite_id");
24 | $auth_user = $dbq->fields['user_id'];
25 | if ($auth_user != $user_id) {
26 | Header("Location: index.php?error_id=1");
27 | }
28 | $dbq->close();
29 |
30 | if ($log_id == ""){
31 | Header("Location: index.php?error_id=1");
32 | } else {
33 |
34 | $dbq = $db->execute("delete from tblFavorites where favorite_id = $favorite_id and user_id = $user_id");
35 | $dbq->close();
36 |
37 | Header("Location: favorites.php");
38 | }
39 |
40 | ?>
41 |
--------------------------------------------------------------------------------
/deletefolder.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : deletefolder.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 | $dbq->close();
20 |
21 | $mbox_id = rawurldecode($mbox_id);
22 | $mbox_id = clean_data($mbox_id);
23 | if ($log_id == ""){
24 | Header("Location: index.php?error_id=1");
25 | } else {
26 | if ($default_protocol == "imap") { // protocol = imap
27 | include ("$postaci_directory" . "classes/imap_pop3.inc");
28 | $email=new imap_pop3($default_port,$default_protocol,$default_host,$username,$password,"INBOX");
29 | imap_unsubscribe($email->mbox, "{" . $default_host . "}$mbox_id");
30 | $sonuc = imap_deletemailbox($email->mbox, "{" . $default_host . "}$mbox_id");
31 | if (!$sonuc) {
32 | Header("Location: folders.php?error_id=6");
33 | exit;
34 | }
35 | } else { // protocol = pop3
36 | $dbq = $db->execute("select user_id from tblMailBoxes where mbox_id = $mbox_id"); // security check
37 | $auth_user = $dbq->fields['user_id'];
38 | if ($auth_user != $user_id) {
39 | Header("Location: index.php?error_id=1");
40 | }
41 |
42 | // delete the folder
43 | $dbq = $db->execute("delete from tblMailBoxes where mbox_id = $mbox_id and user_id = $user_id");
44 | $dbq->close();
45 |
46 | // delete the attachments and messages
47 | $dbq = $db->execute("select message_id from tblMessages where mbox_id = $mbox_id and user_id = $user_id");
48 | while (!$dbq->EOF) {
49 | $message_id = $dbq->fields['message_id'];
50 | $dbq2 = $db->execute("select file_actual_name from tblAttachments where message_id = $message_id and user_id = $user_id");
51 | while (!$dbq2->EOF) {
52 | $act_name = $dbq2->fields['file_actual_name'];
53 | if (file_exists($act_name)) {
54 | unlink($act_name);
55 | }
56 | $dbq2->nextRow();
57 | }
58 | $dbq2->close();
59 | $dbq3 = $db->execute("delete from tblAtachments where message_id = $message_id and user_id = $user_id");
60 | $dbq3->close();
61 | $dbq->nextRow();
62 | }
63 | $dbq->close();
64 | $dbq = $db->execute("delete from tblMessages where mbox_id = $mbox_id and user_id = $user_id");
65 | $dbq->close();
66 | } // end if
67 |
68 | Header("Location: folders.php");
69 | }
70 |
71 | ?>
72 |
--------------------------------------------------------------------------------
/deletemessage.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : deletemessage.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Purpose : It can delete any kind of message POP3/IMAP/DB with a single click.
8 | Last modified : 28 Feb 2005
9 | */
10 |
11 | session_start();
12 | include ("includes/global.inc");
13 | include ("includes/functions.inc");
14 | include ("$postaci_directory" . "classes/imap_pop3.inc");
15 |
16 | $msg_no = clean_data($msg_no);
17 |
18 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
19 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
20 | $log_id = $dbq->fields['log_id'];
21 | $user_id = $dbq->fields['user_id'];
22 | $username = $dbq->fields['username'];
23 | $dbq->close();
24 | if ($log_id == ""){
25 | Header("Location: index.php?error_id=1");
26 | } else {
27 | $mbox_id = rawurldecode($mbox_id);
28 | if ($default_protocol == "imap" || $mbox_id == "INBOX") {
29 | $email=new imap_pop3($default_port,$default_protocol,$default_host,$username,$password,$mbox_id);
30 | $email->empty_mailbox();
31 | $count=count($chk);
32 |
33 | for($i=0; $i<$count; $i++) {
34 | list($chk[$i], $message_size[$i]) = split("[A]", $chk[$i]);
35 | }
36 |
37 | for ($i=0; $i<$count; $i++) {
38 | $msg_no = $chk[$i];
39 | @imap_delete($email->mbox, $msg_no);
40 | }
41 | @imap_close($email->mbox,CL_EXPUNGE);
42 | } else {
43 | $count=count($chk);
44 |
45 | for($i=0; $i<$count; $i++) {
46 | list($chk[$i], $message_size[$i]) = split("[A]", $chk[$i]);
47 | }
48 |
49 | for ($i=0; $i<$count; $i++) {
50 | $msg_no = $chk[$i];
51 | $dbq = $db->execute("delete from tblMessages where mbox_id=$mbox_id and user_id = $user_id and message_id = $msg_no");
52 | $dbq->close();
53 |
54 | $dbq = $db->execute("select file_actual_name from tblAttachments where message_id = $msg_no");
55 | $act_name = $dbq->fields['file_actual_name'];
56 | while (!$dbq->EOF) {
57 | if (file_exists($act_name)) {
58 | unlink($act_name);
59 | }
60 | $dbq->nextRow();
61 | }
62 | $dbq->close();
63 |
64 | $dbq = $db->execute("delete from tblAttachments where user_id=$user_id and message_id = $msg_no");
65 | $dbq->close();
66 | }
67 | }
68 |
69 | Header("Location: mailbox.php?mbox_id=$mbox_id");
70 |
71 | }
72 |
73 | ?>
74 |
--------------------------------------------------------------------------------
/deletenote.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : deletenote.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 | $dbq->close();
20 |
21 | // security check
22 | $note_id = clean_data($note_id);
23 | $dbq = $db->execute("select user_id from tblNotebook where note_id=$note_id");
24 | $auth_user = $dbq->fields['user_id'];
25 | if ($auth_user != $user_id) {
26 | Header("Location: index.php?error_id=1");
27 | }
28 | $dbq->close();
29 |
30 | if ($log_id == ""){
31 | Header("Location: index.php?error_id=1");
32 | } else {
33 |
34 | $dbq = $db->execute("delete from tblNotebook where note_id = $note_id and user_id = $user_id");
35 | $dbq->close();
36 |
37 | Header("Location: notebook.php");
38 | }
39 |
40 | ?>
41 |
--------------------------------------------------------------------------------
/doc/FAQ/FAQ:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/doc/FAQ/FAQ
--------------------------------------------------------------------------------
/doc/FAQ/FAQ.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/doc/FAQ/FAQ.doc
--------------------------------------------------------------------------------
/doc/FAQ/FAQ.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/doc/FAQ/FAQ.pdf
--------------------------------------------------------------------------------
/doc/INSTALL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/doc/INSTALL
--------------------------------------------------------------------------------
/doc/THANKS:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/doc/THANKS
--------------------------------------------------------------------------------
/doc/TODO:
--------------------------------------------------------------------------------
1 | TODO LIST
2 | ---------
3 | * Inline HTML rendering
4 | * More preferences for the user.
5 | * WAP support. A simplified version of Postaci for WAP communications.
6 | * PGP support
7 | * Theme Support
8 | * Administration Console
9 | * Online user adding (account opening) for free webmail services.
10 | * Better adressbook, notebook, bookmark manager.
11 | * Spam protection.
12 | * Interbase , Oracle, Informix support
13 |
--------------------------------------------------------------------------------
/doc/UPGRADE:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/doc/UPGRADE
--------------------------------------------------------------------------------
/doc/WHATSNEW:
--------------------------------------------------------------------------------
1 | WHAT' S NEW
2 |
3 | *************
4 | VERSION 2.0.0
5 | *************
6 | 1. Added a spellcheck feature
7 | 2. Added an addressbook window to the sendmail page
8 | 3. Added more options to the userpreference page and also the globals.inc file
9 | 4. Postaci will now calculate the size of messages that are sent
10 | 5. Passwords are no longer be stored in the database
11 | 6. A new function has been added to prevent SQL injection attacks
12 | 7. Added ability to send to multiple users using POP3
13 | 8. Added ability to send using cc and bcc using POP3
14 | 9. Fixed problems adding, renaming, and deleting folders
15 | 10.Fixed problems adding, moving, and deleting messages
16 | 11.Made it so that the message size is stored in the database when you
17 | move messages
18 | 12.Made it easier to customize the colors of Postaci
19 |
20 | *************
21 | VERSION 1.1.3
22 | *************
23 | 1. Added Polish and Spanish support
24 | 2. Fixed the infamous attachments bug
25 | 3. Fixed some problems with Courier-IMAP servers
26 | 4. Some minor bugfixes.
27 |
28 | *************
29 | VERSION 1.1.2
30 | *************
31 | 1. Added Norwegian and French support
32 | 2. Some more minor bugfixes
33 |
34 | *************
35 | VERSION 1.1.1
36 | *************
37 | 1. Fixed a security hole that allowed others to read unauthorized mailboxes.
38 | 2. Some more minor bugfixes
39 | 3. Added FAQ and documented the global.inc file.
40 | 4. Added support for German, Italian, Dutch, Portuguese
41 | 5. It works on Windows machines less troubly. (At least it should)
42 | 6. Added support for Qmail/vpop users.
43 |
44 | *************
45 | VERSION 1.1.0
46 | *************
47 |
48 | 1. Database Independency
49 | Postaci 1.1.0 uses an interface class to handle database connections. It is fast and efficient.
50 | As this version it currently supports :
51 |
52 | MySQL
53 | PostgreSQL
54 | Sybase
55 | mSQL
56 | Microsoft SQL
57 |
58 | Interbase, Oracle, Informix support is in the TO DO List.
59 |
60 | 2. Protocol Independency
61 | Postaci 1.1.0 can handle both POP3 and IMAP standarts. If IMAP support is selected during setup
62 | it will use real IMAP folders that is stored at the users' home directory. If POP3 support is
63 | enabled, because POP3 doesn' t provide folder support it will simulate it by using database tables
64 | and store the e-mail in the database, whatever engine it is.
65 |
66 | 3. A frameless, completely new user interface
67 | Postaci 1.1.0 is very much different than Postaci 1.0.x series in the users' view. The user interface
68 | was written from strach.
69 |
70 | 4. Object Oriented Programming
71 | Postaci Webmail' s source code was written from strach to support Object Oriented Programming skills.
72 |
73 | 5. Session Support
74 | Postaci 1.1.0 is programmed to work only with PHP4 because it uses built-in session support from PHP4.
75 | IT WILL NOT WORK WITH PHP3!!!.
76 |
77 | 6. Platform Independeny
78 | Postaci 1.1.0 doesn' t use any native code. So it should work on any architecture and any operating
79 | system which PHP supports.
80 |
81 | 7. Tens of improvements and bug fixes.
82 | Postaci 1.1.0 is a work derived from the feedbacks. Nearly all most wanted feautures are included in this
83 | release.
84 |
85 | 8. Remote SMTP and POP3/IMAP support
86 | Postaci 1.1.0 can fetch and send mail from/through remote servers. You don' t need to set up e-mail, http,
87 | pop3/imap server on the same machine any more....
88 |
89 | 9. Better support for virtual domains.
90 | As from version 1.0.0, Postaci can handle with as many domain names as you want.
91 |
92 | 10. Better localization support
93 | Version 1.1.0 uses plain text files for localization. It is simpler to translate it to any other language.
94 |
95 |
--------------------------------------------------------------------------------
/download_attachment.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : download_attachments.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Purpose : This script is a generic one which can download any part of a message.
8 | Last modified : 28 Feb 2005
9 | */
10 |
11 | session_start();
12 | include ("includes/global.inc");
13 | include ("includes/functions.inc");
14 |
15 | include ("$postaci_directory" . "classes/imap_pop3.inc");
16 |
17 | $mbox_id = clean_data($mbox_id);
18 | $msg_no = clean_data($msg_no);
19 | $attach_id = clean_data($attach_id);
20 |
21 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
22 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
23 | $log_id = $dbq->fields['log_id'];
24 | $username = $dbq->fields['username'];
25 | $user_id = $dbq->fields['user_id'];
26 | $dbq->close();
27 |
28 | if ($log_id == ""){
29 | Header("Location: index.php?error_id=1");
30 | } else {
31 | $real_name = rawurldecode($real_name);
32 | if ($default_protocol == "imap" || $mbox_id == "INBOX") { // real mailbox, IMAP or POP3
33 | $mbox_id = rawurldecode($mbox_id);
34 | $email=new imap_pop3($default_port,$default_protocol,$default_host,$username,$password,$mbox_id);
35 | $email->empty_mailbox();
36 | $body=imap_fetchbody($email->mbox,$msg_no,$part);
37 | if ($encoding==3){
38 | $body = imap_base64($body);
39 | }
40 | if ($encoding==4){
41 | $body = imap_qprint($body);
42 | }
43 |
44 | // Find the MIME type from the extension...
45 | $tersname = strrev($real_name);
46 | $dosya_isim = stristr($tersname,".");
47 | $lenisim = strlen($dosya_isim);
48 | $extension=trim(strtolower(substr($real_name,$lenisim)));
49 |
50 | $mime_type = "application/octet-stream";
51 | $dbq = $db->execute("select mime_type from tblMIME where mime_ext = '$extension'");
52 | $mime_type = $dbq->fields['mime_type'];
53 | $dbq->close();
54 |
55 | Header("Content-type: $mime_type; name=$real_name");
56 | Header("Content-Disposition: attachment; filename=$real_name");
57 | echo $body;
58 | } else { // pop3 database simulation
59 | if ($attach_type != 1){
60 |
61 | $dbq = $db->execute("select user_id from tblMessages where message_id=$msg_no");
62 | $auth_user = $dbq->fields['user_id'];
63 | $dbq->close();
64 | if ($auth_user != $user_id) {
65 | Header("Location: index.php?error_id=1");
66 | }
67 |
68 | $dbq = $db->execute("select file_actual_name from tblAttachments where message_id = $msg_no and user_id = $user_id and attach_id=$attach_id");
69 | $file_actual_name = $dbq->fields['file_actual_name'];
70 | $dbq->close();
71 |
72 | // Find the MIME type from the extension...
73 | $tersname = strrev($real_name);
74 | $dosya_isim = stristr($tersname,".");
75 | $lenisim = strlen($dosya_isim);
76 | $extension=trim(strtolower(substr($real_name,$lenisim)));
77 |
78 | $mime_type = "application/octet-stream";
79 | $dbq = $db->execute("select mime_type from tblMIME where mime_ext = '$extension'");
80 | $mime_type = $dbq->fields['mime_type'];
81 | $dbq->close();
82 |
83 | $fp=fopen($file_actual_name,"r");
84 | $body = fread($fp, filesize($file_actual_name));
85 | fclose($fp);
86 | Header("Content-type: $mime_type; name=$real_name");
87 | Header("Content-Disposition: attachment; filename=$real_name");
88 | echo $body;
89 | } else {
90 |
91 | $dbq = $db->execute("select user_id from tblMessages where message_id=$msg_no"); // security check
92 | $auth_user = $dbq->fields['user_id'];
93 | $dbq->close();
94 | if ($auth_user != $user_id) {
95 | Header("Location: index.php?error_id=1");
96 | }
97 |
98 | $dbq = $db->execute("select msg_body from tblMessages where message_id = $msg_no and user_id = $user_id and mbox_id=$mbox_id");
99 | $body = $dbq->fields['msg_body'];
100 | $dbq->close();
101 | $mime_type = "plain/text";
102 | Header("Content-type: $mime_type; name=$real_name");
103 | Header("Content-Disposition: attachment; filename=$real_name");
104 | echo $body;
105 | }
106 | }
107 | }
108 |
109 | ?>
110 |
--------------------------------------------------------------------------------
/favoritesupdate.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : favoritesupdate.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | include ("includes/global.inc");
11 | include ("includes/functions.inc");
12 | session_start();
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id,user_id,username from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $user_id = $dbq->fields['user_id'];
18 | $username = $dbq->fields['username'];
19 | $dbq->close();
20 |
21 | // security check
22 | $dbq = $db->execute("select user_id from tblFavorites where favorite_id=$favorite_id");
23 | $auth_user = $dbq->fields['user_id'];
24 | if ($auth_user != $user_id) {
25 | Header("Location: index.php?error_id=1");
26 | }
27 | $dbq->close();
28 |
29 | if ($log_id == ""){
30 | Header("Location: index.php?error_id=1");
31 | } else {
32 |
33 | $txturl = clean_data($txturl);
34 | $txttitle = clean_data($txttitle);
35 | $txtnotes = clean_data($txtnotes);
36 |
37 | $dbq = $db->execute("update tblFavorites set url='$txturl',url_title = '$txttitle',notes='$txtnotes' where user_id = $user_id and favorite_id = $favorite_id");
38 | $dbq->close();
39 |
40 | Header("Location: favorites.php");
41 | }
42 |
43 | ?>
44 |
--------------------------------------------------------------------------------
/htaccess:
--------------------------------------------------------------------------------
1 | php_value register_globals on
2 |
--------------------------------------------------------------------------------
/images/attach.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/attach.gif
--------------------------------------------------------------------------------
/images/background.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/background.gif
--------------------------------------------------------------------------------
/images/block.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/block.gif
--------------------------------------------------------------------------------
/images/bt_addressbook.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/bt_addressbook.gif
--------------------------------------------------------------------------------
/images/bt_addressbook2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/bt_addressbook2.gif
--------------------------------------------------------------------------------
/images/bt_email.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/bt_email.gif
--------------------------------------------------------------------------------
/images/bt_favorites.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/bt_favorites.gif
--------------------------------------------------------------------------------
/images/bt_notebook.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/bt_notebook.gif
--------------------------------------------------------------------------------
/images/button.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/button.psd
--------------------------------------------------------------------------------
/images/company_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/company_logo.jpg
--------------------------------------------------------------------------------
/images/company_logo2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/company_logo2.jpg
--------------------------------------------------------------------------------
/images/company_logo3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/company_logo3.jpg
--------------------------------------------------------------------------------
/images/delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/delete.gif
--------------------------------------------------------------------------------
/images/deutsch_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/deutsch_version1.gif
--------------------------------------------------------------------------------
/images/deutsch_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/deutsch_version2.gif
--------------------------------------------------------------------------------
/images/dot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/dot.gif
--------------------------------------------------------------------------------
/images/dutch_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/dutch_version1.gif
--------------------------------------------------------------------------------
/images/dutch_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/dutch_version2.gif
--------------------------------------------------------------------------------
/images/empty.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/empty.gif
--------------------------------------------------------------------------------
/images/english_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/english_version1.gif
--------------------------------------------------------------------------------
/images/english_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/english_version2.gif
--------------------------------------------------------------------------------
/images/espanol_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/espanol_version1.gif
--------------------------------------------------------------------------------
/images/espanol_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/espanol_version2.gif
--------------------------------------------------------------------------------
/images/forward.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/forward.gif
--------------------------------------------------------------------------------
/images/francais_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/francais_version1.gif
--------------------------------------------------------------------------------
/images/francais_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/francais_version2.gif
--------------------------------------------------------------------------------
/images/italiano_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/italiano_version1.gif
--------------------------------------------------------------------------------
/images/italiano_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/italiano_version2.gif
--------------------------------------------------------------------------------
/images/line_horizantal_shadow.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/line_horizantal_shadow.gif
--------------------------------------------------------------------------------
/images/line_tool.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/line_tool.gif
--------------------------------------------------------------------------------
/images/line_vertical_blue_back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/line_vertical_blue_back.gif
--------------------------------------------------------------------------------
/images/next.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/next.gif
--------------------------------------------------------------------------------
/images/norsk_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/norsk_version1.gif
--------------------------------------------------------------------------------
/images/norsk_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/norsk_version2.gif
--------------------------------------------------------------------------------
/images/polski_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/polski_version1.gif
--------------------------------------------------------------------------------
/images/polski_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/polski_version2.gif
--------------------------------------------------------------------------------
/images/portugues_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/portugues_version1.gif
--------------------------------------------------------------------------------
/images/portugues_version1.gif.tmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/portugues_version1.gif.tmp
--------------------------------------------------------------------------------
/images/portugues_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/portugues_version2.gif
--------------------------------------------------------------------------------
/images/postaci_webmail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/postaci_webmail.jpg
--------------------------------------------------------------------------------
/images/previous.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/previous.gif
--------------------------------------------------------------------------------
/images/print.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/print.gif
--------------------------------------------------------------------------------
/images/reply.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/reply.gif
--------------------------------------------------------------------------------
/images/save.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/save.gif
--------------------------------------------------------------------------------
/images/sponsor.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/sponsor.gif
--------------------------------------------------------------------------------
/images/turkce_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/turkce_version1.gif
--------------------------------------------------------------------------------
/images/turkce_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/turkce_version2.gif
--------------------------------------------------------------------------------
/images/turkish_version1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/turkish_version1.gif
--------------------------------------------------------------------------------
/images/turkish_version2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/turkish_version2.gif
--------------------------------------------------------------------------------
/images/welcome.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome.psd
--------------------------------------------------------------------------------
/images/welcome_deutsch.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_deutsch.gif
--------------------------------------------------------------------------------
/images/welcome_dutch.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_dutch.gif
--------------------------------------------------------------------------------
/images/welcome_english.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_english.gif
--------------------------------------------------------------------------------
/images/welcome_espanol.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_espanol.gif
--------------------------------------------------------------------------------
/images/welcome_francais.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_francais.gif
--------------------------------------------------------------------------------
/images/welcome_italiano.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_italiano.gif
--------------------------------------------------------------------------------
/images/welcome_norsk.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_norsk.gif
--------------------------------------------------------------------------------
/images/welcome_polski.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_polski.gif
--------------------------------------------------------------------------------
/images/welcome_polski.gif.tmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_polski.gif.tmp
--------------------------------------------------------------------------------
/images/welcome_portugues.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_portugues.gif
--------------------------------------------------------------------------------
/images/welcome_turkce.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/images/welcome_turkce.gif
--------------------------------------------------------------------------------
/import_addressbook.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : import_addressbook.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Last modified : 28 Feb 2005
8 | */
9 |
10 | session_start();
11 | include ("includes/global.inc");
12 | include ("includes/functions.inc");
13 |
14 | $dbq = $db->execute("select user_id from tblLoggedUsers where hash = '$ID'");
15 | $user_id = $dbq->fields['user_id'];
16 | $dbq->close();
17 |
18 | $uploaddir = "/tmp/postaci/";
19 | $filename = $uploaddir . $ID;
20 |
21 | if (copy($userfile, $filename)) {
22 | $fp = fopen($filename, "r");
23 |
24 | // We want to remove all of the possible column headings, if we don't the name of the first record will
25 | // include the last column heading name.
26 | $column_headings = array("First Name", "Last Name", "Middle Name", "Name", "Nickname", "E-mail Address", "Home Street", "Home City", "Home Postal Code", "Home State", "Home Country/Region", "Home Phone", "Home Fax", "Mobile Phone", "Personal Web Page", "Business Street", "Business City", "Business Postal Code", "Business State", "Business Country/Region", "Business Phone", "Business Fax", "Pager", "Company", "Job Title", "Department", "Office Location", "Notes");
27 |
28 | $addresses = fread($fp, filesize($filename));
29 | fclose($fp);
30 | $addresses = str_replace($column_headings, "", $addresses);
31 | $list = explode(",", $addresses); // Divide $addresses into an array called $list
32 |
33 | $dbq = $db->execute("select item_id from tblAdressbook order by item_id desc");
34 | $max_item_id = $dbq->fields['item_id'];
35 | $dbq->close();
36 | $max_item_id++;
37 |
38 | // When an email address is detectcted, the record just before it will be the name that corresponds to it.
39 | // The name and email address are then written to the database
40 | for($i=0; $i<=sizeof($list); $i++) {
41 | if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $list[$i])) {
42 | $list[$i-1] = clean_data($list[$i-1]);
43 | $list[$i] = clean_data($list[$i]);
44 | $dbq = $db->execute("insert into tblAdressbook values($max_item_id,$user_id,'".$list[$i-1]."','".$list[$i]."','','')");
45 | $max_item_id ++;
46 | }
47 | }
48 | $dbq->close();
49 | unlink($filename);
50 | Header("Location: addressbook.php?note=1");
51 | } else {
52 | Header("Location: addressbook.php?note=2");
53 | }
54 | ?>
55 |
--------------------------------------------------------------------------------
/includes/commonhead.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : commonhead.inc
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Purpose : Common tags used in all HTML files' head section
8 | Last modified : 28 Feb 2005
9 | */
10 |
11 | echo "\n";
12 | echo "\n";
13 | echo "$title \n";
14 | echo " \n";
15 | echo " \n";
16 | ?>
17 |
--------------------------------------------------------------------------------
/includes/finish_spell.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 | File name : finish_spell.php
5 | Version : 2.0.0
6 | Last Modified By : Pete Larsen
7 | e-mail : pete@postaciwebmail.org
8 | Last modified : 28 Feb 2005
9 | */
10 |
11 | if (trim($text) != "") {
12 | ltrim($text);
13 | $textarray= explode("\n",$text);
14 |
15 | $index= 1;
16 | $lastlineindex= 0;
17 | $poscorrect= 0;
18 |
19 | // look through list of positions and make corrections
20 | while (isset($_POST["position$index"])) {
21 | $positionarray= explode(",",$_POST["position$index"]);
22 | $lineindex= $positionarray[0];
23 | $absposition= $positionarray[1];
24 |
25 | if ($lastlineindex==$lineindex) {
26 | $position= $absposition+$poscorrect;
27 | }
28 | else {
29 | $poscorrect= 0;
30 | $position= $absposition;
31 | }
32 | $lastlineindex= $lineindex;
33 | $correct= $_POST["correct$index"];
34 | $incorrect= $_POST["incorrect$index"];
35 | //print "Found correction at $lineindex,$absposition. Replacing ";
36 |
37 | $before= substr($textarray[$lineindex],0,$position);
38 | $after= substr($textarray[$lineindex],$position+strlen($incorrect));
39 | $textarray[$lineindex]= $before.$correct.$after;
40 |
41 | $poscorrect= (strlen($correct)-strlen($incorrect))+$poscorrect;
42 | //print "Position correction is now $poscorrect. ";
43 | $index= $index+1;
44 | }
45 |
46 | //print "Original text: ";
47 | //print nl2br($text);
48 | //print " ";
49 |
50 | foreach ($textarray as $key=>$value) {
51 | $newtext.=$value;
52 | }
53 | }
54 | ?>
55 |
--------------------------------------------------------------------------------
/includes/functions.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/includes/functions.inc
--------------------------------------------------------------------------------
/includes/global.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : global.inc
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Purpose : Global configuration File for Postaci Webmail
8 | Last modified : 29 Sept 2006
9 | */
10 |
11 | // 1.
12 | // you should select the default language. version 1.1.1 defaults to English
13 | // Possible values : english, portugues, dutch, deutsch, italiano, turkce, espanol,
14 | // francais, norsk, polski
15 |
16 | $default_lang = "english";
17 |
18 | // 2.
19 | // Select the database engine. Possible values are postgresql, mysql, msql, sybase, mssql.
20 | // You can find the default sql queries in queries directory for mysql, postgresql and mssql
21 | // MS SQL support is under test please report any errors/improvements to
22 | // "Umut Gokbayrak"
23 |
24 | $database_type = "mysql";
25 |
26 | // 3.
27 | // Specify the hostname where database is located. It may be an IP number, hostname or dns name
28 | // You should grant usage to the webmail server(IP) and database user the select, insert, delete,
29 | // update permissions in order to install Postaci if the database server is a remote one.
30 | // See INSTALL file for details. If Postaci is on the database server no need to change this.
31 |
32 | $database_host = "localhost";
33 |
34 | // 4. The database name, username and password.
35 | // YOU REALLY NEED TO CHANGE THESE.
36 |
37 | $database_user = "";
38 | $database_user_pass = "";
39 | $database_name = "";
40 |
41 | // 5.
42 | // You should select which protocol to use. Postaci supports both IMAP and POP3 mailboxes.
43 | // Possible values : imap, pop3
44 |
45 | $default_protocol = "imap";
46 |
47 | // 6.
48 | // The POP3/IMAP servername, IP or DNS name. If Postaci is on the POP3/IMAP server, no need
49 | // to change this.
50 |
51 | $default_host = "localhost";
52 |
53 | // 7.
54 | // Default port for IMAP access is 143 and it is 110 for POP3. If yours is different simply
55 | // change this value. If you are not sure leave as default.
56 |
57 | $default_port = "143";
58 |
59 | // 8.
60 | // SMTP host information. Postaci can use another relay server for sending mail. If $smtp_host is
61 | // left as default value(localhost) things will go slightly faster. If you want to use another SMTP
62 | // server for sending e-mail you can use the IP, hostname or DNS name here.
63 | // If a remote server is defined here, Postaci will try to connect to the server via SMTP port and
64 | // try to deliver the mail. This is work in progress, so please report any success or failure.
65 | // SMTP servers normally reside on port 25. So you normally don' t need to change $smtp port value.
66 | // $smtp_auth - Does your smtp server require authentication? yes/no
67 | // $smtp_imap - If your smtp server does require a login, is it the same
68 | // username and password used for imap or pop3? yes/no
69 | // $smtp_same - If your smtp server does require a login, do you want everyone to use the same
70 | // username and password? yes/no If yes then you must set $smtp_user and $smtp_pass
71 |
72 | $smtp_host = "localhost";
73 | $smtp_port = "25";
74 | $smtp_auth = "no";
75 | $smtp_imap = "no";
76 | $smtp_same = "no";
77 | $smtp_user = '';
78 | $smtp_pass = '';
79 |
80 | // 9.
81 | // $attach_directory is the place where Postaci uploads the attachments to be sent for temporary
82 | // storage.
83 | // DO NOT FORGET THE TAILING SLASH!!!, YOU REALLY NEED TO CHANGE THIS.
84 |
85 | $attach_directory = "/tmp/postaci/send/";
86 |
87 | // 10.
88 | // postaci_directory is where the Postaci installation resides on your directory structure.
89 | // This varible is really important. If you do not set it you will get an empty screen.
90 | // DO NOT FORGET THE TAILING SLASH!!! YOU REALLY NEED TO CHANGE THIS
91 |
92 | $postaci_directory = "/val/www/postaci/";
93 |
94 | // 11.
95 | // Although Cyrus IMAP has some slight differences, Postaci seems to work with all IMAP servers.
96 | // In case you need it set this value to true and please report any incompatibilities.
97 |
98 | $cyrus_imap_server = false;
99 |
100 | // 12.
101 | // If you are using POP3 protocol, you should have a non-web accessable directory for
102 | // storing attachments. This directory' s permissions should be 700 and the owner should be nobody
103 | // (the user that runs the httpd). Although you don' t use POP3 this directory should lead to an
104 | // existing directory. (Ex : /tmp)
105 | // DO NOT FORGET THE TAILING SLASH!!!
106 |
107 | $pop3_attach_dir = "/tmp/postaci/store/";
108 |
109 | // 13.
110 | // You set the title here.
111 |
112 | $title = "Postaci Webmail";
113 |
114 | // 14.
115 | // Seperator is the value used for limiting the number of messages to be shown at each page.
116 | // NO NEED TO CHANGE THIS.
117 |
118 | // $seperator = 15;
119 |
120 | // 15.
121 | // Operating system. As from version 1.1.1, Postaci both supports Unix/Linux/BSD and Windows systems.
122 | // You can select you operating system here.
123 | // Possible values : windows, unix
124 |
125 | $operating_system = "unix";
126 |
127 | // 16.
128 | // This is the error value for PHP configuration. If you think you have found a bug or want to
129 | // contact the author, comment the following line with two slashes and e-mail the error/warning messages to
130 | // "Umut Gokbayrak "
131 |
132 | error_reporting(32);
133 |
134 | // 17.
135 | // Please enter your TEMP directory here. This directory is used for temprarily storing session files.
136 | // Windows port of PHP doesn't handle TEMP directories by itself so Windows users need to specify it here.
137 | // It can be any directory with appropriate permissions. Just uncomment it (delete two slashes) and assing
138 | // the correct value.
139 | // WINDOWS USERS NEED THIS.
140 |
141 | // $temp_directory = "c:\\temp";
142 | $temp_directory = "/tmp/postaci/";
143 |
144 | // 18.
145 | // If you want to remove that sponsored by... banner simply change this value to false.
146 |
147 | $show_sponsor = false;
148 |
149 | // 19.
150 | // Qmail users which store accounts and messages in databases require special login format. In order to avoid
151 | // this imcompatibility simply change this value to true.
152 |
153 | $qmail_support = false;
154 |
155 | // 20.
156 | // You can specify a footer text for every message outgoing from the server.
157 | // This field is optinal. If you need a new line in the text, use \n for the purpose.
158 |
159 | $footer_message = "";
160 |
161 | // 21.
162 | // To cope with courier-imap personal folders
163 |
164 | $courier_imap_support = false;
165 |
166 | // The following only are considered if courier-imap support is on
167 | // If php imap supports NAMESPACE server extension (RFC2342) this
168 | // could be configured automatically.
169 | // DO NOT FORGET THE TRAILING PERIOD
170 |
171 | $personal_namespace = "INBOX.";
172 |
173 | // 22.
174 | // Decide which language selections to show in the main page.
175 | // If any language is set to true a button will appear
176 | // on the intro screen which will let you use Postaci using that language settings.
177 | // Possible values : true and false
178 |
179 | $turkce_support = true;
180 | $english_support = true;
181 | $francais_support = true;
182 | $deutsch_support = true;
183 | $polski_support = true;
184 | $espanol_support = true;
185 | $portugues_support = true;
186 | $dutch_support = true;
187 | $norsk_support = true;
188 | $italiano_support = true;
189 |
190 | // 23.
191 | // Background Color for the top left corner.
192 | // The top and left sides are gif images. You can edit
193 | // those images and then change this color to match them.
194 |
195 | $bgc = "#273C79";
196 |
197 | // 24.
198 | // This text will appear at the bottom of each page.
199 |
200 | $footer = "Postaci WebMail ";
201 |
202 | // 25.
203 | // These variables change the background colors of the input fields in sendmail.php
204 | // $scolor is the color of the field that is selected
205 | // $nscolor is the color of the fields when they are not selected
206 |
207 | $scolor = "#FFFFFF";
208 | $nscolor = "#DFE7EE";
209 |
210 | // 26.
211 | // This variable enables the spellcheck feature.
212 | // true = on and false = off
213 | // To change the dictionary used, just change the $spell_language variable in the
214 | // translation file of the particular language you want to change.
215 | // All of the translation files are located in the lang directory.
216 |
217 | $spellcheck_on = true;
218 |
219 | /**************************************************************/
220 | /* No Need to change anything below. */
221 | /**************************************************************/
222 |
223 | $postaci_version = "2";
224 | if ($operating_system == "windows") {
225 | session_save_path($temp_directory);
226 | }
227 |
228 | $to_folder = "Sent Items";
229 |
230 | if (trim($l) != "" && trim($l) != '$lang_choice') {
231 | $lang_choice = $l;
232 | } else {
233 | if ($lang_choice == "") {
234 | $lang_choice = $default_lang;
235 | }
236 | }
237 |
238 | switch ($lang_choice) {
239 | case "portugues":
240 | case "dutch":
241 | case "deutsch":
242 | case "italiano":
243 | case "francais":
244 | case "norsk":
245 | case "turkce":
246 | case "espanol":
247 | case "polski":
248 | case "english":
249 | include("$postaci_directory" . "lang/" . "$lang_choice" . ".inc");
250 | break;
251 | default:
252 | die("Invalid language selection
");
253 | }
254 |
255 | include("$postaci_directory" . "classes/phpDB.inc");
256 |
257 | $db = new phpDB();
258 | $db->pconnect("$database_host", "$database_user", "$database_user_pass", "$database_name") or die ("$text75
");
259 | ?>
260 |
--------------------------------------------------------------------------------
/includes/headinside.inc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/includes/javascripts.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/includes/javascripts.inc
--------------------------------------------------------------------------------
/includes/spellcheck.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 | File name : spellcheck.php
5 | Version : 2.0.0
6 | Last Modified By : Pete Larsen
7 | e-mail : pete@postaciwebmail.org
8 | Last modified : 28 Feb 2005
9 | */
10 |
11 | $text = $msgbody;
12 |
13 | // if text+check is supplied, first open and create $temptext, then spell check
14 | if (trim($text) != "") {
15 |
16 | // HERE'S WHERE YOU MIGHT NEED TO CHANGE FILE PATHS, etc.
17 | //
18 | // set up some vars and create a tempfile
19 | // tempnam() is a PHP function that creates a unique tempfile in the specified path,
20 | // with the specified prefix
21 | $temptext= tempnam("/tmp", "spelltext");
22 |
23 | // if you spellcheck alot of HTML, add the -H flag to aspell to put it in SGML mode
24 | $aspellcommand= "cat $temptext | /usr/bin/aspell -a -d $spell_language";
25 |
26 | // these three determine how errors are flagged ($indicator is a description of what $opener and $closer do)
27 | $indicator= "bold";
28 | $opener= "";
29 | $closer= " ";
30 | //
31 | // END OF CONFIGURATION
32 |
33 |
34 | if ($fd=fopen($temptext,"w")) {
35 | $textarray= explode("\n",$text);
36 | fwrite($fd,"!\n");
37 | foreach($textarray as $key=>$value) {
38 | // adding the carat to each line prevents the use of aspell commands within the text...
39 | fwrite($fd,"^$value\n");
40 | }
41 | fclose($fd);
42 |
43 | // next create tempdict and temprepl (skipping for now...)
44 |
45 | // next run aspell
46 | $return= shell_exec($aspellcommand);
47 |
48 | // now unlink that tempfile
49 | $ureturn= unlink($temptext);
50 |
51 | //next parse $return and $text line by line, eh?
52 | $returnarray= explode("\n",$return);
53 | $returnlines= count($returnarray);
54 | $textlines= count($textarray);
55 |
56 | //print "text has $textlines lines and return has $returnlines lines.";
57 | $lineindex= -1;
58 | $poscorrect= 0;
59 | $counter= 0;
60 | foreach($returnarray as $key=>$value) {
61 | // if there is a correction here, processes it, else move the $textarray pointer to the next line
62 | if (substr($value,0,1)=="&") {
63 | //print "Line $lineindex correction:".$value." ";
64 | $correction= explode(" ",$value);
65 | $word= $correction[1];
66 | $absposition= substr($correction[3],0,-1)-1;
67 | $position= $absposition+$poscorrect;
68 | $niceposition= $lineindex.",".$absposition;
69 | $suggstart= strpos($value,":")+2;
70 | $suggestions= substr($value,$suggstart);
71 | $suggestionarray= explode(", ",$suggestions);
72 | //print "I found $word at $position. Will suggest $suggestions. ";
73 |
74 | // highlight in text
75 | $beforeword= substr($textarray[$lineindex],0,$position);
76 | $afterword= substr($textarray[$lineindex],$position+strlen($word));
77 | $textarray[$lineindex]= $beforeword."$opener$word$closer".$afterword;
78 |
79 | // kludge for multiple words in one line (" " adds 7 chars to subsequent positions, for instance)
80 | $poscorrect= $poscorrect+strlen("$opener$closer");
81 |
82 | // build the correction form
83 | $counter= $counter+1;
84 | $formbody.= "
85 | $word
86 |
87 |
88 |
89 |
90 | $word (as-is)
91 | ";
92 | foreach ($suggestionarray as $key=>$value) {
93 | $formbody.= "$value
94 | ";
95 | }
96 | $inputlen= strlen($word)+5;
97 | $formbody.= "custom:
98 |
99 |
100 |
101 | ";
102 | }
103 |
104 | elseif (substr($value,0,1)=="#") {
105 | //print "Line $lineindex unknown:".$value." ";
106 | $correction= explode(" ",$value);
107 | $word= $correction[1];
108 | $absposition= $correction[2] - 1;
109 | $position= $absposition+$poscorrect;
110 | $niceposition= $lineindex.",".$absposition;
111 | $suggestions= "no suggestions";
112 | $suggestionarray= explode(", ",$suggestions);
113 | //print "I found $word at $position. Will suggest $suggestions. ";
114 |
115 | // highlight in text
116 | $beforeword= substr($textarray[$lineindex],0,$position);
117 | $afterword= substr($textarray[$lineindex],$position+strlen($word));
118 | $textarray[$lineindex]= $beforeword."$opener$word$closer".$afterword;
119 |
120 | // kludge for multiple words in one line (" " adds 7 chars to subsequent positions)
121 | $poscorrect= $poscorrect+strlen("$opener$closer");
122 |
123 | // build the correction form
124 | $counter= $counter+1;
125 | $formbody.= "
126 | $word
127 |
128 |
129 |
130 |
131 | $word (as-is)
132 | ";
133 | $inputlen= strlen($word)+3;
134 | $formbody.= "custom:
135 |
136 |
137 |
138 | ";
139 | }
140 |
141 | else {
142 | //print "Done with line $lineindex, next line... ";
143 | $poscorrect=0;
144 | $lineindex= $lineindex+1;
145 | }
146 | }
147 | }
148 | print " $text110";
149 | foreach ($textarray as $key=>$value) {
150 | print stripslashes($value)." ";
151 | }
152 | print " ";
153 |
154 | $htmltext= htmlentities($text);
155 | if ($formbody=="") {
156 | $formbody= " $text115 ";
157 | $button = $text114;
158 | } else { $button = $text112; }
159 | print "$text111
160 | ";
174 |
175 | }
176 |
177 | // or if text+correct is specified, make the indicated corrections
178 | elseif (trim($text)!="" && $_POST['submit']=="correct") {
179 | $textarray= explode("\n",$text);
180 |
181 | $index= 1;
182 | $lastlineindex= 0;
183 | $poscorrect= 0;
184 |
185 | // look through list of positions and make corrections
186 | while (isset($_POST["position$index"])) {
187 | $positionarray= explode(",",$_POST["position$index"]);
188 | $lineindex= $positionarray[0];
189 | $absposition= $positionarray[1];
190 |
191 | if ($lastlineindex==$lineindex) {
192 | $position= $absposition+$poscorrect;
193 | }
194 | else {
195 | $poscorrect= 0;
196 | $position= $absposition;
197 | }
198 | $lastlineindex= $lineindex;
199 | $correct= $_POST["correct$index"];
200 | $incorrect= $_POST["incorrect$index"];
201 | //print "Found correction at $lineindex,$absposition. Replacing ";
202 |
203 | $before= substr($textarray[$lineindex],0,$position);
204 | $after= substr($textarray[$lineindex],$position+strlen($incorrect));
205 | $textarray[$lineindex]= $before.$correct.$after;
206 |
207 | $poscorrect= (strlen($correct)-strlen($incorrect))+$poscorrect;
208 | //print "Position correction is now $poscorrect. ";
209 | $index= $index+1;
210 | }
211 |
212 | foreach ($textarray as $key=>$value) {
213 | $newtext.=$value;
214 | }
215 | print "
216 | ";
221 | }
222 | ?>
223 |
--------------------------------------------------------------------------------
/includes/stylesheets.inc:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : index.php
4 | Version : 2.0.0
5 | Last Modified By : Pete Larsen
6 | e-mail : pete@postaciwebmail.org
7 | Purpose : The welcome screeen for Postaci Webmail
8 | Last modified : 28 Feb 2005
9 | */
10 |
11 | session_start();
12 | session_unregister('ID');
13 | session_unregister('txtusername');
14 | session_unregister('password');
15 | session_unregister('seperator');
16 |
17 | include ("includes/global.inc");
18 | include ("$postaci_directory" . "includes/commonhead.inc");
19 | include ("$postaci_directory" . "includes/stylesheets.inc");
20 | include ("$postaci_directory" . "includes/javascripts.inc");
21 |
22 | //session_start();
23 | session_register('lang_choice');
24 | ?>
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 | " width="393" height="111" alt=" echo $text82; ?>">
123 |
124 | switch ($error_id) {
125 | case 1:
126 | echo "$text5 ";
127 | break;
128 | case 2:
129 | echo "$text9 ";
130 | break;
131 | case 3:
132 | echo "$text89 ";
133 | break;
134 | default:
135 | echo " ";
136 | }
137 | ?>
138 |
139 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
--------------------------------------------------------------------------------
/lang/deutsch.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/deutsch.inc
--------------------------------------------------------------------------------
/lang/dutch.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/dutch.inc
--------------------------------------------------------------------------------
/lang/english.inc:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : english.inc
4 | Version : 1.1.1
5 | Last Modified By : Umut Gokbayrak
6 | e-mail : umut@trlinux.com
7 | Purpose : English localization support for Postaci Webmail.
8 | Last modified : 31 Oct 2000
9 | */
10 |
11 | $lang_id = 2;
12 | $lang = 'English';
13 | $charset = 'iso-8859-1';
14 | $spell_language = "en";
15 |
16 | /*************************************************/
17 | /* User Panel */
18 | /*************************************************/
19 |
20 | $text1 = 'Please enter your username and password';
21 | $text2 = 'User Name';
22 | $text3 = 'Password';
23 | $text4 = 'Log In';
24 | $text5 = 'Invalid username or password. Try Again';
25 | $text6 = 'INBOX';
26 | $text7 = 'Sent Items';
27 | $text8 = 'Drafts';
28 | $text9 = 'Unknown Error!';
29 | $text10 = 'select all';
30 | $text11 = 'deselect all';
31 | $text12 = 'From';
32 | $text13 = 'Subject';
33 | $text14 = 'Date';
34 | $text15 = 'Size';
35 | $text16 = 'Move Selected Messages To';
36 | $text17 = ' ';
37 | $text18 = 'OK';
38 | $text19 = 'Total Message Count';
39 | $text20 = 'e-mail';
40 | $text21 = 'notebook';
41 | $text22 = 'address book';
42 | $text23 = 'favorites';
43 | $text24 = 'No Messages In This Folder';
44 | $text25 = 'New Message';
45 | $text26 = 'Check New Mail';
46 | $text27 = 'Folders';
47 | $text28 = 'Preferences';
48 | $text29 = 'Log Out';
49 | $text30 = 'previous message';
50 | $text31 = 'next message';
51 | $text32 = 'To';
52 | $text33 = 'Attachments';
53 | $text34 = 'Reply Message';
54 | $text35 = 'Forward Message';
55 | $text36 = 'Save Message';
56 | $text37 = 'Print Message';
57 | $text38 = 'Move This Message To';
58 | $text39 = 'Message No: ';
59 | $text40 = 'No Subject';
60 | $text41 = 'Attach File';
61 | $text42 = 'Reset';
62 | $text43 = 'Send Message';
63 | $text44 = 'Add To List';
64 | $text45 = 'Waiting Attachments';
65 | $text46 = 'Delete Attachment';
66 | $text47 = 'Go Back';
67 | $text48 = 'Empty Trash';
68 | $text49 = 'Original Message';
69 | $text50 = 'Folder Name';
70 | $text51 = 'Delete Folder';
71 | $text52 = 'Rename Folder';
72 | $text53 = "OK";
73 | $text54 = "Create New Folder";
74 | $text55 = "New Folder Name";
75 | $text56 = "Topic";
76 | $text57 = "Delete";
77 | $text58 = "You Have No Notes";
78 | $text59 = "Total Note Count";
79 | $text60 = "Add Note";
80 | $text61 = "Name";
81 | $text62 = "Telephone Number";
82 | $text63 = "You Have No Contacts Recorded";
83 | $text64 = "Add New Contact";
84 | $text65 = "Add";
85 | $text66 = "Notes";
86 | $text67 = "Save";
87 | $text68 = "Site Title";
88 | $text69 = "Site URL";
89 | $text70 = "You Have No Bookmarks Recorded";
90 | $text71 = "Add New Site";
91 | $text72 = "Please edit global.inc to select the database type";
92 | $text73 = "Invalid database selection. Valid values : msql, mysql, postgresql, sybase, mssql";
93 | $text74 = "Invalid language selection. Valid values : turkce, english";
94 | $text75 = "Can not connect to database. Check includes/global.inc for database settings.";
95 | $text76 = "About Postaci";
96 | $text77 = "Authors";
97 | $text78 = "sponsored by";
98 | $text79 = "This software requires that cookies are enabled. Please enable cookies on your browser setting or check if you are behind a firewall or proxy that does not let cookies. Do not worry, it is a simple unique ID we want to transfer.";
99 | $text80 = "You have an error in includes/global.inc : default_protocol setting. Correct the mistake and try again";
100 | $text81 = "Spam Control";
101 | $text82 = "Welcome to Postaci";
102 | $text83 = "Block Sender(s)";
103 | $text84 = "Postaci is a free software which is licensed by GPL. To learn more about free software, see gnu.org ";
104 | $text85 = "Delete Message";
105 | $text86 = "Add to addressbook";
106 | $text87 = "Add Sender To Spam List";
107 | $text88 = "Message body empty";
108 | $text89 = "The mailbox you try to access does not exist. Please try logging in again, if the problem exists contact your system administrator.";
109 | $text90 = "You have exceeded 2 MB file quota or an error has occured.";
110 | $text91 = "Problem with the SMTP host. Please contact the system administrator.";
111 | $text92 = "Error : There exists a folder with the same name or mailbox not empty.";
112 | $text93 = "Error : Folder name cannot be empty!!!";
113 | $text94 = "Error : Folder is not empty.";
114 | $text95 = "Error : A folder with the same name exists.";
115 | $text96 = "User succesfully added to the adressbook.";
116 | $text97 = "Spammer e-mail";
117 | $text98 = "Date added to list";
118 | $text99 = "Nobody in the list";
119 | $text100 = "Your Name and Surname";
120 | $text101 = "Your Signature";
121 | $text102 = "Invalid email address. Try Again.";
122 | $text103 = "Clean Email";
123 | $text104 = "Display";
124 | $text105 = "emails per page.";
125 | $text106 = "Click on an address to add to the selected field.";
126 | $text107 = "Enable";
127 | $text108 = "There isn't anything to check.";
128 | $text109 = "Spell Check";
129 | $text110 = "Original Text (potential errors in bold ):";
130 | $text111 = "Corrections:";
131 | $text112 = "Correct";
132 | $text113 = "Reset";
133 | $text114 = "Continue";
134 | $text115 = "No errors.";
135 | $text116 = "Import Outlook Express Address Book (Comma Separated Values Format)";
136 | $text117 = "Address Book Import Was Successful!";
137 | $text118 = "Address Book Import Was Not Successful!";
138 | $text119 = "Instructions";
139 | $text120 = "Import";
140 |
141 | ?>
142 |
--------------------------------------------------------------------------------
/lang/espanol.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/espanol.inc
--------------------------------------------------------------------------------
/lang/francais.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/francais.inc
--------------------------------------------------------------------------------
/lang/italiano.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/italiano.inc
--------------------------------------------------------------------------------
/lang/norsk.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/norsk.inc
--------------------------------------------------------------------------------
/lang/polski.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/polski.inc
--------------------------------------------------------------------------------
/lang/portugues.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/portugues.inc
--------------------------------------------------------------------------------
/lang/turkce.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/lang/turkce.inc
--------------------------------------------------------------------------------
/message_move.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Postaci-Webmail/Postaci/fff83d022087280e6fdad404f3289ce95838331d/message_move.php
--------------------------------------------------------------------------------
/notebook.php:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | File name : mailbox.php
4 | Version : 1.1.3
5 | Last Modified By : Umut Gokbayrak
6 | e-mail : umut@trlinux.com
7 | Purpose : NOTEBOOK
8 | Last modified : 07 Nov 2000
9 | */
10 |
11 | session_start();
12 | include ("includes/global.inc");
13 |
14 | // ID comparison between logged hash and session. If they are both the same, let the user to go on...
15 | $dbq = $db->execute("select log_id from tblLoggedUsers where hash = '$ID'");
16 | $log_id = $dbq->fields['log_id'];
17 | $dbq->close();
18 | if ($log_id == ""){
19 |
20 | Header("Location: index.php?error_id=1");
21 | } else {
22 |
23 | function mychop($thistring,$length) {
24 | $result="";
25 | $mystring=trim($thistring);
26 | if (strlen($mystring)>$length) {
27 | $result=substr($mystring,0,$length);
28 | $result = "$result...";
29 | }else {
30 | $result=$mystring;
31 | }
32 |
33 | return($result);
34 | }
35 |
36 | $mbox_id = rawurldecode($mbox_id);
37 |
38 | include ("$postaci_directory" . "classes/imap_pop3.inc");
39 |
40 | // Check to see if the mbox_id is a valid one.
41 | $dbq = $db->execute("select user_id,username from tblLoggedUsers where hash='$ID'");
42 | $username = $dbq->fields['username'];
43 | $user_id = $dbq->fields['user_id'];
44 | $dbq->close();
45 |
46 | $email=new imap_pop3($default_port,$default_protocol,$default_host,$username,$password,$mbox_id);
47 |
48 | include ("$postaci_directory" . "includes/commonhead.inc");
49 | include ("$postaci_directory" . "includes/stylesheets.inc");
50 | include ("$postaci_directory" . "includes/javascripts.inc");
51 | include ("$postaci_directory" . "includes/functions.inc");
52 |
53 | ?>
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
161 |
162 |
163 |
164 |
165 | include ($postaci_directory . "includes/headinside.inc"); ?>
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 | $mailadress = getMailAdress($user_id);
176 | ?>
177 | echo htmlspecialchars($mailadress) . " - " . $text21; ?>
178 |
179 |
180 |
181 |
182 | echo " \n";
183 | echo " \n";
184 | echo " $text56 \n";
185 | echo " $text14 \n";
186 | echo " \n";
187 | echo " \n";
188 |
189 | $dbq = $db->execute("select note_id from tblNotebook where user_id = $user_id");
190 | $notecount = $dbq->getNumOfRows();
191 | $dbq->close();
192 |
193 |
194 | if ($notecount == 0) {
195 | echo " \n";
196 | echo " \n";
197 | echo " \n";
198 | } else {
199 | $dbq = $db->execute("select * from tblNotebook where user_id = $user_id order by note_id desc");
200 | while (!$dbq->EOF) {
201 | $note_id = $dbq->fields['note_id'];
202 | $notetitle = stripslashes($dbq->fields['notetitle']);
203 | $note_date = $dbq->fields['note_date'];
204 |
205 | echo " \n";
206 | echo " $notetitle \n";
207 | echo " $note_date \n";
208 | echo " $text57 \n";
209 | echo " \n";
210 |
211 | $dbq->nextRow();
212 | }
213 | $dbq->close();
214 | }
215 |
216 | echo "
\n";
217 | ?>
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 | echo $text60; ?>
226 |
227 |
228 |
229 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 | echo $footer; ?>
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |