From a80c076d8f515fd32eb31a797eb7c9558d48574b Mon Sep 17 00:00:00 2001 From: jkaberg Date: Mon, 11 Aug 2014 19:42:52 +0200 Subject: [PATCH] safe apphroach, sid dosnt like special characters like % --- conf/zpush/backend_caldav.php | 66 ++++++++ conf/zpush/backend_carddav.php | 108 +++++++++++++ .../backend_combined.php} | 0 conf/zpush/backend_imap.php | 145 ++++++++++++++++++ setup/zpush.sh | 22 +-- 5 files changed, 327 insertions(+), 14 deletions(-) create mode 100644 conf/zpush/backend_caldav.php create mode 100644 conf/zpush/backend_carddav.php rename conf/{zpush_backend_combined.php => zpush/backend_combined.php} (100%) create mode 100644 conf/zpush/backend_imap.php diff --git a/conf/zpush/backend_caldav.php b/conf/zpush/backend_caldav.php new file mode 100644 index 0000000..4170fed --- /dev/null +++ b/conf/zpush/backend_caldav.php @@ -0,0 +1,66 @@ +. +* +* Consult LICENSE file for details +************************************************/ + +// ************************ +// BackendCalDAV settings +// ************************ + +// Server address +define('CALDAV_SERVER', 'https://localhost'); + +// Port +define('CALDAV_PORT', '443'); + +// Path +define('CALDAV_PATH', '/remote.php/caldav/calendars/%u/'); + +// Personal CalDAV folder (calendar folder/principal) +define('CALDAV_PERSONAL', ''); + +// If the CalDAV server supports the sync-collection operation +// DAViCal and SOGo support it +// Setting this to false will work with most servers, but it will be slower +define('CALDAV_SUPPORTS_SYNC', false); + + +?> \ No newline at end of file diff --git a/conf/zpush/backend_carddav.php b/conf/zpush/backend_carddav.php new file mode 100644 index 0000000..0e91f2a --- /dev/null +++ b/conf/zpush/backend_carddav.php @@ -0,0 +1,108 @@ +. +* +* Consult LICENSE file for details +************************************************/ + +// ************************ +// BackendCardDAV settings +// ************************ + +// Server protocol: http or https +define('CARDDAV_PROTOCOL', 'https'); + +// Server name +define('CARDDAV_SERVER', 'localhost'); + +// Server port +define('CARDDAV_PORT', '443'); + +// Server path to the addressbook, or the principal with the addressbooks +// If your user has more than 1 addressbook point it to the principal. +// Example: user test@domain.com will have 2 addressbooks +// http://localhost/caldav.php/test@domain.com/addresses/personal +// http://localhost/caldav.php/test@domain.com/addresses/work +// You set the CARDDAV_PATH to '/caldav.php/%u/addresses/' and personal and work will be autodiscovered +// %u: replaced with the username +// %d: replaced with the domain +// Add the trailing / +define('CARDDAV_PATH', '/remote.php/carddav/addressbooks/%u/'); + + +// Server path to the default addressbook +// Mobile device will create new contacts here. It must be under CARDDAV_PATH +// %u: replaced with the username +// %d: replaced with the domain +// Add the trailing / +define('CARDDAV_DEFAULT_PATH', '/remote.php/carddav/addressbooks/%u/contacts/'); + +// Server path to the GAL addressbook. This addressbook is readonly and searchable by the user, but it will NOT be synced. +// If you don't want GAL, comment it +// %u: replaced with the username +// %d: replaced with the domain +// Add the trailing / +define('CARDDAV_GAL_PATH', '/caldav.php/%d/GAL/'); + +// Minimal length for the search pattern to do the real search. +define('CARDDAV_GAL_MIN_LENGTH', 5); + +// Addressbook display name, the name showed in the mobile device +// %u: replaced with the username +// %d: replaced with the domain +define('CARDDAV_CONTACTS_FOLDER_NAME', '%u Addressbook'); + + +// If the CardDAV server supports the sync-collection operation +// DAViCal supports it, but SabreDav, Owncloud, SOGo don't +// Setting this to false will work with most servers, but it will be slower: 1 petition for the href of vcards, and 1 petition for each vcard +define('CARDDAV_SUPPORTS_SYNC', false); + + +// If the CardDAV server supports the FN attribute for searches +// DAViCal supports it, but SabreDav, Owncloud and SOGo don't +// Setting this to true will search by FN. If false will search by sn, givenName and email +// It's safe to leave it as false +define('CARDDAV_SUPPORTS_FN_SEARCH', false); + + +// If your carddav server needs to use file extension to recover a vcard. +// Davical needs it +// SOGo official demo online needs it, but some SOGo installation don't need it, so test it +define('CARDDAV_URL_VCARD_EXTENSION', '.vcf'); \ No newline at end of file diff --git a/conf/zpush_backend_combined.php b/conf/zpush/backend_combined.php similarity index 100% rename from conf/zpush_backend_combined.php rename to conf/zpush/backend_combined.php diff --git a/conf/zpush/backend_imap.php b/conf/zpush/backend_imap.php new file mode 100644 index 0000000..3d5743b --- /dev/null +++ b/conf/zpush/backend_imap.php @@ -0,0 +1,145 @@ +. +* +* Consult LICENSE file for details +************************************************/ + +// ************************ +// BackendIMAP settings +// ************************ + +// Defines the server to which we want to connect +define('IMAP_SERVER', 'localhost'); + +// connecting to default port (143) +define('IMAP_PORT', 993); + +// best cross-platform compatibility (see http://php.net/imap_open for options) +define('IMAP_OPTIONS', '/ssl/norsh/novalidate-cert'); + +// overwrite the "from" header with some value +// options: +// '' - do nothing, use the From header +// 'username' - the username will be set (usefull if your login is equal to your emailaddress) +// 'domain' - the value of the "domain" field is used +// 'sql' - the username will be the result of a sql query. REMEMBER TO INSTALL PHP-PDO AND PHP-DATABASE +// 'ldap' - the username will be the result of a ldap query. REMEMBER TO INSTALL PHP-LDAP!! +// '@mydomain.com' - the username is used and the given string will be appended +define('IMAP_DEFAULTFROM', ''); + +// DSN: formatted PDO connection string +// mysql:host=xxx;port=xxx;dbname=xxx +// USER: username to DB +// PASSWORD: password to DB +// OPTIONS: array with options needed +// QUERY: query to execute +// FIELDS: columns in the query +// FROM: string that will be the from, replacing the column names with the values +define('IMAP_FROM_SQL_DSN', ''); +define('IMAP_FROM_SQL_USER', ''); +define('IMAP_FROM_SQL_PASSWORD', ''); +define('IMAP_FROM_SQL_OPTIONS', serialize(array(PDO::ATTR_PERSISTENT => true))); +define('IMAP_FROM_SQL_QUERY', "select first_name, last_name, mail_address from users where mail_address = '#username@#domain'"); +define('IMAP_FROM_SQL_FIELDS', serialize(array('first_name', 'last_name', 'mail_address'))); +define('IMAP_FROM_SQL_FROM', '#first_name #last_name <#mail_address>'); + +// SERVER: ldap server +// SERVER_PORT: ldap port +// USER: dn to use for connecting +// PASSWORD: password +// QUERY: query to execute +// FIELDS: columns in the query +// FROM: string that will be the from, replacing the field names with the values +define('IMAP_FROM_LDAP_SERVER', 'localhost'); +define('IMAP_FROM_LDAP_SERVER_PORT', '389'); +define('IMAP_FROM_LDAP_USER', 'cn=zpush,ou=servers,dc=zpush,dc=org'); +define('IMAP_FROM_LDAP_PASSWORD', 'password'); +define('IMAP_FROM_LDAP_BASE', 'dc=zpush,dc=org'); +define('IMAP_FROM_LDAP_QUERY', '(mail=#username@#domain)'); +define('IMAP_FROM_LDAP_FIELDS', serialize(array('givenname', 'sn', 'mail'))); +define('IMAP_FROM_LDAP_FROM', '#givenname #sn <#mail>'); + + +// copy outgoing mail to this folder. If not set z-push will try the default folders +define('IMAP_SENTFOLDER', ''); + +// forward messages inline (default true - inlined) +define('IMAP_INLINE_FORWARD', true); + +// list of folders we want to exclude from sync. Names, or part of it, separated by | +// example: dovecot.sieve|archive|spam +define('IMAP_EXCLUDED_FOLDERS', ''); + + +// Method used for sending mail +// mail => mail() php function +// sendmail => sendmail executable +// smtp => direct connection against SMTP +define('IMAP_SMTP_METHOD', 'mail'); + +global $imap_smtp_params; +// SMTP Parameters +// mail : no params +$imap_smtp_params = array(); +// sendmail +//$imap_smtp_params = array('sendmail_path' => '/usr/bin/sendmail', 'sendmail_args' => '-i'); +// smtp +// "host" - The server to connect. Default is localhost. +// "port" - The port to connect. Default is 25. +// "auth" - Whether or not to use SMTP authentication. Default is FALSE. +// "username" - The username to use for SMTP authentication. "imap_username" for using the same username as the imap server +// "password" - The password to use for SMTP authentication. "imap_password" for using the same password as the imap server +// "localhost" - The value to give when sending EHLO or HELO. Default is localhost +// "timeout" - The SMTP connection timeout. Default is NULL (no timeout). +// "verp" - Whether to use VERP or not. Default is FALSE. +// "debug" - Whether to enable SMTP debug mode or not. Default is FALSE. +// "persist" - Indicates whether or not the SMTP connection should persist over multiple calls to the send() method. +// "pipelining" - Indicates whether or not the SMTP commands pipelining should be used. +//$imap_smtp_params = array('host' => 'localhost', 'port' => 25, 'auth' => false); +// If you want to use SSL with port 25 or port 465 you must preppend "ssl://" before the hostname or IP of your SMTP server +// IMPORTANT: To use SSL you must use PHP 5.1 or later, install openssl libs and use ssl:// within the host variable +//$imap_smtp_params = array('host' => 'ssl://localhost', 'port' => 465, 'auth' => true, 'username' => 'imap_username', 'password' => 'imap_password'); + + +// If you are using IMAP_SMTP_METHOD = mail or sendmail and your sent messages are not correctly displayed you can change this to "\n". +// BUT, it doesn't with RFC 2822 and will break if using smp method +define('MAIL_MIMEPART_CRLF', "\r\n"); + +?> \ No newline at end of file diff --git a/setup/zpush.sh b/setup/zpush.sh index 0393ac3..3ec36b1 100755 --- a/setup/zpush.sh +++ b/setup/zpush.sh @@ -35,25 +35,19 @@ sed -i "s/define('BACKEND_PROVIDER', .*/define('BACKEND_PROVIDER', 'BackendCombi # Configure BACKEND rm -f /usr/local/lib/z-push/backend/combined/config.php -cp conf/zpush_backend_combined.php /usr/local/lib/z-push/backend/combined/config.php +cp conf/zpush/backend_combined.php /usr/local/lib/z-push/backend/combined/config.php -# Configure IMAP. Tell is to connect to email via IMAP using SSL. Since we connect on -# localhost, the certificate won't match (it may be self-signed and invalid anyway) -# so don't check the cert. -sed -i "s/define('IMAP_SERVER', .*/define('IMAP_SERVER', 'localhost');/" /usr/local/lib/z-push/backend/imap/config.php -sed -i "s/define('IMAP_PORT', .*/define('IMAP_PORT', 993);/" /usr/local/lib/z-push/backend/imap/config.php -sed -i "s/define('IMAP_OPTIONS', .*/define('IMAP_OPTIONS', '\/ssl\/norsh\/novalidate-cert');/" /usr/local/lib/z-push/backend/imap/config.php +# Configure IMAP +rm -f /usr/local/lib/z-push/backend/imap/config.php +cp conf/zpush/backend_imap.php /usr/local/lib/z-push/backend/imap/config.php # Configure CardDav -sed -i "s/define('CARDDAV_PROTOCOL', .*/define('CARDDAV_PROTOCOL', 'https');/" /usr/local/lib/z-push/backend/carddav/config.php -sed -i "s/define('CARDDAV_SERVER', .*/define('CARDDAV_SERVER', 'localhost');/" /usr/local/lib/z-push/backend/carddav/config.php -sed -i "s/define('CARDDAV_PORT', .*/define('CARDDAV_PORT', '443');/" /usr/local/lib/z-push/backend/carddav/config.php -sed -i "s/define('CARDDAV_PATH', .*/define('CARDDAV_PATH', '/owncloud/remote.php/carddav/addressbooks/%u/');/" /usr/local/lib/z-push/backend/carddav/config.php +rm -f /usr/local/lib/z-push/backend/carddav/config.php +cp conf/zpush/backend_carddav.php /usr/local/lib/z-push/backend/carddav/config.php # Configure CalDav -sed -i "s/define('CALDAV_SERVER', .*/define('CALDAV_SERVER', 'https://localhost');/" /usr/local/lib/z-push/backend/caldav/config.php -sed -i "s/define('CALDAV_PORT', .*/define('CALDAV_PORT', '443');/" /usr/local/lib/z-push/backend/caldav/config.php -sed -i "s/define('CALDAV_PATH', .*/define('CALDAV_PATH', '/owncloud/remote.php/caldav/calendars/%u/');/" /usr/local/lib/z-push/backend/caldav/config.php +rm -f /usr/local/lib/z-push/backend/caldav/config.php +cp conf/zpush/backend_caldav.php /usr/local/lib/z-push/backend/caldav/config.php # Some directories it will use.