Alternc  3.2
Alternc logiel libre pour l'hébergement
 All Data Structures Namespaces Files Functions Variables Pages
m_squirrelmail.php
Go to the documentation of this file.
1 <?php
2 /*
3  ----------------------------------------------------------------------
4  AlternC - Web Hosting System
5  Copyright (C) 2000-2012 by the AlternC Development Team.
6  https://alternc.org/
7  ----------------------------------------------------------------------
8  LICENSE
9 
10  This program is free software; you can redistribute it and/or
11  modify it under the terms of the GNU General Public License (GPL)
12  as published by the Free Software Foundation; either version 2
13  of the License, or (at your option) any later version.
14 
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  To read the license please visit http://www.gnu.org/copyleft/gpl.html
21  ----------------------------------------------------------------------
22  Purpose of file: Manage Squirrelmail webmail configuration
23  ----------------------------------------------------------------------
24 */
25 
26 /**
27 * This class handle squirrelmail's webmail
28 * hook the main panel page to add a link to the webmail
29 */
31 
32  /* ----------------------------------------------------------------- */
33  /** Hook called by the homepage or the /webmail link
34  * to redirect the user to a known webmail url.
35  * the variable 'webmail_redirect' tells which webmail has the priority.
36  * @return string the URL of the webmail
37  */
38  function hook_admin_webmail() {
39  global $db;
40  // Search for the domain where the panel is hosted, then search for a webmail in it.
41  $i=2;
42  $domain="";
43  if (!empty($_SERVER["HTTP_HOST"])) {
44  do { // for each domain part (search panel.alternc.org then alternc.org then org, if the current panel is at www.panel.alternc.org)
45  $expl=explode(".",$_SERVER["HTTP_HOST"],$i);
46  if (count($expl)>=2) {
47  list($host,$dompart)=$expl;
48  // We search for a 'squirrelmail' subdomain in that domain
49  $db->query("SELECT * FROM sub_domaines s WHERE s.domaine='".addslashes($dompart)."' AND s.type='squirrelmail';");
50  if ($db->next_record()) {
51  $domain=$db->Record;
52  return "http://".$domain["sub"].(($domain["sub"])?".":"").$domain["domaine"];
53  }
54  }
55  $i++;
56  } while (strpos($dompart,'.')!==false);
57  }
58 
59  // not found: search for a webmail in the admin user account
60  $db->query("SELECT * FROM sub_domaines s WHERE s.compte=2000 AND s.type='squirrelmail';");
61  if ($db->next_record()) {
62  $domain=$db->Record;
63  return "http://".$domain["sub"].(($domain["sub"])?".":"").$domain["domaine"];
64  }
65 
66  }
67 
68 
69  /* ----------------------------------------------------------------- */
70  /** Hook called when an email is REALLY deleted (by the cron, not just in the panel)
71  * @param mail_id integer the ID of the mail in the AlternC database
72  * @param fullmail string the deleted mail himself in the form of john@domain.tld
73  * @return boolean
74  */
75  function hook_mail_delete_for_real($mail_id, $fullmail) {
76  $fullmail2 = str_replace('@','_',$fullmail); // fullname with _ instead of @ (compatibility)
77  $todel = array (
78  "$fullmail.abook",
79  "$fullmail.pref",
80  "$fullmail2.abook",
81  "$fullmail2.pref");
82 
83  foreach ( $todel as $t ) {
84  if (file_exists("/var/lib/squirrelmail/data/$t") ) {
85  @unlink("/var/lib/squirrelmail/data/$t");
86  }
87  }
88  } // hook_mail_delete_for_real
89 
90 
91 
92 } /* Class Squirrelmail */
93