[cvs] [Wiki] changed: SorkVacationWithVpopmail

Chuck Hagenbuch chuck at horde.org
Fri Jun 22 19:06:59 UTC 2007


chuck  Fri, 22 Jun 2007 12:06:59 -0700

Modified page: http://wiki.horde.org/SorkVacationWithVpopmail
New Revision:  1.4
Change log:  files are now attached to the page

@@ -8,25 +8,24 @@
 * vacation version: 3.0

 These changes will make sork vacations compatible with qmailadmin vacation
changes.  So you can modify your vacation message from either location.

-Like the original Qmail Driver, It still uses ftp to put the data into the
user's 'home' directory. Personally, I use Pureftp it will do SQL auths and
grab the home dir from SQL, you can also specify a uid (89 is usually
vpopmail), and set the users chroot.   All your users will have ftp access
to their Maildir with the own vpopmail username/password. I would suggest
only binding Pureftp to 127.0.0.1 if you don't want your users to do that
externally.
+Like the original Qmail driver, It still uses ftp to put the data into the
user's 'home' directory. Personally, I use Pureftp it will do SQL auths and
grab the home dir from SQL, you can also specify a uid (89 is usually
vpopmail), and set the users chroot.   All your users will have ftp access
to their Maildir with the own vpopmail username/password. I would suggest
only binding Pureftp to 127.0.0.1 if you don't want your users to do that
externally.

-First, get the vpopmailsql.php Driver, place into vacation/lib/Driver/
directory. Currently, it's located: 
http://www.havokmon.com/stuff/horde/vacation/vpopmailsql.php.txt
-This file will do all the heavy lifting, but you will need to make a couple
changes to it. Change the vpopmail/vpoppass to be your Vpopmail !MySQL
username password. Ultimately this driver should include  the code from
sql.php driver to connect to the database, and your username/password will
be in {{conf.php}}.
+First, get the vpopmailsql.php driver (attached to this page), and place it
in vacation/lib/Driver/. This file will do all the heavy lifting, but you
will need to make a couple of changes to it. Change the vpopmail/vpoppass
to be your Vpopmail !MySQL username password. Ultimately this driver should
include  the code from sql.php driver to connect to the database, and your
username/password will be in {{conf.php}}.

 <code type="php">
-        if (!empty($alias)) {
-            $alias = $this->_makeEmailAddress($alias, $realm);
-            if ($alias === false) {
-                return false;
-            }
-        }
+if (!empty($alias)) {
+    $alias = $this->_makeEmailAddress($alias, $realm);
+    if ($alias === false) {
+        return false;
+    }
+}

-        $link = mysql_connect('localhost', 'vpopmail', 'vpoppass');
-        if (!$link) {
-                die('Could not connect: ' . mysql_error());
-        }
+$link = mysql_connect('localhost', 'vpopmail', 'vpoppass');
+if (!$link) {
+    die('Could not connect: ' . mysql_error());
+}
 </code>

 Next, add the following to conf.php:
 <code type="php">
@@ -48,62 +47,5 @@
 Text
 <newline>
 </code>

-Finally, apply the following diff to main.php v1.55. This will fix the
display of the existing vacation notice, and properly submit a new one.
-
-Diff is also here:
-http://www.havokmon.com/stuff/horde/vacation/main155.diff
-
-<code>
---- main.php    Thu May 31 09:32:42 2007
-+++ mainold.php Fri Jun 22 07:42:45 2007
-@@ -70,11 +70,10 @@
-             }
-         }
-         $vacationmsg = Util::getFormData('mess', false);
-+
-         // Include the mail subject if the driver supports it.
--        $my_email = Auth::getAuth();
--        if ($conf['vacation']['subject']) {
--            $vacationtxt = 'From: ' . $my_email . "\n";
--            $vacationtxt .= 'Subject: ' . Util::getFormData('subject') .
"\n\n" . $vacationmsg;
-+        if ($conf['vacation']['subject']) {
-+            $vacationtxt = 'Subject: ' . Util::getFormData('subject') .
"\n" . $vacationmsg;
-         } else {
-             $vacationtxt = $vacationmsg;
-         }
-@@ -124,11 +123,11 @@
- $onVacation = false;
- if ($status == 'Y') {
-     $curmessage = $driver->currentMessage($user, $realm, $pass);
--    $notification->push(_("Your vacation notice is currently enabled."),
'horde.success');
-+    $notification->push(_("Your vacation notice is currently enabled."),
'horde.message');
-     $onVacation = true;
- } elseif ($status == 'N') {
-     $curmessage = $driver->currentMessage($user, $realm, $pass);
--    $notification->push(_("Your vacation notice is currently disabled."),
'horde.warning');
-+    $notification->push(_("Your vacation notice is currently disabled."),
'horde.message');
- } else {
-     // If the driver can't tell the difference between "disabled" and
-     // "unknown", be inscrutable.
-@@ -142,19 +141,11 @@
-     if (preg_match('/^Subject: ([^\n]+)\n(.+)$/s', $curmessage, $matches))
{
-         $cursubject = $matches[1];
-         $curmessage = $matches[2];
--
-     } else {
-         $cursubject = '';
-     }
- }
-
--if ($cursubject == ""){
--    if (empty($cursubject)){
--       
list($curFrom,$cursubject,$curmessage)=split("[\n]",$curmessage,3);
--    }
--    list($subheader,$cursubject)=split(":",$cursubject,2);
--}
--
- $alias = Util::getFormData('alias');
- if (is_null($alias)) {
-     $aliases = &Vacation_AliasDriver::singleton();
-</code>
+Download {{main155.diff}} from this page's attachment list and apply the
patch to main.php (revision 1.55 from CVS). This will fix the display of
the existing vacation notice, and properly submit a new one.


More information about the cvs mailing list