[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