From bb84a6844abc032c282d3c91aa462f4acb90ae17 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Sun, 15 Apr 2007 16:29:13 +0000 Subject: [PATCH] create a new 1.4 branch --- emailadmin/Changelog | 46 + emailadmin/doc/dbmail.schema | 71 ++ emailadmin/doc/main.cf | 754 ++++++++++++++++ emailadmin/doc/qmailuser.schema | 103 +++ emailadmin/inc/class.ajaxemailadmin.inc.php | 74 ++ emailadmin/inc/class.bo.inc.php | 730 ++++++++++++++++ emailadmin/inc/class.cyrusimap.inc.php | 178 ++++ emailadmin/inc/class.dbmaildbmailuser.inc.php | 192 +++++ emailadmin/inc/class.dbmailqmailuser.inc.php | 170 ++++ emailadmin/inc/class.defaultimap.inc.php | 497 +++++++++++ emailadmin/inc/class.defaultpop.inc.php | 94 ++ emailadmin/inc/class.defaultsmtp.inc.php | 85 ++ emailadmin/inc/class.ea_identity.inc.php | 27 + emailadmin/inc/class.ea_preferences.inc.php | 150 ++++ emailadmin/inc/class.imap_client.inc.php | 789 +++++++++++++++++ emailadmin/inc/class.pleskimap.inc.php | 463 ++++++++++ .../inc/class.postfixdbmailuser.inc.php | 215 +++++ .../inc/class.postfixinetorgperson.inc.php | 139 +++ emailadmin/inc/class.postfixldap.inc.php | 216 +++++ emailadmin/inc/class.smtpplesk.inc.php | 98 +++ emailadmin/inc/class.so.inc.php | 343 ++++++++ emailadmin/inc/class.ui.inc.php | 600 +++++++++++++ emailadmin/inc/class.uiuserdata.inc.php | 215 +++++ emailadmin/inc/hook_admin.inc.php | 23 + emailadmin/index.php | 26 + emailadmin/js/jscode/editProfile.js | 25 + emailadmin/js/jscode/editUserdata.js | 59 ++ emailadmin/js/jscode/listProfile.js | 56 ++ emailadmin/setup/phpgw_ca.lang | 68 ++ emailadmin/setup/phpgw_da.lang | 69 ++ emailadmin/setup/phpgw_de.lang | 117 +++ emailadmin/setup/phpgw_en.lang | 117 +++ emailadmin/setup/phpgw_es-es.lang | 117 +++ emailadmin/setup/phpgw_fi.lang | 113 +++ emailadmin/setup/phpgw_fr.lang | 117 +++ emailadmin/setup/phpgw_hr.lang | 68 ++ emailadmin/setup/phpgw_it.lang | 97 +++ emailadmin/setup/phpgw_iw.lang | 68 ++ emailadmin/setup/phpgw_lt.lang | 1 + emailadmin/setup/phpgw_lv.lang | 61 ++ emailadmin/setup/phpgw_nl.lang | 114 +++ emailadmin/setup/phpgw_no.lang | 68 ++ emailadmin/setup/phpgw_pl.lang | 10 + emailadmin/setup/phpgw_pt-br.lang | 117 +++ emailadmin/setup/phpgw_pt.lang | 85 ++ emailadmin/setup/phpgw_sk.lang | 117 +++ emailadmin/setup/phpgw_sl.lang | 117 +++ emailadmin/setup/phpgw_sv.lang | 68 ++ emailadmin/setup/phpgw_zh-tw.lang | 117 +++ emailadmin/setup/phpgw_zh.lang | 68 ++ emailadmin/setup/setup.inc.php | 67 ++ emailadmin/setup/tables_current.inc.php | 59 ++ emailadmin/setup/tables_update.inc.php | 198 +++++ emailadmin/templates/default/config.tpl | 42 + emailadmin/templates/default/defaultpage.tpl | 64 ++ emailadmin/templates/default/domainnames.tpl | 136 +++ emailadmin/templates/default/editprofile.tpl | 803 ++++++++++++++++++ emailadmin/templates/default/edituserdata.tpl | 111 +++ .../templates/default/images/navbar.png | Bin 0 -> 2051 bytes emailadmin/templates/default/ldapsettings.tpl | 87 ++ emailadmin/templates/default/listprofiles.tpl | 35 + emailadmin/templates/default/listservers.tpl | 25 + emailadmin/templates/default/nextMatch.tpl | 25 + emailadmin/templates/default/options.tpl | 138 +++ emailadmin/templates/default/smtprouting.tpl | 112 +++ .../templates/jerryr/images/navbar-over.png | Bin 0 -> 2051 bytes emailadmin/templates/jerryr/images/navbar.png | Bin 0 -> 1110 bytes 67 files changed, 10234 insertions(+) create mode 100644 emailadmin/Changelog create mode 100644 emailadmin/doc/dbmail.schema create mode 100644 emailadmin/doc/main.cf create mode 100644 emailadmin/doc/qmailuser.schema create mode 100644 emailadmin/inc/class.ajaxemailadmin.inc.php create mode 100644 emailadmin/inc/class.bo.inc.php create mode 100644 emailadmin/inc/class.cyrusimap.inc.php create mode 100755 emailadmin/inc/class.dbmaildbmailuser.inc.php create mode 100644 emailadmin/inc/class.dbmailqmailuser.inc.php create mode 100644 emailadmin/inc/class.defaultimap.inc.php create mode 100644 emailadmin/inc/class.defaultpop.inc.php create mode 100644 emailadmin/inc/class.defaultsmtp.inc.php create mode 100644 emailadmin/inc/class.ea_identity.inc.php create mode 100644 emailadmin/inc/class.ea_preferences.inc.php create mode 100644 emailadmin/inc/class.imap_client.inc.php create mode 100644 emailadmin/inc/class.pleskimap.inc.php create mode 100755 emailadmin/inc/class.postfixdbmailuser.inc.php create mode 100644 emailadmin/inc/class.postfixinetorgperson.inc.php create mode 100644 emailadmin/inc/class.postfixldap.inc.php create mode 100644 emailadmin/inc/class.smtpplesk.inc.php create mode 100644 emailadmin/inc/class.so.inc.php create mode 100644 emailadmin/inc/class.ui.inc.php create mode 100644 emailadmin/inc/class.uiuserdata.inc.php create mode 100644 emailadmin/inc/hook_admin.inc.php create mode 100644 emailadmin/index.php create mode 100644 emailadmin/js/jscode/editProfile.js create mode 100644 emailadmin/js/jscode/editUserdata.js create mode 100644 emailadmin/js/jscode/listProfile.js create mode 100644 emailadmin/setup/phpgw_ca.lang create mode 100644 emailadmin/setup/phpgw_da.lang create mode 100644 emailadmin/setup/phpgw_de.lang create mode 100755 emailadmin/setup/phpgw_en.lang create mode 100644 emailadmin/setup/phpgw_es-es.lang create mode 100644 emailadmin/setup/phpgw_fi.lang create mode 100644 emailadmin/setup/phpgw_fr.lang create mode 100755 emailadmin/setup/phpgw_hr.lang create mode 100644 emailadmin/setup/phpgw_it.lang create mode 100755 emailadmin/setup/phpgw_iw.lang create mode 100644 emailadmin/setup/phpgw_lt.lang create mode 100644 emailadmin/setup/phpgw_lv.lang create mode 100644 emailadmin/setup/phpgw_nl.lang create mode 100644 emailadmin/setup/phpgw_no.lang create mode 100644 emailadmin/setup/phpgw_pl.lang create mode 100644 emailadmin/setup/phpgw_pt-br.lang create mode 100644 emailadmin/setup/phpgw_pt.lang create mode 100644 emailadmin/setup/phpgw_sk.lang create mode 100644 emailadmin/setup/phpgw_sl.lang create mode 100644 emailadmin/setup/phpgw_sv.lang create mode 100644 emailadmin/setup/phpgw_zh-tw.lang create mode 100644 emailadmin/setup/phpgw_zh.lang create mode 100644 emailadmin/setup/setup.inc.php create mode 100644 emailadmin/setup/tables_current.inc.php create mode 100644 emailadmin/setup/tables_update.inc.php create mode 100644 emailadmin/templates/default/config.tpl create mode 100644 emailadmin/templates/default/defaultpage.tpl create mode 100644 emailadmin/templates/default/domainnames.tpl create mode 100755 emailadmin/templates/default/editprofile.tpl create mode 100644 emailadmin/templates/default/edituserdata.tpl create mode 100644 emailadmin/templates/default/images/navbar.png create mode 100644 emailadmin/templates/default/ldapsettings.tpl create mode 100755 emailadmin/templates/default/listprofiles.tpl create mode 100755 emailadmin/templates/default/listservers.tpl create mode 100644 emailadmin/templates/default/nextMatch.tpl create mode 100644 emailadmin/templates/default/options.tpl create mode 100644 emailadmin/templates/default/smtprouting.tpl create mode 100644 emailadmin/templates/jerryr/images/navbar-over.png create mode 100644 emailadmin/templates/jerryr/images/navbar.png diff --git a/emailadmin/Changelog b/emailadmin/Changelog new file mode 100644 index 0000000000..7c9f61ea5a --- /dev/null +++ b/emailadmin/Changelog @@ -0,0 +1,46 @@ +2007-01-05 Lars Kneschke + * improved parsing of content-type response + +2007-01-03 Lars Kneschke + * enabled renaming of dbmail accounts + * made SSL/TLS settings working again + +2006-12-31 Lars Kneschke + * major rewrite of the imap backend. the imap backend is not handled + by the php extension php-imap anymore, but the PEAR class Net_IMAP. + * improved handling of namespaces + * improved performance of most imap operations + * improved folderhandling + * make emailadmin dependent on egw-pear + +20061010 lkneschke@metaways.de + +- added support for dbmailuser schema + +20060416 RalfBecker-AT-outdoor-training.de: + +- added plesk plugin to create mail accounts and manage passwords, aliases + forwards and quota on a plesk system (tested with plesk7.5 Linux) + +20051128 + +- added function to retrieve users profile based on applicationname and + groupmembership. No need to select profile as admin anymore. + +20051120 + +- fixed opening "edit profile" dialog in new window +- fixed handling of groups in "edit profile" dialog + +20051123 + +- polished gui a little bit. the gui looks much better now. at least i hope so :-) +- added option to define global used smtp auth options +- made multiple profiles useable. you can now assign profiles depending on + application name and group membership. + + +20051013 + +- Postfix LDAP users can now update there email forwardingaddress + themself(if enabled) diff --git a/emailadmin/doc/dbmail.schema b/emailadmin/doc/dbmail.schema new file mode 100644 index 0000000000..a1e3469371 --- /dev/null +++ b/emailadmin/doc/dbmail.schema @@ -0,0 +1,71 @@ +# +# dbmail-ldap v3 directory schema +# +# Based on the Qmail schema +# Modified for dbmail by Paul Stevens +# Modified for dbmail by Lars Kneschke too +# +# This schema depends on: +# - core.schema +# - cosine.schema +# - nis.schema +# +# This schema conflicts with +# - qmailuser.schema + +# Attribute Type Definitions + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.1 NAME 'mailQuota' + DESC 'The amount of space the user can use until all further messages get bounced.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.2 NAME 'mailForwardingAddress' + DESC 'Address(es) to forward all incoming messages to.' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.3 NAME 'mailHost' + DESC 'Name or address of the MTA host to use for recipient' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.4 NAME 'dbmailUID' + DESC 'UID of the user on the mailsystem' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.5 NAME 'dbmailGID' + DESC 'GID of the user on the mailsystem' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 + SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.6 NAME 'mailAlternateAddress' + DESC 'Secondary (alias) mailaddresses for the same user' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.7 NAME 'deliveryMode' + DESC 'multi field entries of: normal, forwardonly' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.12340.6.2.1.8 NAME 'accountStatus' + DESC 'The status of a user account: active, disabled' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE ) + +# Object Class Definitions + +objectclass ( 1.3.6.1.4.1.12340.6.2.2.1 NAME 'dbmailUser' + DESC 'DBMail-LDAP User' SUP top AUXILIARY + MUST ( uid $ mail ) + MAY ( userPassword $ uidNumber $ gidNumber $ mailQuota $ mailForwardingAddress $ mailHost $ mailAlternateAddress $ dbmailUID $ dbmailGID $ deliveryMode $ accountStatus ) ) + +objectclass ( 1.3.6.1.4.1.12340.6.2.2.2 NAME 'dbmailForwardingAddress' + DESC 'DBMail-LDAP Forwarding Address' SUP top AUXILIARY + MUST ( mail $ mailForwardingAddress ) ) diff --git a/emailadmin/doc/main.cf b/emailadmin/doc/main.cf new file mode 100644 index 0000000000..e7c741dd90 --- /dev/null +++ b/emailadmin/doc/main.cf @@ -0,0 +1,754 @@ +# Global Postfix configuration file. This file lists only a subset +# of all 300+ parameters. See the sample-xxx.cf files for a full list. +# +# The general format is lines with parameter = value pairs. Lines +# that begin with whitespace continue the previous line. A value can +# contain references to other $names or ${name}s. +# +# NOTE - CHANGE NO MORE THAN 2-3 PARAMETERS AT A TIME, AND TEST IF +# POSTFIX STILL WORKS AFTER EVERY CHANGE. + +# SOFT BOUNCE +# +# The soft_bounce parameter provides a limited safety net for +# testing. When soft_bounce is enabled, mail will remain queued that +# would otherwise bounce. This parameter disables locally-generated +# bounces, and prevents the SMTP server from rejecting mail permanently +# (by changing 5xx replies into 4xx replies). However, soft_bounce +# is no cure for address rewriting mistakes or mail routing mistakes. +# +#soft_bounce = no + +# LOCAL PATHNAME INFORMATION +# +# The queue_directory specifies the location of the Postfix queue. +# This is also the root directory of Postfix daemons that run chrooted. +# See the files in examples/chroot-setup for setting up Postfix chroot +# environments on different UNIX systems. +# +queue_directory = /var/spool/postfix + +# The command_directory parameter specifies the location of all +# postXXX commands. +# +command_directory = /usr/sbin + +# The daemon_directory parameter specifies the location of all Postfix +# daemon programs (i.e. programs listed in the master.cf file). This +# directory must be owned by root. +# +daemon_directory = /usr/lib/postfix + +# QUEUE AND PROCESS OWNERSHIP +# +# The mail_owner parameter specifies the owner of the Postfix queue +# and of most Postfix daemon processes. Specify the name of a user +# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS +# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In +# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED +# USER. +# +mail_owner = postfix + +# The default_privs parameter specifies the default rights used by +# the local delivery agent for delivery to external file or command. +# These rights are used in the absence of a recipient user context. +# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER. +# +#default_privs = nobody + +# INTERNET HOST AND DOMAIN NAMES +# +# The myhostname parameter specifies the internet hostname of this +# mail system. The default is to use the fully-qualified domain name +# from gethostname(). $myhostname is used as a default value for many +# other configuration parameters. +# +#myhostname = host.domain.tld +#myhostname = virtual.domain.tld + +# The mydomain parameter specifies the local internet domain name. +# The default is to use $myhostname minus the first component. +# $mydomain is used as a default value for many other configuration +# parameters. +# +#mydomain = domain.tld + +# SENDING MAIL +# +# The myorigin parameter specifies the domain that locally-posted +# mail appears to come from. The default is to append $myhostname, +# which is fine for small sites. If you run a domain with multiple +# machines, you should (1) change this to $mydomain and (2) set up +# a domain-wide alias database that aliases each user to +# user@that.users.mailhost. +# +# For the sake of consistency between sender and recipient addresses, +# myorigin also specifies the default domain name that is appended +# to recipient addresses that have no @domain part. +# +#myorigin = $myhostname +#myorigin = $mydomain + +# RECEIVING MAIL + +# The inet_interfaces parameter specifies the network interface +# addresses that this mail system receives mail on. By default, +# the software claims all active interfaces on the machine. The +# parameter also controls delivery of mail to user@[ip.address]. +# +# See also the proxy_interfaces parameter, for network addresses that +# are forwarded to us via a proxy or network address translator. +# +# Note: you need to stop/start Postfix when this parameter changes. +# +#inet_interfaces = all +#inet_interfaces = $myhostname +#inet_interfaces = $myhostname, localhost + +# The proxy_interfaces parameter specifies the network interface +# addresses that this mail system receives mail on by way of a +# proxy or network address translation unit. This setting extends +# the address list specified with the inet_interfaces parameter. +# +# You must specify your proxy/NAT addresses when your system is a +# backup MX host for other domains, otherwise mail delivery loops +# will happen when the primary MX host is down. +# +#proxy_interfaces = +#proxy_interfaces = 1.2.3.4 + +# The mydestination parameter specifies the list of domains that this +# machine considers itself the final destination for. +# +# These domains are routed to the delivery agent specified with the +# local_transport parameter setting. By default, that is the UNIX +# compatible delivery agent that lookups all recipients in /etc/passwd +# and /etc/aliases or their equivalent. +# +# The default is $myhostname + localhost.$mydomain. On a mail domain +# gateway, you should also include $mydomain. +# +# Do not specify the names of virtual domains - those domains are +# specified elsewhere (see sample-virtual.cf). +# +# Do not specify the names of domains that this machine is backup MX +# host for. Specify those names via the relay_domains settings for +# the SMTP server, or use permit_mx_backup if you are lazy (see +# sample-smtpd.cf). +# +# The local machine is always the final destination for mail addressed +# to user@[the.net.work.address] of an interface that the mail system +# receives mail on (see the inet_interfaces parameter). +# +# Specify a list of host or domain names, /file/name or type:table +# patterns, separated by commas and/or whitespace. A /file/name +# pattern is replaced by its contents; a type:table is matched when +# a name matches a lookup key (the right-hand side is ignored). +# Continue long lines by starting the next line with whitespace. +# +# DO NOT LIST RELAY DESTINATIONS IN MYDESTINATION. +# SPECIFY RELAY DESTINATIONS IN RELAY_DOMAINS. +# +# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS". +# +#mydestination = $myhostname, localhost.$mydomain +#mydestination = $myhostname, localhost.$mydomain $mydomain +#mydestination = $myhostname, localhost.$mydomain, $mydomain, +# mail.$mydomain, www.$mydomain, ftp.$mydomain +mydestination = $myhostname, localhost.$mydomain $mydomain, + kneschke.de, phpgw.de, egroupware.org, linux-at-work.de, lists.kneschke.de + +# REJECTING MAIL FOR UNKNOWN LOCAL USERS +# +# The local_recipient_maps parameter specifies optional lookup tables +# with all names or addresses of users that are local with respect +# to $mydestination and $inet_interfaces. +# +# If this parameter is defined, then the SMTP server will reject +# mail for unknown local users. This parameter is defined by default. +# +# To turn off local recipient checking in the SMTP server, specify +# local_recipient_maps = (i.e. empty). +# +# The default setting assumes that you use the default Postfix local +# delivery agent for local delivery. You need to update the +# local_recipient_maps setting if: +# +# - You define $mydestination domain recipients in files other than +# /etc/passwd, /etc/aliases, or the $virtual_alias_maps files. +# For example, you define $mydestination domain recipients in +# the $virtual_mailbox_maps files. +# +# - You redefine the local delivery agent in master.cf. +# +# - You redefine the "local_transport" setting in main.cf. +# +# - You use the "luser_relay", "mailbox_transport", or "fallback_transport" +# feature of the Postfix local delivery agent (see sample-local.cf). +# +# Details are described in the LOCAL_RECIPIENT_README file. +# +# Beware: if the Postfix SMTP server runs chrooted, you probably have +# to access the passwd file via the proxymap service, in order to +# overcome chroot restrictions. The alternative, having a copy of +# the system passwd file in the chroot jail is just not practical. +# +# The right-hand side of the lookup tables is conveniently ignored. +# In the left-hand side, specify a bare username, an @domain.tld +# wild-card, or specify a user@domain.tld address. +# +#local_recipient_maps = unix:passwd.byname $alias_maps +#local_recipient_maps = proxy:unix:passwd.byname $alias_maps +#local_recipient_maps = + +# The unknown_local_recipient_reject_code specifies the SMTP server +# response code when a recipient domain matches $mydestination or +# $inet_interfaces, while $local_recipient_maps is non-empty and the +# recipient address or address local-part is not found. +# +# The default setting is 550 (reject mail) but it is safer to start +# with 450 (try again later) until you are certain that your +# local_recipient_maps settings are OK. +# +unknown_local_recipient_reject_code = 550 +#unknown_local_recipient_reject_code = 450 + +# TRUST AND RELAY CONTROL + +# The mynetworks parameter specifies the list of "trusted" SMTP +# clients that have more privileges than "strangers". +# +# In particular, "trusted" SMTP clients are allowed to relay mail +# through Postfix. See the smtpd_recipient_restrictions parameter +# in file sample-smtpd.cf. +# +# You can specify the list of "trusted" network addresses by hand +# or you can let Postfix do it for you (which is the default). +# +# By default (mynetworks_style = subnet), Postfix "trusts" SMTP +# clients in the same IP subnetworks as the local machine. +# On Linux, this does works correctly only with interfaces specified +# with the "ifconfig" command. +# +# Specify "mynetworks_style = class" when Postfix should "trust" SMTP +# clients in the same IP class A/B/C networks as the local machine. +# Don't do this with a dialup site - it would cause Postfix to "trust" +# your entire provider's network. Instead, specify an explicit +# mynetworks list by hand, as described below. +# +# Specify "mynetworks_style = host" when Postfix should "trust" +# only the local machine. +# +#mynetworks_style = class +#mynetworks_style = subnet +#mynetworks_style = host + +# Alternatively, you can specify the mynetworks list by hand, in +# which case Postfix ignores the mynetworks_style setting. +# +# Specify an explicit list of network/netmask patterns, where the +# mask specifies the number of bits in the network part of a host +# address. +# +# You can also specify the absolute pathname of a pattern file instead +# of listing the patterns here. Specify type:table for table-based lookups +# (the value on the table right-hand side is not used). +# +#mynetworks = 168.100.189.0/28, 127.0.0.0/8 +#mynetworks = $config_directory/mynetworks +#mynetworks = hash:/etc/postfix/network_table + +# The relay_domains parameter restricts what destinations this system will +# relay mail to. See the smtpd_recipient_restrictions restriction in the +# file sample-smtpd.cf for detailed information. +# +# By default, Postfix relays mail +# - from "trusted" clients (IP address matches $mynetworks) to any destination, +# - from "untrusted" clients to destinations that match $relay_domains or +# subdomains thereof, except addresses with sender-specified routing. +# The default relay_domains value is $mydestination. +# +# In addition to the above, the Postfix SMTP server by default accepts mail +# that Postfix is final destination for: +# - destinations that match $inet_interfaces, +# - destinations that match $mydestination +# - destinations that match $virtual_alias_domains, +# - destinations that match $virtual_mailbox_domains. +# These destinations do not need to be listed in $relay_domains. +# +# Specify a list of hosts or domains, /file/name patterns or type:name +# lookup tables, separated by commas and/or whitespace. Continue +# long lines by starting the next line with whitespace. A file name +# is replaced by its contents; a type:name table is matched when a +# (parent) domain appears as lookup key. +# +# NOTE: Postfix will not automatically forward mail for domains that +# list this system as their primary or backup MX host. See the +# permit_mx_backup restriction in the file sample-smtpd.cf. +# +#relay_domains = $mydestination + +# INTERNET OR INTRANET + +# The relayhost parameter specifies the default host to send mail to +# when no entry is matched in the optional transport(5) table. When +# no relayhost is given, mail is routed directly to the destination. +# +# On an intranet, specify the organizational domain name. If your +# internal DNS uses no MX records, specify the name of the intranet +# gateway host instead. +# +# In the case of SMTP, specify a domain, host, host:port, [host]:port, +# [address] or [address]:port; the form [host] turns off MX lookups. +# +# If you're connected via UUCP, see also the default_transport parameter. +# +#relayhost = $mydomain +#relayhost = gateway.my.domain +#relayhost = uucphost +#relayhost = [an.ip.add.ress] + +# REJECTING UNKNOWN RELAY USERS +# +# The relay_recipient_maps parameter specifies optional lookup tables +# with all addresses in the domains that match $relay_domains. +# +# If this parameter is defined, then the SMTP server will reject +# mail for unknown relay users. This feature is off by default. +# +# The right-hand side of the lookup tables is conveniently ignored. +# In the left-hand side, specify an @domain.tld wild-card, or specify +# a user@domain.tld address. +# +#relay_recipient_maps = hash:/etc/postfix/relay_recipients + +# INPUT RATE CONTROL +# +# The in_flow_delay configuration parameter implements mail input +# flow control. This feature is turned on by default, although it +# still needs further development (it's disabled on SCO UNIX due +# to an SCO bug). +# +# A Postfix process will pause for $in_flow_delay seconds before +# accepting a new message, when the message arrival rate exceeds the +# message delivery rate. With the default 100 SMTP server process +# limit, this limits the mail inflow to 100 messages a second more +# than the number of messages delivered per second. +# +# Specify 0 to disable the feature. Valid delays are 0..10. +# +#in_flow_delay = 1s + +# ADDRESS REWRITING +# +# Insert text from sample-rewrite.cf if you need to do address +# masquerading. +# +# Insert text from sample-canonical.cf if you need to do address +# rewriting, or if you need username->Firstname.Lastname mapping. + +# ADDRESS REDIRECTION (VIRTUAL DOMAIN) +# +# Insert text from sample-virtual.cf if you need virtual domain support. + +# "USER HAS MOVED" BOUNCE MESSAGES +# +# Insert text from sample-relocated.cf if you need "user has moved" +# style bounce messages. Alternatively, you can bounce recipients +# with an SMTP server access table. See sample-smtpd.cf. + +# TRANSPORT MAP +# +# Insert text from sample-transport.cf if you need explicit routing. + +# ALIAS DATABASE +# +# The alias_maps parameter specifies the list of alias databases used +# by the local delivery agent. The default list is system dependent. +# +# On systems with NIS, the default is to search the local alias +# database, then the NIS alias database. See aliases(5) for syntax +# details. +# +# If you change the alias database, run "postalias /etc/aliases" (or +# wherever your system stores the mail alias file), or simply run +# "newaliases" to build the necessary DBM or DB file. +# +# It will take a minute or so before changes become visible. Use +# "postfix reload" to eliminate the delay. +# +#alias_maps = dbm:/etc/aliases +#alias_maps = hash:/etc/aliases +#alias_maps = hash:/etc/aliases, nis:mail.aliases +#alias_maps = netinfo:/aliases + +# The alias_database parameter specifies the alias database(s) that +# are built with "newaliases" or "sendmail -bi". This is a separate +# configuration parameter, because alias_maps (see above) may specify +# tables that are not necessarily all under control by Postfix. +# +#alias_database = dbm:/etc/aliases +#alias_database = dbm:/etc/mail/aliases +#alias_database = hash:/etc/aliases +#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases + +# ADDRESS EXTENSIONS (e.g., user+foo) +# +# The recipient_delimiter parameter specifies the separator between +# user names and address extensions (user+foo). See canonical(5), +# local(8), relocated(5) and virtual(5) for the effects this has on +# aliases, canonical, virtual, relocated and .forward file lookups. +# Basically, the software tries user+foo and .forward+foo before +# trying user and .forward. +# +#recipient_delimiter = + + +# DELIVERY TO MAILBOX +# +# The home_mailbox parameter specifies the optional pathname of a +# mailbox file relative to a user's home directory. The default +# mailbox file is /var/spool/mail/user or /var/mail/user. Specify +# "Maildir/" for qmail-style delivery (the / is required). +# +#home_mailbox = Mailbox +#home_mailbox = Maildir/ + +# The mail_spool_directory parameter specifies the directory where +# UNIX-style mailboxes are kept. The default setting depends on the +# system type. +# +#mail_spool_directory = /var/mail +#mail_spool_directory = /var/spool/mail + +# The mailbox_command parameter specifies the optional external +# command to use instead of mailbox delivery. The command is run as +# the recipient with proper HOME, SHELL and LOGNAME environment settings. +# Exception: delivery for root is done as $default_user. +# +# Other environment variables of interest: USER (recipient username), +# EXTENSION (address extension), DOMAIN (domain part of address), +# and LOCAL (the address localpart). +# +# Unlike other Postfix configuration parameters, the mailbox_command +# parameter is not subjected to $parameter substitutions. This is to +# make it easier to specify shell syntax (see example below). +# +# Avoid shell meta characters because they will force Postfix to run +# an expensive shell process. Procmail alone is expensive enough. +# +# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN +# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER. +# +#mailbox_command = /some/where/procmail +#mailbox_command = /some/where/procmail -a "$EXTENSION" + +# The mailbox_transport specifies the optional transport in master.cf +# to use after processing aliases and .forward files. This parameter +# has precedence over the mailbox_command, fallback_transport and +# luser_relay parameters. +# +# Specify a string of the form transport:nexthop, where transport is +# the name of a mail delivery transport defined in master.cf. The +# :nexthop part is optional. For more details see the sample transport +# configuration file. +# +# NOTE: if you use this feature for accounts not in the UNIX password +# file, then you must update the "local_recipient_maps" setting in +# the main.cf file, otherwise the SMTP server will reject mail for +# non-UNIX accounts with "User unknown in local recipient table". +# +#mailbox_transport = lmtp:unix:/file/name +mailbox_transport = lmtp:unix:/var/imap/socket/lmtp +#mailbox_transport = cyrus + +# The fallback_transport specifies the optional transport in master.cf +# to use for recipients that are not found in the UNIX passwd database. +# This parameter has precedence over the luser_relay parameter. +# +# Specify a string of the form transport:nexthop, where transport is +# the name of a mail delivery transport defined in master.cf. The +# :nexthop part is optional. For more details see the sample transport +# configuration file. +# +# NOTE: if you use this feature for accounts not in the UNIX password +# file, then you must update the "local_recipient_maps" setting in +# the main.cf file, otherwise the SMTP server will reject mail for +# non-UNIX accounts with "User unknown in local recipient table". +# +#fallback_transport = lmtp:unix:/file/name +#fallback_transport = cyrus +#fallback_transport = + +# The luser_relay parameter specifies an optional destination address +# for unknown recipients. By default, mail for unknown@$mydestination +# and unknown@[$inet_interfaces] is returned as undeliverable. +# +# The following expansions are done on luser_relay: $user (recipient +# username), $shell (recipient shell), $home (recipient home directory), +# $recipient (full recipient address), $extension (recipient address +# extension), $domain (recipient domain), $local (entire recipient +# localpart), $recipient_delimiter. Specify ${name?value} or +# ${name:value} to expand value only when $name does (does not) exist. +# +# luser_relay works only for the default Postfix local delivery agent. +# +# NOTE: if you use this feature for accounts not in the UNIX password +# file, then you must specify "local_recipient_maps =" (i.e. empty) in +# the main.cf file, otherwise the SMTP server will reject mail for +# non-UNIX accounts with "User unknown in local recipient table". +# +#luser_relay = $user@other.host +#luser_relay = $local@other.host +#luser_relay = admin+$local + +# JUNK MAIL CONTROLS +# +# The controls listed here are only a very small subset. See the file +# sample-smtpd.cf for an elaborate list of anti-UCE controls. + +# The header_checks parameter specifies an optional table with patterns +# that each logical message header is matched against, including +# headers that span multiple physical lines. +# +# By default, these patterns also apply to MIME headers and to the +# headers of attached messages. With older Postfix versions, MIME and +# attached message headers were treated as body text. +# +# For details, see the sample-filter.cf file. +# +#header_checks = regexp:/etc/postfix/header_checks + +# FAST ETRN SERVICE +# +# Postfix maintains per-destination logfiles with information about +# deferred mail, so that mail can be flushed quickly with the SMTP +# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld". +# +# By default, Postfix maintains deferred mail logfile information +# only for destinations that Postfix is willing to relay to (as +# specified in the relay_domains parameter). For other destinations, +# Postfix attempts to deliver ALL queued mail after receiving the +# SMTP "ETRN domain.tld" command, or after execution of "sendmail +# -qRdomain.tld". This can be slow when a lot of mail is queued. +# +# The fast_flush_domains parameter controls what destinations are +# eligible for this "fast ETRN/sendmail -qR" service. +# +#fast_flush_domains = $relay_domains +#fast_flush_domains = + +# The disable_vrfy_command parameter allows you to disable the SMTP +# VRFY command. This stops some techniques used by spammers to harvest +# email addresses. +# +disable_vrfy_command = yes + +# SHOW SOFTWARE VERSION OR NOT +# +# The smtpd_banner parameter specifies the text that follows the 220 +# code in the SMTP server's greeting banner. Some people like to see +# the mail version advertised. By default, Postfix shows no version. +# +# You MUST specify $myhostname at the start of the text. That is an +# RFC requirement. Postfix itself does not care. +# +#smtpd_banner = $myhostname ESMTP $mail_name +#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) + +# PARALLEL DELIVERY TO THE SAME DESTINATION +# +# How many parallel deliveries to the same user or domain? With local +# delivery, it does not make sense to do massively parallel delivery +# to the same user, because mailbox updates must happen sequentially, +# and expensive pipelines in .forward files can cause disasters when +# too many are run at the same time. With SMTP deliveries, 10 +# simultaneous connections to the same domain could be sufficient to +# raise eyebrows. +# +# Each message delivery transport has its XXX_destination_concurrency_limit +# parameter. The default is $default_destination_concurrency_limit for +# most delivery transports. For the local delivery agent the default is 2. + +#local_destination_concurrency_limit = 2 +#default_destination_concurrency_limit = 20 + +# DEBUGGING CONTROL +# +# The debug_peer_level parameter specifies the increment in verbose +# logging level when an SMTP client or server host name or address +# matches a pattern in the debug_peer_list parameter. +# +debug_peer_level = 2 + +# The debug_peer_list parameter specifies an optional list of domain +# or network patterns, /file/name patterns or type:name tables. When +# an SMTP client or server host name or address matches a pattern, +# increase the verbose logging level by the amount specified in the +# debug_peer_level parameter. +# +#debug_peer_list = 127.0.0.1 +#debug_peer_list = some.domain + +# The debugger_command specifies the external command that is executed +# when a Postfix daemon program is run with the -D option. +# +# Use "command .. & sleep 5" so that the debugger can attach before +# the process marches on. If you use an X-based debugger, be sure to +# set up your XAUTHORITY environment variable before starting Postfix. +# +debugger_command = + PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin + xxgdb $daemon_directory/$process_name $process_id & sleep 5 + +# If you don't have X installed on the Postfix machine, try: +# debugger_command = +# PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont; +# echo where) | gdb $daemon_directory/$process_name $process_id 2>&1 +# >$config_directory/$process_name.$process_id.log & sleep 5 + +# INSTALL-TIME CONFIGURATION INFORMATION +# +# The following parameters are used when installing a new Postfix version. +# +# sendmail_path: The full pathname of the Postfix sendmail command. +# This is the Sendmail-compatible mail posting interface. +# +sendmail_path = /usr/sbin/sendmail + +# newaliases_path: The full pathname of the Postfix newaliases command. +# This is the Sendmail-compatible command to build alias databases. +# +newaliases_path = /usr/bin/newaliases + +# mailq_path: The full pathname of the Postfix mailq command. This +# is the Sendmail-compatible mail queue listing command. +# +mailq_path = /usr/bin/mailq + +# setgid_group: The group for mail submission and queue management +# commands. This must be a group name with a numerical group ID that +# is not shared with other accounts, not even with the Postfix account. +# +setgid_group = postdrop + +# manpage_directory: The location of the Postfix on-line manual pages. +# +manpage_directory = /usr/share/man + +# sample_directory: The location of the Postfix sample configuration files. +# +sample_directory = /usr/share/doc/postfix-2.0.19/sample + +# readme_directory: The location of the Postfix README files. +# +readme_directory = /usr/share/doc/postfix-2.0.19/readme +default_destination_concurrency_limit = 2 +#alias_database = hash:/etc/mail/aliases +local_destination_concurrency_limit = 2 +alias_maps = hash:/etc/mail/aliases + +content_filter = smtp-amavis:[127.0.0.1]:10024 +queue_minfree = 100000000 +message_size_limit = 50000000 +mailbox_size_limit = 500000000 +smtpd_helo_required=yes +smtpd_helo_restrictions=permit_mynetworks, reject_invalid_hostname, reject_invalid_hostname +smtpd_sender_restrictions=permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender + +virtual_maps = ldap:aliases, ldap:mailboxes + +aliases_server_host = 127.0.0.1 +aliases_search_base = dc=domain,dc=loc +aliases_query_filter = (&(|(mail=%s)(mailalternateaddress=%s))(objectclass=posixaccount)(deliveryMode=forwardonly)(accountstatus=active)) +aliases_bind_dn = cn=thepostfixadmin,dc=domain,dc=loc +aliases_bind_pw = thepassword +aliases_result_attribute = mailforwardingaddress +aliases_version = 3 + +mailboxes_server_host = 127.0.0.1 +mailboxes_search_base = dc=domain,dc=loc +mailboxes_query_filter = (&(|(mail=%s)(mailalternateaddress=%s))(objectclass=posixaccount)(accountstatus=active)) +mailboxes_bind_dn = cn=thepostfixadmin,dc=domain,dc=loc +mailboxes_bind_pw = thepassword +mailboxes_result_attribute = uid, mailforwardingaddress +mailboxes_version = 3 + + +#SMTPD mit SASL-Authentification verwenden +smtpd_sasl_auth_enable = yes + +#Zusatz-Optionen: Keine anonyme-Anmeldung verwenden +smtpd_sasl_security_options = noanonymous + +#Wieder ein Workaround für ältere Clients und Outlook +broken_sasl_auth_clients = yes + +# ODER meine Netze und SASL erlauben +smtpd_recipient_restrictions = + permit_mynetworks, + permit_sasl_authenticated, + reject_rbl_client relays.ordb.org, + reject_rbl_client sbl-xbl.spamhaus.org, + reject_rbl_client opm.blitzed.org, + reject_rbl_client dnsbl.njabl.org, + reject_rbl_client blackholes.wirehub.net, + reject_rbl_client list.dsbl.org, + reject_rbl_client dnsbl.sorbs.net, + reject_unauth_destination, + reject_non_fqdn_sender, + reject_non_fqdn_recipient, + reject_unauth_pipelining, + reject_unknown_sender_domain, + reject_unknown_recipient_domain + +# reject_unknown_client +# reject_rbl_client proxies.relays.monkeys.com, + +# incoming SSL +smtpd_use_tls = yes +#smtpd_tls_auth_only = yes +smtpd_tls_key_file = /etc/ssl/private/smtp.linux-at-work.de/smtp.linux-at-work.de.key +smtpd_tls_cert_file = /etc/ssl/private/smtp.linux-at-work.de/smtp.linux-at-work.de.crt +smtpd_tls_CAfile = /etc/ssl/certs/ca-cert.pem +smtpd_tls_loglevel = 1 +smtpd_tls_received_header = yes +smtpd_tls_session_cache_timeout = 3600s +tls_random_source = dev:/dev/urandom + +#outgoing SSL +smtp_tls_key_file = /etc/ssl/private/smtp.linux-at-work.de/smtp.linux-at-work.de.key +smtp_tls_cert_file = /etc/ssl/private/smtp.linux-at-work.de/smtp.linux-at-work.de.crt +smtp_tls_CAfile = /etc/ssl/certs/ca-cert.pem +smtp_tls_CApath = /etc/ssl/certs +smtp_tls_loglevel = 2 +# The server and client negotiate a session, which takes some computer time +# and network bandwidth. The session is cached only in the smtpd process +# actually using this session and is lost when the process dies. +# To share the session information between the smtp processes, a disc based +# session cache can be used based on the SDBM databases (routines included +# in Postfix/TLS). Since concurrent writing must be supported, only SDBM +# can be used. +# +smtp_tls_session_cache_database = sdbm:/etc/postfix/smtp_scache + +# By default TLS is disabled, so no difference to plain postfix is visible. +# If you enable TLS it will be used when offered by the server. +# WARNING: I didn't have access to other software (except those explicitely +# listed) to test the interaction. On corresponding mailing list +# there was a discussion going on about MS exchange servers offering +# STARTTLS even if it is not configured, so it might be wise to not +# use this option on your central mail hub, as you don't know in advance +# whether you are going to hit such host. Use the recipient/site specific +# options instead. +# HINT: I have it switched on on my mailservers and did experience one +# single failure since client side TLS is implemented. (There was one +# misconfired MS Exchange server; I contacted ths admin.) Hence, I am happy +# with it running all the time, but I am interested in testing anyway. +# You have been warned, however :-) +# +# In case of failure, a "4xx" code is issued and the mail stays in the queue. +# +# Explicitely switch it on here, if you want it. +# +#smtp_use_tls = yes diff --git a/emailadmin/doc/qmailuser.schema b/emailadmin/doc/qmailuser.schema new file mode 100644 index 0000000000..336761e6af --- /dev/null +++ b/emailadmin/doc/qmailuser.schema @@ -0,0 +1,103 @@ +# +# qmail-ldap v3 directory schema +# +# The offical qmail-ldap OID assigned by IANA is 7914 +# +# Created by: David E. Storey +# +# Modified and included into qmail-ldap by Andre Oppermann +# +# Schema fixes by Mike Jackson +# +# +# This schema depends on: +# - core.schema +# - cosine.schema +# - nis.schema +# + +# +# Example from new format +# +# attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber' +# DESC 'An integer uniquely identifying a user in an administrative domain' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +# Attribute Type Definitions + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.1 NAME 'qmailUID' + DESC 'UID of the user on the mailsystem' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.2 NAME 'qmailGID' + DESC 'GID of the user on the mailsystem' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.3 NAME 'mailMessageStore' + DESC 'Path to the maildir/mbox on the mail system' + EQUALITY caseExactIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.4 NAME 'mailAlternateAddress' + DESC 'Secondary (alias) mailaddresses for the same user' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.5 NAME 'mailQuota' + DESC 'The amount of space the user can use until all further messages get bounced.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.6 NAME 'mailHost' + DESC 'On which qmail server the messagestore of this user is located.' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.7 NAME 'mailForwardingAddress' + DESC 'Address(es) to forward all incoming messages to.' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.8 NAME 'deliveryProgramPath' + DESC 'Program to execute for all incoming mails.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.9 NAME 'qmailDotMode' + DESC 'Interpretation of .qmail files: both, dotonly, ldaponly, ldapwithprog, none' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.10 NAME 'deliveryMode' + DESC 'multi field entries of: normal, forwardonly, nombox, localdelivery, reply, echo' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.11 NAME 'mailReplyText' + DESC 'A reply text for every incoming message' + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.12 NAME 'accountStatus' + DESC 'The status of a user account: active, nopop, disabled, deleted' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7914.1.2.1.14 NAME 'qmailAccountPurge' + DESC 'The earliest date when a mailMessageStore will be purged' + EQUALITY numericStringMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 SINGLE-VALUE ) + +# Object Class Definitions + +objectclass ( 1.3.6.1.4.1.7914.1.2.2.1 NAME 'qmailUser' + DESC 'QMail-LDAP User' SUP top AUXILIARY + MUST ( mail $ uid ) + MAY ( mailMessageStore $ homeDirectory $ userPassword $ + mailAlternateAddress $ qmailUID $ qmailGID $ mailQuota $ + mailHost $ mailForwardingAddress $ deliveryProgramPath $ + qmailDotMode $ deliveryMode $ mailReplyText $ + accountStatus $ qmailAccountPurge ) ) diff --git a/emailadmin/inc/class.ajaxemailadmin.inc.php b/emailadmin/inc/class.ajaxemailadmin.inc.php new file mode 100644 index 0000000000..818b9d1e98 --- /dev/null +++ b/emailadmin/inc/class.ajaxemailadmin.inc.php @@ -0,0 +1,74 @@ +bo =& CreateObject('emailadmin.bo'); +/* $this->bofelamimail =& CreateObject('felamimail.bofelamimail',$GLOBALS['egw']->translation->charset()); + $this->uiwidgets =& CreateObject('felamimail.uiwidgets'); + $this->bofelamimail->openConnection(); + + $this->sessionDataAjax = $GLOBALS['egw']->session->appsession('ajax_session_data'); + $this->sessionData = $GLOBALS['egw']->session->appsession('session_data'); + + if(!isset($this->sessionDataAjax['folderName'])) + $this->sessionDataAjax['folderName'] = 'INBOX'; + + $this->bofelamimail->openConnection($this->sessionDataAjax['folderName']);*/ + } + + function setOrder($_order) + { + $i = 0; + + $order = explode(',',$_order); + + foreach($order as $profileIDString) + { + // remove profile_ and just use the number + $profileID = (int)substr($profileIDString,8); + if($profileID > 0) + $newOrder[$i++] = $profileID; + } + + $this->bo->setOrder($newOrder); + } + + function addACL($_accountName, $_aclData) + { + if(!empty($_accountName)) + { + $acl = implode('',(array)$_aclData['acl']); + $data = $this->bofelamimail->addACL($this->sessionDataAjax['folderName'], $_accountName, $acl); + #$response =& new xajaxResponse(); + #$response->addScript("window.close();"); + #$response->addAssign("accountName", "value", $this->sessionDataAjax['folderName'].'-'.$_accountName.'-'.$acl); + #return $response->getXML(); + + } + } + + function updateACLView() + { + $folderACL = $this->bofelamimail->getIMAPACL($this->sessionDataAjax['folderName']); + + $response =& new xajaxResponse(); + $response->addAssign("aclTable", "innerHTML", $this->createACLTable($folderACL)); + return $response->getXML(); + } + + } +?> diff --git a/emailadmin/inc/class.bo.inc.php b/emailadmin/inc/class.bo.inc.php new file mode 100644 index 0000000000..f90379cc4e --- /dev/null +++ b/emailadmin/inc/class.bo.inc.php @@ -0,0 +1,730 @@ +soemailadmin =& CreateObject('emailadmin.so'); + + $this->SMTPServerType = array( + '1' => array( + 'fieldNames' => array( + 'smtpServer', + 'smtpPort', + 'smtpAuth', + 'ea_smtp_auth_username', + 'ea_smtp_auth_password', + 'smtpType' + ), + 'description' => lang('standard SMTP-Server'), + 'classname' => 'defaultsmtp' + ), + '2' => array( + 'fieldNames' => array( + 'smtpServer', + 'smtpPort', + 'smtpAuth', + 'ea_smtp_auth_username', + 'ea_smtp_auth_password', + 'smtpType', + 'editforwardingaddress', + 'smtpLDAPServer', + 'smtpLDAPAdminDN', + 'smtpLDAPAdminPW', + 'smtpLDAPBaseDN', + 'smtpLDAPUseDefault' + ), + 'description' => 'Postfix (qmail Schema)', + 'classname' => 'postfixldap' + ), + '3' => array( + 'fieldNames' => array( + 'smtpServer', + 'smtpPort', + 'smtpAuth', + 'ea_smtp_auth_username', + 'ea_smtp_auth_password', + 'smtpType', + ), + 'description' => 'Postfix (inetOrgPerson Schema)', + 'classname' => 'postfixinetorgperson' + ), + '4' => array( + 'fieldNames' => array( + 'smtpServer', + 'smtpPort', + 'smtpAuth', + 'ea_smtp_auth_username', + 'ea_smtp_auth_password', + 'smtpType', + 'editforwardingaddress', + ), + 'description' => 'Plesk SMTP-Server (Qmail)', + 'classname' => 'smtpplesk' + ), + '5' => array( + 'fieldNames' => array( + 'smtpServer', + 'smtpPort', + 'smtpAuth', + 'ea_smtp_auth_username', + 'ea_smtp_auth_password', + 'smtpType', + 'editforwardingaddress', + 'smtpLDAPServer', + 'smtpLDAPAdminDN', + 'smtpLDAPAdminPW', + 'smtpLDAPBaseDN', + 'smtpLDAPUseDefault' + ), + 'description' => 'Postfix (dbmail Schema)', + 'classname' => 'postfixdbmailuser' + ), + ); + + $this->IMAPServerType = array( + '1' => array( + 'fieldNames' => array( + 'imapServer', + 'imapPort', + 'imapType', + 'imapLoginType', + 'imapTLSEncryption', + 'imapTLSAuthentication', + 'imapoldcclient' + ), + 'description' => 'standard POP3 server', + 'protocol' => 'pop3', + 'classname' => 'defaultpop' + ), + '2' => array( + 'fieldNames' => array( + 'imapServer', + 'imapPort', + 'imapType', + 'imapLoginType', + 'imapTLSEncryption', + 'imapTLSAuthentication', + 'imapoldcclient' + ), + 'description' => 'standard IMAP server', + 'protocol' => 'imap', + 'classname' => 'defaultimap' + ), + '3' => array( + 'fieldNames' => array( + 'imapServer', + 'imapPort', + 'imapType', + 'imapLoginType', + 'imapTLSEncryption', + 'imapTLSAuthentication', + 'imapoldcclient', + 'imapEnableCyrusAdmin', + 'imapAdminUsername', + 'imapAdminPW', + 'imapEnableSieve', + 'imapSieveServer', + 'imapSievePort' + ), + 'description' => 'Cyrus IMAP Server', + 'protocol' => 'imap', + 'classname' => 'cyrusimap' + ), + '4' => array( + 'fieldNames' => array( + 'imapServer', + 'imapPort', + 'imapType', + 'imapLoginType', + 'imapTLSEncryption', + 'imapTLSAuthentication', + 'imapoldcclient', + 'imapEnableSieve', + 'imapSieveServer', + 'imapSievePort' + ), + 'description' => 'DBMail (qmailUser schema)', + 'protocol' => 'imap', + 'classname' => 'dbmailqmailuser' + ), + '5' => array( + 'fieldNames' => array( + 'imapServer', + 'imapPort', + 'imapType', + 'imapLoginType', + 'imapTLSEncryption', + 'imapTLSAuthentication', + 'imapoldcclient', + ), + 'description' => 'Plesk IMAP Server (Courier)', + 'protocol' => 'imap', + 'classname' => 'pleskimap' + ), + '6' => array( + 'fieldNames' => array( + 'imapServer', + 'imapPort', + 'imapType', + 'imapLoginType', + 'imapTLSEncryption', + 'imapTLSAuthentication', + 'imapoldcclient', + 'imapEnableSieve', + 'imapSieveServer', + 'imapSievePort' + ), + 'description' => 'DBMail (dbmailUser schema)', + 'protocol' => 'imap', + 'classname' => 'dbmaildbmailuser' + ), + ); + + if ($_restoreSesssion) $this->restoreSessionData(); + + if($_profileID >= 0) + { + $this->profileID = $_profileID; + + $this->profileData = $this->getProfile($_profileID); + + $this->imapClass =& CreateObject('emailadmin.'.$this->IMAPServerType[$this->profileData['imapType']]['classname']); + $this->smtpClass =& CreateObject('emailadmin.'.$this->SMTPServerType[$this->profileData['smtpType']]['classname']); + } + } + + function addAccount($_hookValues) + { + if (is_object($this->imapClass)) + { + #ExecMethod("emailadmin.".$this->imapClass.".addAccount",$_hookValues,3,$this->profileData); + $this->imapClass->addAccount($_hookValues); + } + + if (is_object($this->smtpClass)) + { + #ExecMethod("emailadmin.".$this->smtpClass.".addAccount",$_hookValues,3,$this->profileData); + $this->smtpClass->addAccount($_hookValues); + } + } + + function deleteAccount($_hookValues) + { + if (is_object($this->imapClass)) + { + #ExecMethod("emailadmin.".$this->imapClass.".deleteAccount",$_hookValues,3,$this->profileData); + $this->imapClass->deleteAccount($_hookValues); + } + + if (is_object($this->smtpClass)) + { + #ExecMethod("emailadmin.".$this->smtpClass.".deleteAccount",$_hookValues,3,$this->profileData); + $this->smtpClass->deleteAccount($_hookValues); + } + } + + function deleteProfile($_profileID) + { + $this->soemailadmin->deleteProfile($_profileID); + } + + function encodeHeader($_string, $_encoding='q') + { + switch($_encoding) + { + case "q": + if(!preg_match("/[\x80-\xFF]/",$_string)) + { + // nothing to quote, only 7 bit ascii + return $_string; + } + + $string = imap_8bit($_string); + $stringParts = explode("=\r\n",$string); + while(list($key,$value) = each($stringParts)) + { + if(!empty($retString)) $retString .= " "; + $value = str_replace(" ","_",$value); + // imap_8bit does not convert "?" + // it does not need, but it should + $value = str_replace("?","=3F",$value); + $retString .= "=?".strtoupper($this->displayCharset)."?Q?" . $value. "?="; + } + #exit; + return $retString; + break; + default: + return $_string; + } + } + + function getAccountEmailAddress($_accountName, $_profileID) + { + $profileData = $this->getProfile($_profileID); + + #$smtpClass = $this->SMTPServerType[$profileData['smtpType']]['classname']; + $smtpClass =& CreateObject('emailadmin.'.$this->SMTPServerType[$profileData['smtpType']]['classname']); + + #return empty($smtpClass) ? False : ExecMethod("emailadmin.$smtpClass.getAccountEmailAddress",$_accountName,3,$profileData); + return is_object($smtpClass) ? $smtpClass->getAccountEmailAddress($_accountName) : False; + } + + function getFieldNames($_serverTypeID, $_class) + { + switch($_class) + { + case 'imap': + return $this->IMAPServerType[$_serverTypeID]['fieldNames']; + break; + case 'smtp': + return $this->SMTPServerType[$_serverTypeID]['fieldNames']; + break; + } + } + +# function getIMAPClass($_profileID) +# { +# if(!is_object($this->imapClass)) +# { +# $profileData = $this->getProfile($_profileID); +# $this->imapClass =& CreateObject('emailadmin.cyrusimap',$profileData); +# } +# +# return $this->imapClass; +# } + + function getIMAPServerTypes() { + foreach($this->IMAPServerType as $key => $value) { + $retData[$key]['description'] = $value['description']; + $retData[$key]['protocol'] = $value['protocol']; + } + + return $retData; + } + + function getLDAPStorageData($_serverid) + { + $storageData = $this->soemailadmin->getLDAPStorageData($_serverid); + return $storageData; + } + + function getMailboxString($_folderName) + { + if (is_object($this->imapClass)) + { + return ExecMethod("emailadmin.".$this->imapClass.".getMailboxString",$_folderName,3,$this->profileData); + return $this->imapClass->getMailboxString($_folderName); + } + else + { + return false; + } + } + + function getProfile($_profileID) + { + $profileData = $this->soemailadmin->getProfileList($_profileID); + $found = false; + if (is_array($profileData) && count($profileData)) + { + foreach($profileData as $n => $data) + { + if ($data['ProfileID'] == $_profileID) + { + $found = $n; + break; + } + } + } + if ($found === false) // no existing profile selected + { + if (is_array($profileData) && count($profileData)) { // if we have a profile use that + reset($profileData); + list($found,$data) = each($profileData); + $this->profileID = $_profileID = $data['profileID']; + } elseif ($GLOBALS['egw_info']['server']['smtp_server']) { // create a default profile, from the data in the api config + $this->profileID = $_profileID = $this->soemailadmin->addProfile(array( + 'description' => $GLOBALS['egw_info']['server']['smtp_server'], + 'defaultDomain' => $GLOBALS['egw_info']['server']['mail_suffix'], + 'organisationName' => '', + 'userDefinedAccounts' => '', + ),array( + 'smtpServer' => $GLOBALS['egw_info']['server']['smtp_server'], + 'smtpPort' => $GLOBALS['egw_info']['server']['smtp_port'], + 'smtpAuth' => '', + 'smtpType' => '1', + ),array( + 'imapServer' => $GLOBALS['egw_info']['server']['mail_server'] ? + $GLOBALS['egw_info']['server']['mail_server'] : $GLOBALS['egw_info']['server']['smtp_server'], + 'imapPort' => '143', + 'imapType' => '2', // imap + 'imapLoginType' => $GLOBALS['egw_info']['server']['mail_login_type'] ? + $GLOBALS['egw_info']['server']['mail_login_type'] : 'standard', + 'imapTLSEncryption' => '0', + 'imapTLSAuthentication' => '', + 'imapoldcclient' => '', + )); + $profileData[$found = 0] = array( + 'smtpType' => '1', + 'imapType' => '2', + ); + } + } + $fieldNames = array(); + if (isset($profileData[$found])) + { + $fieldNames = array_merge($this->SMTPServerType[$profileData[$found]['smtpType']]['fieldNames'], + $this->IMAPServerType[$profileData[$found]['imapType']]['fieldNames']); + } + $fieldNames[] = 'description'; + $fieldNames[] = 'defaultDomain'; + $fieldNames[] = 'profileID'; + $fieldNames[] = 'organisationName'; + $fieldNames[] = 'userDefinedAccounts'; + $fieldNames[] = 'ea_appname'; + $fieldNames[] = 'ea_group'; + + $profileData = $this->soemailadmin->getProfile($_profileID, $fieldNames); + $profileData['imapTLSEncryption'] = ($profileData['imapTLSEncryption'] == 'yes' ? 1 : (int)$profileData['imapTLSEncryption']); + return $profileData; + } + + function getProfileList($_profileID='') + { + return $this->soemailadmin->getProfileList($_profileID); + } + + function getSMTPServerTypes() + { + foreach($this->SMTPServerType as $key => $value) + { + $retData[$key] = $value['description']; + } + return $retData; + } + + function getUserProfile($_appName='', $_groups='') + { + $appName = ($_appName != '' ? $_appName : $GLOBALS['egw_info']['flags']['currentapp']); + if(!is_array($_groups)) { + // initialize with 0 => means no group id + $groups = array(0); + $userGroups = $GLOBALS['egw']->accounts->membership($GLOBALS['egw_info']['user']['account_id']); + foreach((array)$userGroups as $groupInfo) { + $groups[] = $groupInfo['account_id']; + } + } else { + $groups = $_groups; + } + + if($data = $this->soemailadmin->getUserProfile($appName, $groups)) { + + $eaPreferences =& CreateObject('emailadmin.ea_preferences'); + + // fetch the IMAP / incomming server data + $icClass = isset($this->IMAPServerType[$data['imapType']]) ? $this->IMAPServerType[$data['imapType']]['classname'] : 'defaultimap'; + + $icServer =& CreateObject('emailadmin.'.$icClass); + $icServer->encryption = ($data['imapTLSEncryption'] == 'yes' ? 1 : (int)$data['imapTLSEncryption']); + $icServer->host = $data['imapServer']; + $icServer->port = $data['imapPort']; + $icServer->validatecert = $data['imapTLSAuthentication'] == 'yes'; + $icServer->username = $GLOBALS['egw_info']['user']['account_lid']; + $icServer->password = $GLOBALS['egw_info']['user']['passwd']; + $icServer->loginType = $data['imapLoginType']; + $icServer->domainName = $data['defaultDomain']; + $icServer->loginName = $data['imapLoginType'] == 'standard' ? $GLOBALS['egw_info']['user']['account_lid'] : $GLOBALS['egw_info']['user']['account_lid'].'@'.$data['defaultDomain']; + $icServer->enableCyrusAdmin = ($data['imapEnableCyrusAdmin'] == 'yes'); + $icServer->adminUsername = $data['imapAdminUsername']; + $icServer->adminPassword = $data['imapAdminPW']; + $icServer->enableSieve = ($data['imapEnableSieve'] == 'yes'); + $icServer->sievePort = $data['imapSievePort']; + $eaPreferences->setIncomingServer($icServer); + + // fetch the SMTP / outgoing server data + $ogClass = isset($this->SMTPServerType[$data['smtpType']]) ? $this->SMTPServerType[$data['smtpType']]['classname'] : 'defaultsmtp'; + $ogServer =& CreateObject('emailadmin.'.$ogClass); + $ogServer->host = $data['smtpServer']; + $ogServer->port = $data['smtpPort']; + $ogServer->editForwardingAddress = ($data['editforwardingaddress'] == 'yes'); + $ogServer->smtpAuth = $data['smtpAuth'] == 'yes'; + if($ogServer->smtpAuth) { + if(!empty($data['ea_smtp_auth_username'])) { + $ogServer->username = $data['ea_smtp_auth_username']; + $ogServer->password = $data['ea_smtp_auth_password']; + } else { + $ogServer->username = $GLOBALS['egw_info']['user']['account_lid']; + $ogServer->password = $GLOBALS['egw_info']['user']['passwd']; + } + } + $eaPreferences->setOutgoingServer($ogServer); + + foreach($ogServer->getAccountEmailAddress($GLOBALS['egw_info']['user']['account_lid']) as $emailAddresses) + { + $identity =& CreateObject('emailadmin.ea_identity'); + $identity->emailAddress = $emailAddresses['address']; + $identity->realName = $emailAddresses['name']; + $identity->default = ($emailAddresses['type'] == 'default'); + $identity->organization = $data['organisationName']; + + $eaPreferences->setIdentity($identity); + } + + $eaPreferences->userDefinedAccounts = ($data['userDefinedAccounts'] == 'yes'); + + return $eaPreferences; + } + + return false; + } + + function getUserData($_accountID) + { + $userGroups = $GLOBALS['egw']->accounts->membership($_accountID); + $groups = array(0); + foreach((array)$userGroups as $groupInfo) { + $groups[] = $groupInfo['account_id']; + } + + if($userProfile = $this->getUserProfile('felamimail', $groups)) { + $icServer = $userProfile->getIncomingServer(0); + if(is_a($icServer, 'defaultimap') && $username = $GLOBALS['egw']->accounts->id2name($_accountID)) { + $icUserData = $icServer->getUserData($username); + } + + $ogServer = $userProfile->getOutgoingServer(0); + if(is_a($ogServer, 'defaultsmtp')) { + $ogUserData = $ogServer->getUserData($_accountID); + } + + return $icUserData + $ogUserData; + + } + + return false; + } + + function restoreSessionData() + { + $this->sessionData = $GLOBALS['egw']->session->appsession('session_data'); + $this->userSessionData = $GLOBALS['egw']->session->appsession('user_session_data'); + } + + function saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy) + { + if (is_object($this->smtpClass)) + { + #$smtpClass = &CreateObject('emailadmin.'.$this->smtpClass,$this->profileID); + #$smtpClass->saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy); + $this->smtpClass->saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy); + } + + } + + /** + * called by the validation hook in setup + * + * @param array $settings following keys: mail_server, mail_server_type {IMAP|IMAPS|POP-3|POP-3S}, + * mail_login_type {standard|vmailmgr}, mail_suffix (domain), smtp_server, smpt_port, smtp_auth_user, smtp_auth_passwd + */ + function setDefaultProfile($settings) + { + if (($profiles = $this->soemailadmin->getProfileList(0,true))) + { + $profile = array_shift($profiles); + } + else + { + $profile = array( + 'smtpType' => 1, + 'description' => 'default profile (created by setup)', + 'ea_appname' => '', + 'ea_group' => 0, + ); + } + foreach(array( + 'mail_server' => 'imapServer', + 'mail_server_type' => array( + 'imap' => array( + 'imapType' => 2, + 'imapPort' => 143, + 'imapTLSEncryption' => 0, + ), + 'imaps' => array( + 'imapType' => 2, + 'imapPort' => 993, + 'imapTLSEncryption' => 'yes', + ), + 'pop3' => array( + 'imapType' => 1, + 'imapPort' => 110, + 'imapTLSEncryption' => 0, + ), + 'pop3s' => array( + 'imapType' => 1, + 'imapPort' => 995, + 'imapTLSEncryption' => '1', + ), + ), + 'mail_login_type' => 'imapLoginType', + 'mail_suffix' => 'defaultDomain', + 'smtp_server' => 'smtpServer', + 'smpt_port' => 'smtpPort', + ) as $setup_name => $ea_name_data) + { + if (!is_array($ea_name_data)) + { + $profile[$ea_name_data] = $settings[$setup_name]; + } + else + { + foreach($ea_name_data as $setup_val => $ea_data) + { + if ($setup_val == $settings[$setup_name]) + { + foreach($ea_data as $var => $val) + { + if ($var != 'imapType' || $val != 2 || $profile[$var] < 3) // dont kill special imap server types + { + $profile[$var] = $val; + } + } + break; + } + } + } + } + $this->soemailadmin->updateProfile($profile); + //echo "

EMailAdmin profile update: ".print_r($profile,true)."

\n"; exit; + } + + function saveProfile($_globalSettings, $_smtpSettings, $_imapSettings) + { + if(!isset($_imapSettings['imapTLSAuthentication'])) { + $_imapSettings['imapTLSAuthentication'] = true; + } + + if(!isset($_globalSettings['profileID'])) { + $_globalSettings['ea_order'] = count($this->getProfileList()) + 1; + $this->soemailadmin->addProfile($_globalSettings, $_smtpSettings, $_imapSettings); + } else { + $this->soemailadmin->updateProfile($_globalSettings, $_smtpSettings, $_imapSettings); + } + $all = $_globalSettings+$_smtpSettings+$_imapSettings; + if (!$all['ea_group'] && !$all['ea_application']) // standard profile update eGW config + { + $new_config = array(); + foreach(array( + 'imapServer' => 'mail_server', + 'imapType' => 'mail_server_type', + 'imapLoginType' => 'mail_login_type', + 'defaultDomain' => 'mail_suffix', + 'smtpServer' => 'smtp_server', + 'smtpPort' => 'smpt_port', + ) as $ea_name => $config_name) + { + if (isset($all[$ea_name])) + { + if ($ea_name != 'imapType') + { + $new_config[$config_name] = $all[$ea_name]; + } + else // imap type + { + $new_config[$config_name] = ($all['imapType'] == 1 ? 'pop3' : 'imap').($all['imapTLSEncryption'] ? 's' : ''); + } + } + } + if (count($new_config)) + { + $config =& CreateObject('phpgwapi.config','phpgwapi'); + + foreach($new_config as $name => $value) + { + $config->save_value($name,$value,'phpgwapi'); + } + //echo "

eGW configuration update: ".print_r($new_config,true)."

\n"; + } + } + } + + function saveSessionData() + { + $GLOBALS['egw']->session->appsession('session_data','',$this->sessionData); + $GLOBALS['egw']->session->appsession('user_session_data','',$this->userSessionData); + } + + function saveUserData($_accountID, $_formData) { + $groups = array_merge(array(0),(array)$GLOBALS['egw']->accounts->memberships($_accountID,true)); + + if($userProfile = $this->getUserProfile('felamimail', $groups)) { + $ogServer = $userProfile->getOutgoingServer(0); + if(is_a($ogServer, 'defaultsmtp')) { + $ogServer->setUserData($_accountID, + (array)$_formData['mailAlternateAddress'], + (array)$_formData['mailForwardingAddress'], + $_formData['deliveryMode'], + $_formData['accountStatus'], + $_formData['mailLocalAddress'] + ); + } + + $icServer = $userProfile->getIncomingServer(0); + if(is_a($icServer, 'defaultimap') && $username = $GLOBALS['egw']->accounts->id2name($_accountID)) { + $icServer->setUserData($username, $_formData['quotaLimit']); + } + + // calling a hook to allow other apps to monitor the changes + $_formData['account_id'] = $_accountID; + $_formData['location'] = 'editaccountemail'; + $GLOBALS['egw']->hooks->process($_formData); + + return true; + } + + return false; + } + + function setOrder($_order) { + if(is_array($_order)) { + $this->soemailadmin->setOrder($_order); + } + } + + function updateAccount($_hookValues) { + if (is_object($this->imapClass)) { + #ExecMethod("emailadmin.".$this->imapClass.".updateAccount",$_hookValues,3,$this->profileData); + $this->imapClass->updateAccount($_hookValues); + } + + if (is_object($this->smtpClass)) { + #ExecMethod("emailadmin.".$this->smtpClass.".updateAccount",$_hookValues,3,$this->profileData); + $this->smtpClass->updateAccount($_hookValues); + } + } + + } +?> diff --git a/emailadmin/inc/class.cyrusimap.inc.php b/emailadmin/inc/class.cyrusimap.inc.php new file mode 100644 index 0000000000..019a0603ab --- /dev/null +++ b/emailadmin/inc/class.cyrusimap.inc.php @@ -0,0 +1,178 @@ +updateAccount($_hookValues); + } + + function deleteAccount($_hookValues) + { + if(!$this->enableCyrusAdmin) { + return false; + } + + if($this->_connected === true) { + $this->disconnect(); + } + + // we need a admin connection + if(!$this->openConnection(true)) { + return false; + } + + $username = $_hookValues['account_lid']; + + $mailboxName = $this->getUserMailboxString($username); + + // give the admin account the rights to delete this mailbox + if(PEAR::isError($this->setACL($mailboxName, $this->adminUsername, 'lrswipcda'))) { + $this->disconnect(); + return false; + } + + if(PEAR::isError($this->deleteMailbox($mailboxName))) { + $this->disconnect(); + return false; + } + + $this->disconnect(); + + return true; + } + + /** + * Create mailbox string from given mailbox-name and user-name + * + * @param string $_folderName='' + * @return string utf-7 encoded (done in getMailboxName) + */ + function getUserMailboxString($_username, $_folderName='') + { + $nameSpaces = $this->getNameSpaces(); + + if(!isset($nameSpaces['others'])) { + return false; + } + + $mailboxString = $nameSpaces['others'][0]['name'] . $_username . (!empty($_folderName) ? $nameSpaces['others'][0]['delimiter'] . $_folderName : ''); + + if($this->loginType == 'vmailmgr') { + $mailboxString .= '@'.$this->domainName; + } + + return $mailboxString; + } + + function setUserData($_username, $_quota) + { + if(!$this->enableCyrusAdmin) { + return false; + } + + if($this->_connected === true) { + $this->disconnect(); + } + + // create a admin connection + if(!$this->openConnection(true)) { + return false; + } + + $mailboxName = $this->getUserMailboxString($_username); + + if((int)$_quota > 0) { + // enable quota + $quota_value = $this->setStorageQuota($mailboxName, (int)$_quota*1024); + } else { + // disable quota + $quota_value = $this->setStorageQuota($mailboxName, -1); + } + + $this->disconnect(); + + return true; + + } + + function updateAccount($_hookValues) + { + if(!$this->enableCyrusAdmin) { + return false; + } + #_debug_array($_hookValues); + $username = $_hookValues['account_lid']; + if(isset($_hookValues['new_passwd'])) { + $userPassword = $_hookValues['new_passwd']; + } + + if($this->_connected === true) { + $this->disconnect(); + } + + // we need a admin connection + if(!$this->openConnection(true)) { + return false; + } + + // create the mailbox + $mailboxName = $this->getUserMailboxString($username, $mailboxName); + $folderInfo = $this->getMailboxes('', $mailboxName, true); + if(empty($folderInfo)) { + if(!PEAR::isError($this->createMailbox($mailboxName))) { + if(PEAR::isError($this->setACL($mailboxName, $username, "lrswipcda"))) { + # log error message + } + } + } + $this->disconnect(); + + # this part got moved to FeLaMiMail + #// we can only subscribe to the folders, if we have the users password + #if(isset($_hookValues['new_passwd'])) { + # // subscribe to the folders + # if($mbox = @imap_open($this->getMailboxString(), $username, $userPassword)) { + # foreach($this->createMailboxes as $mailboxName) { + # $mailboxName = 'INBOX' . ($mailboxName ? $this->getDelimiter() .$mailboxName : ''); + # imap_subscribe($mbox,$this->getMailboxString($mailboxName)); + # } + # imap_close($mbox); + # } else { + # # log error message + # } + #} + } + } +?> diff --git a/emailadmin/inc/class.dbmaildbmailuser.inc.php b/emailadmin/inc/class.dbmaildbmailuser.inc.php new file mode 100755 index 0000000000..df2651631f --- /dev/null +++ b/emailadmin/inc/class.dbmaildbmailuser.inc.php @@ -0,0 +1,192 @@ +updateAccount($_hookValues); + } + + #function deleteAccount($_hookValues) { + #} + function getUserData($_username) { + $userData = array(); + + if (!is_object($GLOBALS['egw']->ldap)) { + $GLOBALS['egw']->ldap =& CreateObject('phpgwapi.ldap'); + } + + $ds = $GLOBALS['egw']->ldap->ldapConnect( + $GLOBALS['egw_info']['server']['ldap_host'], + $GLOBALS['egw_info']['server']['ldap_root_dn'], + $GLOBALS['egw_info']['server']['ldap_root_pw'] + ); + + if(!is_resource($ds)) { + return false; + } + + $filter = '(&(objectclass=posixaccount)(uid='. $_username .')(dbmailGID='. sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])) .'))'; + $justthese = array('dn', 'objectclass', 'mailQuota'); + if($sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese)) { + + if($info = ldap_get_entries($ds, $sri)) { + if(isset($info[0]['mailquota'][0])) { + $userData['quotaLimit'] = $info[0]['mailquota'][0] / 1048576; + } + } + } + return $userData; + } + + function updateAccount($_hookValues) { + if(!$uidnumber = (int)$_hookValues['account_id']) { + return false; + } + + if (!is_object($GLOBALS['egw']->ldap)) { + $GLOBALS['egw']->ldap =& CreateObject('phpgwapi.ldap'); + } + + $ds = $GLOBALS['egw']->ldap->ldapConnect( + $GLOBALS['egw_info']['server']['ldap_host'], + $GLOBALS['egw_info']['server']['ldap_root_dn'], + $GLOBALS['egw_info']['server']['ldap_root_pw'] + ); + + if(!is_resource($ds)) { + return false; + } + + $filter = '(&(objectclass=posixaccount)(uidnumber='. $uidnumber .'))'; + $justthese = array('dn', 'objectclass', 'dbmailUID', 'dbmailGID', 'mail'); + $sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese); + + if($info = ldap_get_entries($ds, $sri)) { + if((!in_array('dbmailuser',$info[0]['objectclass']) && !in_array('dbmailUser',$info[0]['objectclass'])) && $info[0]['mail']) { + $newData['objectclass'] = $info[0]['objectclass']; + unset($newData['objectclass']['count']); + $newData['objectclass'][] = 'dbmailuser'; + sort($newData['objectclass']); + $newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + $newData['dbmailUID'] = (!empty($this->domainName)) ? $_hookValues['account_lid'] .'@'. $this->domainName : $_hookValues['account_lid']; + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + #print ldap_error($ds); + } + + return true; + } else { + $newData = array(); + $newData['dbmailUID'] = (!empty($this->domainName)) ? $_hookValues['account_lid'] .'@'. $this->domainName : $_hookValues['account_lid']; + $newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + print ldap_error($ds); + _debug_array($newData); + exit; + #return false; + } + } + } + + return false; + } + + function setUserData($_username, $_quota) { + if (!is_object($GLOBALS['egw']->ldap)) { + $GLOBALS['egw']->ldap =& CreateObject('phpgwapi.ldap'); + } + + $ds = $GLOBALS['egw']->ldap->ldapConnect( + $GLOBALS['egw_info']['server']['ldap_host'], + $GLOBALS['egw_info']['server']['ldap_root_dn'], + $GLOBALS['egw_info']['server']['ldap_root_pw'] + ); + + if(!is_resource($ds)) { + return false; + } + + $filter = '(&(objectclass=posixaccount)(uid='. $_username .'))'; + $justthese = array('dn', 'objectclass', 'dbmailGID', 'dbmailUID', 'mail'); + $sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese); + + if($info = ldap_get_entries($ds, $sri)) { + $validLDAPConfig = false; + if(in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) { + $validLDAPConfig = true; + } + + if(!in_array('dbmailuser',$info[0]['objectclass']) && !in_array('dbmailUser',$info[0]['objectclass']) && $info[0]['mail']) { + $newData['objectclass'] = $info[0]['objectclass']; + unset($newData['objectclass']['count']); + $newData['objectclass'][] = 'dbmailUser'; + sort($newData['objectclass']); + $newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + $newData['dbmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username; + + if(ldap_modify($ds, $info[0]['dn'], $newData)) { + $validLDAPConfig = true; + } + } else { + if ((in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) && !$info[0]['dbmailuid']) { + $newData = array(); + $newData['dbmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username; + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + #print ldap_error($ds); + #return false; + } + } + + if ((in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) && !$info[0]['dbmailgid']) { + $newData = array(); + $newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + #print ldap_error($ds); + #return false; + } + } + } + + if($validLDAPConfig) { + $newData = array(); + + if((int)$_quota >= 0) { + $newData['mailQuota'] = (int)$_quota * 1048576; + } else { + $newData['mailQuota'] = array(); + } + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + #print ldap_error($ds); + return false; + } + } + return true; + } + + return false; + } + + } +?> diff --git a/emailadmin/inc/class.dbmailqmailuser.inc.php b/emailadmin/inc/class.dbmailqmailuser.inc.php new file mode 100644 index 0000000000..f130103e38 --- /dev/null +++ b/emailadmin/inc/class.dbmailqmailuser.inc.php @@ -0,0 +1,170 @@ +updateAccount($_hookValues); + } + + #function deleteAccount($_hookValues) { + #} + function getUserData($_username) { + $userData = array(); + + if (!is_object($GLOBALS['egw']->ldap)) { + $GLOBALS['egw']->ldap =& CreateObject('phpgwapi.ldap'); + } + + $ds = $GLOBALS['egw']->ldap->ldapConnect( + $GLOBALS['egw_info']['server']['ldap_host'], + $GLOBALS['egw_info']['server']['ldap_root_dn'], + $GLOBALS['egw_info']['server']['ldap_root_pw'] + ); + + if(!is_resource($ds)) { + return false; + } + + $filter = '(&(objectclass=posixaccount)(uid='. $_username .')(qmailGID='. sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])) .'))'; + $justthese = array('dn', 'objectclass', 'mailQuota'); + if($sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese)) { + + if($info = ldap_get_entries($ds, $sri)) { + if(isset($info[0]['mailquota'][0])) { + $userData['quotaLimit'] = $info[0]['mailquota'][0] / 1048576; + } + } + } + return $userData; + } + + function updateAccount($_hookValues) { + if(!$uidnumber = (int)$_hookValues['account_id']) { + return false; + } + + if (!is_object($GLOBALS['egw']->ldap)) { + $GLOBALS['egw']->ldap =& CreateObject('phpgwapi.ldap'); + } + + $ds = $GLOBALS['egw']->ldap->ldapConnect( + $GLOBALS['egw_info']['server']['ldap_host'], + $GLOBALS['egw_info']['server']['ldap_root_dn'], + $GLOBALS['egw_info']['server']['ldap_root_pw'] + ); + + if(!is_resource($ds)) { + return false; + } + + $filter = '(&(objectclass=posixaccount)(uidnumber='. $uidnumber .'))'; + $justthese = array('dn', 'objectclass', 'qmailUID', 'qmailGID', 'mail'); + $sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese); + + if($info = ldap_get_entries($ds, $sri)) { + if(!in_array('qmailuser',$info[0]['objectclass']) && $info[0]['email']) { + $newData['objectclass'] = $info[0]['objectclass']; + unset($newData['objectclass']['count']); + $newData['objectclass'][] = 'qmailuser'; + sort($newData['objectclass']); + $newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + #$newData['qmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username; + + ldap_modify($ds, $info[0]['dn'], $newData); + + return true; + } else { + $newData = array(); + $newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + #$newData['qmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username; + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + #print ldap_error($ds); + #return false; + } + } + } + + return false; + } + + function setUserData($_username, $_quota) { + if (!is_object($GLOBALS['egw']->ldap)) { + $GLOBALS['egw']->ldap =& CreateObject('phpgwapi.ldap'); + } + + $ds = $GLOBALS['egw']->ldap->ldapConnect( + $GLOBALS['egw_info']['server']['ldap_host'], + $GLOBALS['egw_info']['server']['ldap_root_dn'], + $GLOBALS['egw_info']['server']['ldap_root_pw'] + ); + + if(!is_resource($ds)) { + return false; + } + + $filter = '(&(objectclass=posixaccount)(uid='. $_username .'))'; + $justthese = array('dn', 'objectclass', 'qmailGID', 'mail'); + $sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese); + + if($info = ldap_get_entries($ds, $sri)) { + #_debug_array($info); + if(!in_array('qmailuser',$info[0]['objectclass']) && $info[0]['email']) { + $newData['objectclass'] = $info[0]['objectclass']; + unset($newData['objectclass']['count']); + $newData['objectclass'][] = 'qmailuser'; + sort($newData['objectclass']); + $newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + + ldap_modify($ds, $info[0]['dn'], $newData); + } else { + if (in_array('qmailuser',$info[0]['objectclass']) && !$info[0]['qmailgid']) { + $newData = array(); + $newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])); + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + #print ldap_error($ds); + #return false; + } + } + } + + $newData = array(); + + if((int)$_quota >= 0) { + $newData['mailQuota'] = (int)$_quota * 1048576; + } else { + $newData['mailQuota'] = array(); + } + + if(!ldap_modify($ds, $info[0]['dn'], $newData)) { + #print ldap_error($ds); + return false; + } + + return true; + } + + return false; + } + + } +?> diff --git a/emailadmin/inc/class.defaultimap.inc.php b/emailadmin/inc/class.defaultimap.inc.php new file mode 100644 index 0000000000..a8a0e355dd --- /dev/null +++ b/emailadmin/inc/class.defaultimap.inc.php @@ -0,0 +1,497 @@ +mbAvailable = TRUE; + } + + $this->restoreSessionData(); + + // construtor for Net_IMAP stuff + $this->Net_IMAPProtocol(); + } + + /** + * adds a account on the imap server + * + * @param array $_hookValues + * @return bool true on success, false on failure + */ + function addAccount($_hookValues) + { + return true; + } + + /** + * updates a account on the imap server + * + * @param array $_hookValues + * @return bool true on success, false on failure + */ + function updateAccount($_hookValues) + { + return true; + } + + /** + * deletes a account on the imap server + * + * @param array $_hookValues + * @return bool true on success, false on failure + */ + function deleteAccount($_hookValues) + { + return true; + } + + function disconnect() + { + parent::disconnect(); + $this->_isConnected = false; + } + + /** + * converts a foldername from current system charset to UTF7 + * + * @param string $_folderName + * @return string the encoded foldername + */ + function encodeFolderName($_folderName) + { + if($this->mbAvailable) { + return mb_convert_encoding($_folderName, "UTF7-IMAP", $GLOBALS['egw']->translation->charset()); + } + + // if not + // we can encode only from ISO 8859-1 + return imap_utf7_encode($_folderName); + } + + /** + * returns the supported capabilities of the imap server + * return false if the imap server does not support capabilities + * + * @return array the supported capabilites + */ + function getCapabilities() + { + if(!is_array($this->sessionData['capabilities'][$this->host])) { + return false; + } + + return $this->sessionData['capabilities'][$this->host]; + } + + /** + * return the delimiter used by the current imap server + * + * @return string the delimimiter + */ + function getDelimiter() + { + return isset($this->sessionData['delimiter'][$this->host]) ? $this->sessionData['delimiter'][$this->host] : $this->mailboxDelimiter; + } + + /** + * Create transport string + * + * @return string the transportstring + */ + function _getTransportString() + { + if($this->encryption == 2) { + $connectionString = "tls://". $this->host; + } elseif($this->encryption == 3) { + $connectionString = "ssl://". $this->host; + } else { + // no tls + $connectionString = $this->host; + } + + return $connectionString; + } + + /** + * Create the options array for SSL/TLS connections + * + * @return string the transportstring + */ + function _getTransportOptions() + { + if($this->validatecert === false) { + if($this->encryption == 2) { + return array( + 'tls' => array( + 'verify_peer' => false, + 'allow_self_signed' => true, + ) + ); + } elseif($this->encryption == 3) { + return array( + 'ssl' => array( + 'verify_peer' => false, + 'allow_self_signed' => true, + ) + ); + } + } else { + if($this->encryption == 2) { + return array( + 'tls' => array( + 'verify_peer' => true, + 'allow_self_signed' => false, + ) + ); + } elseif($this->encryption == 3) { + return array( + 'ssl' => array( + 'verify_peer' => true, + 'allow_self_signed' => false, + ) + ); + } + } + + return null; + } + + /** + * Create mailbox string from given mailbox-name and user-name + * + * @param string $_folderName='' + * @return string utf-7 encoded (done in getMailboxName) + */ + function getUserMailboxString($_username, $_folderName='') + { + $nameSpaces = $this->getNameSpaces(); + + if(!isset($nameSpaces['others'])) { + return false; + } + + $username = $_username; + + if($this->loginType == 'vmailmgr') { + $username .= '@'. $this->domainName; + } + + $mailboxString = $nameSpaces['others'][0]['name'] . $username . (!empty($_folderName) ? $nameSpaces['others'][0]['delimiter'] . $_folderName : ''); + + return $mailboxString; + } + /** + * get list of namespaces + * + * @return array array containing information about namespace + */ + function getNameSpaces() + { + if(!$this->_connected) { + return false; + } + + if($this->hasCapability('NAMESPACE')) { + $nameSpace = $this->getNamespace(); + + $result = array(); + + $result['personal'] = $nameSpace['personal']; + + if(is_array($nameSpace['others'])) { + $result['others'] = $nameSpace['others']; + } + + if(is_array($nameSpace['shared'])) { + $result['shared'] = $nameSpace['shared']; + } + } else { + $delimiter = $this->getHierarchyDelimiter(); + + $result['personal'] = array( + 0 => array( + 'name' => '', + 'delimiter' => $delimiter + ) + ); + } + + return $result; + } + + /** + * returns the quota for given foldername + * gets quota for the current user only + * + * @param string $_folderName + * @return string the current quota for this folder + */ + # function getQuota($_folderName) + # { + # if(!is_resource($this->mbox)) { + # $this->openConnection(); + # } + # + # if(function_exists('imap_get_quotaroot') && $this->supportsCapability('QUOTA')) { + # $quota = @imap_get_quotaroot($this->mbox, $this->encodeFolderName($_folderName)); + # if(is_array($quota) && isset($quota['STORAGE'])) { + # return $quota['STORAGE']; + # } + # } + # + # return false; + # } + + /** + * return the quota for another user + * used by admin connections only + * + * @param string $_username + * @return string the quota for specified user + */ + function getQuotaByUser($_username) + { + $mailboxName = $this->getUserMailboxString($_username); + $storageQuota = $this->getStorageQuota($mailboxName); + + if(is_array($storageQuota) && isset($storageQuota['QMAX'])) { + return (int)$storageQuota['QMAX']; + } + + return false; + } + + /** + * returns information about a user + * currently only supported information is the current quota + * + * @param string $_username + * @return array userdata + */ + function getUserData($_username) + { + $this->openConnection(true); + + $userData = array(); + + if($quota = $this->getQuotaByUser($_username)) { + $userData['quotaLimit'] = $quota / 1024; + } + + $this->disconnect(); + + return $userData; + } + + /** + * opens a connection to a imap server + * + * @param bool $_adminConnection create admin connection if true + * + * @return resource the imap connection + */ + function openConnection($_adminConnection=false) + { + unset($this->_connectionErrorObject); + + if($_adminConnection) { + $username = $this->adminUsername; + $password = $this->adminPassword; + $options = ''; + $this->isAdminConnection = true; + } else { + $username = $this->loginName; + $password = $this->password; + $options = $_options; + $this->isAdminConnection = false; + } + + $this->setStreamContextOptions($this->_getTransportOptions()); + $this->setTimeout(20); + + if( PEAR::isError($status = $this->connect($this->_getTransportString(), $this->port, $this->encryption == 1)) ) { + $this->_connectionErrorObject = $status; + return false; + } + + if( PEAR::isError($status = $this->login($username, $password)) ) { + $this->_connectionErrorObject = $status; + return false; + } + + return true; + } + + /** + * restore session variable + * + */ + function restoreSessionData() + { + $this->sessionData = $GLOBALS['egw']->session->appsession('imap_session_data'); + } + + /** + * save session variable + * + */ + function saveSessionData() + { + $GLOBALS['egw']->session->appsession('imap_session_data','',$this->sessionData); + } + + /** + * set userdata + * + * @param string $_username username of the user + * @param int $_quota quota in bytes + * @return bool true on success, false on failure + */ + function setUserData($_username, $_quota) + { + return true; + } + + /** + * check if imap server supports given capability + * + * @param string $_capability the capability to check for + * @return bool true if capability is supported, false if not + */ + function supportsCapability($_capability) + { + return $this->hasCapability($_capability); + } + } +?> diff --git a/emailadmin/inc/class.defaultpop.inc.php b/emailadmin/inc/class.defaultpop.inc.php new file mode 100644 index 0000000000..ea623b3db4 --- /dev/null +++ b/emailadmin/inc/class.defaultpop.inc.php @@ -0,0 +1,94 @@ +profileData = $_profileData; + } + + function addAccount($_hookValues) + { + return true; + } + + function deleteAccount($_hookValues) + { + return true; + } + + function encodeFolderName($_folderName) + { + if($this->mbAvailable) + { + return mb_convert_encoding( $_folderName, "UTF7-IMAP", "ISO_8859-1" ); + } + + // if not + return imap_utf7_encode($_folderName); + } + + function getMailboxString($_folderName='') + { + if($this->profileData['imapTLSEncryption'] == 'yes' && + $this->profileData['imapTLSAuthentication'] == 'yes') + { + if(empty($this->profileData['imapPort'])) + $port = '995'; + else + $port = $this->profileData['imapPort']; + + $mailboxString = sprintf("{%s:%s/pop3/ssl}%s", + $this->profileData['imapServer'], + $port, + $_folderName); + } + // don't check cert + elseif($this->profileData['imapTLSEncryption'] == 'yes') + { + if(empty($this->profileData['imapPort'])) + $port = '995'; + else + $port = $this->profileData['imapPort']; + + $mailboxString = sprintf("{%s:%s/pop3/ssl/novalidate-cert}%s", + $this->profileData['imapServer'], + $port, + $_folderName); + } + // no tls + else + { + if(empty($this->profileData['imapPort'])) + $port = '110'; + else + $port = $this->profileData['imapPort']; + + $mailboxString = sprintf("{%s:%s/pop3}%s", + $this->profileData['imapServer'], + $port, + $_folderName); + } + + return $this->encodeFolderName($mailboxString); + } + + function updateAccount($_hookValues) + { + return true; + } + } +?> diff --git a/emailadmin/inc/class.defaultsmtp.inc.php b/emailadmin/inc/class.defaultsmtp.inc.php new file mode 100644 index 0000000000..11973d0270 --- /dev/null +++ b/emailadmin/inc/class.defaultsmtp.inc.php @@ -0,0 +1,85 @@ +defaultDomain = $defaultDomain ? $defaultDomain : $GLOBALS['egw_info']['server']['mail_suffix']; + } + + // add a account + function addAccount($_hookValues) + { + return true; + } + + // delete a account + function deleteAccount($_hookValues) + { + return true; + } + + function getAccountEmailAddress($_accountName) + { + $accountID = $GLOBALS['egw']->accounts->name2id($_accountName); + $emailAddress = $GLOBALS['egw']->accounts->id2name($accountID,'account_email'); + if(empty($emailAddress)) + $emailAddress = $_accountName.'@'.$this->defaultDomain; + + $realName = trim($GLOBALS['egw_info']['user']['firstname'] . (!empty($GLOBALS['egw_info']['user']['firstname']) ? ' ' : '') . $GLOBALS['egw_info']['user']['lastname']); + + return array( + array( + 'name' => $realName, + 'address' => $emailAddress, + 'type' => 'default' + ) + ); + } + + function getUserData($_uidnumber) { + $userData = array(); + + return $userData; + } + + function saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy) { + return true; + } + + function setUserData($_uidnumber, $_mailAlternateAddress, $_mailForwardingAddress, $_deliveryMode) { + return true; + } + + // update a account + function updateAccount($_hookValues) { + return true; + } + } +?> diff --git a/emailadmin/inc/class.ea_identity.inc.php b/emailadmin/inc/class.ea_identity.inc.php new file mode 100644 index 0000000000..aa8d19b7ec --- /dev/null +++ b/emailadmin/inc/class.ea_identity.inc.php @@ -0,0 +1,27 @@ + \ No newline at end of file diff --git a/emailadmin/inc/class.ea_preferences.inc.php b/emailadmin/inc/class.ea_preferences.inc.php new file mode 100644 index 0000000000..2032641aac --- /dev/null +++ b/emailadmin/inc/class.ea_preferences.inc.php @@ -0,0 +1,150 @@ +identities[$_id]; + } + else + { + return $this->identities; + } + } + + function getIncomingServer($_id = -1) + { + if($_id != -1) + { + return $this->ic_server[$_id]; + } + else + { + return $this->ic_server; + } + } + + function getOutgoingServer($_id = -1) + { + if($_id != -1) + { + return $this->og_server[$_id]; + } + else + { + return $this->og_server; + } + } + + function getPreferences() { + return $this->preferences; + } + + function getUserEMailAddresses() { + $identities = $this->getIdentity(); + + if(count($identities) == 0) { + return false; + } + + $userEMailAdresses = array(); + + foreach($identities as $identity) { + $userEMailAdresses[$identity->emailAddress] = $identity->realName; + } + + return $userEMailAdresses; + } + + function setIdentity($_identityObject, $_id = -1) + { + if(is_a($_identityObject, 'ea_identity')) + { + if($_id != -1) + { + $this->identities[$_id] = $_identityObject; + } + else + { + $this->identities[] = $_identityObject; + } + + return true; + } + + return false; + } + + function setIncomingServer($_serverObject, $_id = -1) + { + if(is_a($_serverObject, 'defaultimap')) + { + if($_id != -1) + { + $this->ic_server[$_id] = $_serverObject; + } + else + { + $this->ic_server[] = $_serverObject; + } + + return true; + } + + return false; + } + + function setOutgoingServer($_serverObject, $_id = -1) + { + if(is_a($_serverObject, 'defaultsmtp')) + { + if($_id != -1) + { + $this->og_server[$_id] = $_serverObject; + } + else + { + $this->og_server[] = $_serverObject; + } + + return true; + } + + return false; + } + + function setPreferences($_preferences) + { + $this->preferences = $_preferences; + + return true; + } + } +?> \ No newline at end of file diff --git a/emailadmin/inc/class.imap_client.inc.php b/emailadmin/inc/class.imap_client.inc.php new file mode 100644 index 0000000000..5c5ce8f37d --- /dev/null +++ b/emailadmin/inc/class.imap_client.inc.php @@ -0,0 +1,789 @@ + + * + * Based on code from: + * + auth.php (1.49) + * + imap_general.php (1.212) + * + strings.php (1.184.2.35) + * from the Squirrelmail project. + * Copyright (c) 1999-2005 The SquirrelMail Project Team + * + * See the enclosed file COPYING for license information (GPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/gpl.html. + * + * @author Michael Slusarz + * @since IMP 4.1 + * @package IMP + */ +class imap_client { + + /** + * The list of capabilities of the IMAP server. + * + * @var array + */ + var $_capability = null; + + /** + * The hostname of the IMAP server to connect to. + * + * @var string + */ + var $_host; + + /** + * The last message returned from the server. + * + * @var string + */ + var $_message; + + /** + * The namespace information. + * + * @var array + */ + var $_namespace = null; + + /** + * The port number of the IMAP server to connect to. + * + * @var string + */ + var $_port; + + /** + * The last response returned from the server. + * + * @var string + */ + var $_response; + + /** + * The unique session identifier ID to use when making an IMAP query. + * + * @var integer + */ + var $_sessionid = 1; + + /** + * The socket connection to the IMAP server. + * + * @var resource + */ + var $_stream; + + /** + * Are we using SSL to connect to the IMAP server? + * + * @var string + */ + var $_usessl = false; + + /** + * Are we using TLS to connect to the IMAP server? + * + * @var string + */ + var $_usetls = false; + + /** + * Constructor. + * + * @param string $host The address/hostname of the IMAP server. + * @param string $port The port to connect to on the IMAP server. + * @param string $protocol The protocol string (See, e.g., servers.php). + */ + function imap_client($host, $port, $protocol) + { + $this->_host = $host; + $this->_port = $port; + + /* Split apart protocol string to discover if we need to use either + * SSL or TLS. */ + $tmp = explode('/', strtolower($protocol)); + if (in_array('tls', $tmp)) { + $this->_usetls = true; + } elseif (in_array('ssl', $tmp)) { + $this->_usessl = true; + } + } + + /** + * Are we using TLS to connect and is it supported? + * + * @return mixed Returns true if TLS is being used to connect, false if + * is not, and PEAR_Error if we are attempting to use TLS + * and this version of PHP doesn't support it. + */ + function useTLS() + { + if ($this->_usetls) { + /* There is no way in PHP 4 to open a TLS connection to a + * non-secured port. See http://bugs.php.net/bug.php?id=26040 */ + if (!function_exists('stream_socket_enable_crypto')) { + return PEAR::raiseError(lang("To use a TLS connection, you must be running a version of PHP 5.1.0 or higher."), 'horde.error'); + } + } + + return $this->_usetls; + } + + /** + * Generates a new IMAP session ID by incrementing the last one used. + * + * @access private + * + * @return string IMAP session id of the form 'A000'. + */ + function _generateSid() + { + return sprintf("A%03d", $this->_sessionid++); + } + + /** + * Perform a command on the IMAP server. + * This command sets the $_response and $_message variable. + * + * @access private + * + * @param string $query IMAP command. + * + * @return mixed Returns PEAR_Error on error. On success, returns an + * array of the IMAP return text. + */ + function _runCommand($query) + { + $message = $response = array(); + + $sid = $this->_generateSid(); + fwrite($this->_stream, $sid . ' ' . $query . "\r\n"); + $tag_uid_a = explode(' ', trim($sid)); + $tag = $tag_uid_a[0]; + + $res = $this->_retrieveIMAPResponse($tag, $response, $message); + if (is_a($res, 'PEAR_Error')) { + $this->_message = $this->_response = ''; + return $res; + } + + /* retrieve the response and the message */ + $this->_response = $response[$tag]; + $this->_message = $message[$tag]; + + return (!empty($res[$tag])) ? $res[$tag][0] : $res[$tag]; + } + + /** + * Custom fgets function - get a line from the IMAP server no matter how + * large the line may be. + * + * @access private + * + * @return string The next line in the IMAP stream. + */ + function _fgets() + { + $buffer = 4096; + $offset = 0; + $results = ''; + + while (strpos($results, "\r\n", $offset) === false) { + if (!($read = fgets($this->_stream, $buffer))) { + $results = ''; + break; + } + if ($results != '') { + $offset = strlen($results) - 1; + } + $results .= $read; + } + + return $results; + } + + /** + * Reads the output from the IMAP stream. + * + * @access private + * + * @param string $tag The IMAP SID tag. + * @param array $response The response information. + * @param array $message The message information. + * + * @return mixed PEAR_Error on error, response string on success. + */ + function _retrieveIMAPResponse($tag, &$response, &$message) + { + $aResponse = $read = ''; + $data = $resultlist = array(); + $i = 0; + + $read = $this->_fgets(); + while ($read) { + $char = $read{0}; + switch ($char) { + case '+': + default: + $read = $this->_fgets(); + break; + + case $tag{0}: + /* Get the command. */ + $arg = ''; + $i = strlen($tag) + 1; + $s = substr($read, $i); + if (($j = strpos($s, ' ')) || ($j = strpos($s, "\n"))) { + $arg = substr($s, 0, $j); + } + $found_tag = substr($read, 0, $i - 1); + if ($found_tag) { + $response[$found_tag] = $arg; + $message[$found_tag] = trim(substr($read, $i + strlen($arg))); + if (!empty($data)) { + $resultlist[] = $data; + } + $aResponse[$found_tag] = $resultlist; + $data = $resultlist = array(); + if ($found_tag == $tag) { + break 2; + } + break; + } + + $read = $this->_fgets(); + if ($read === false) { + break 2; /* switch while */ + } + break; + + case '*': + if (preg_match('/^\*\s\d+\sFETCH/', $read)) { + /* check for literal */ + $s = substr($read, -3); + $fetch_data = array(); + do { + /* Outer loop: continue until next untagged fetch + or tagged reponse. */ + do { + /* Innerloop for fetching literals. with this + loop we prohibit that literal responses appear + in the outer loop so we can trust the untagged + and tagged info provided by $read. */ + if ($s === "}\r\n") { + $j = strrpos($read, '{'); + $iLit = substr($read, $j + 1, -3); + $fetch_data[] = $read; + $sLiteral = fread($this->_stream, $iLit); + if ($sLiteral === false) { /* error */ + break 4; /* while while switch while */ + } + /* backwards compattibility */ + $aLiteral = explode("\n", $sLiteral); + + unset($sLiteral); + + foreach ($aLiteral as $line) { + $fetch_data[] = $line ."\n"; + } + + unset($aLiteral); + + /* Next fgets belongs to this fetch because + we just got the exact literalsize and data + must follow to complete the response. */ + $read = $this->_fgets(); + if ($read === false) { /* error */ + break 4; /* while while switch while */ + } + } + $fetch_data[] = $read; + + /* Retrieve next line and check in the while + statements if it belongs to this fetch + response. */ + $read = $this->_fgets(); + if ($read === false) { /* error */ + break 4; /* while while switch while */ + } + /* Check for next untagged reponse and break. */ + if ($read{0} == '*') { + break 2; + } + $s = substr($read, -3); + } while ($s === "}\r\n"); + + $s = substr($read,-3); + } while (($read{0} !== '*') && + (substr($read, 0, strlen($tag)) !== $tag)); + + $resultlist[] = $fetch_data; + unset($fetch_data); + } else { + $s = substr($read, -3); + do { + if ($s === "}\r\n") { + $j = strrpos($read, '{'); + $iLit = substr($read, $j + 1, -3); + $data[] = $read; + $sLiteral = fread($this->_stream, $iLit); + if ($sLiteral === false) { /* error */ + $read = false; + break 3; /* while switch while */ + } + $data[] = $sLiteral; + $data[] = $this->_fgets(); + } else { + $data[] = $read; + } + $read = $this->_fgets(); + if ($read === false) { + break 3; /* while switch while */ + } elseif ($read{0} == '*') { + break; + } + $s = substr($read,-3); + } while ($s === "}\r\n"); + break; + } + break; + } + } + + /* Error processing in case $read is false. */ + if ($read === false) { + /* Try to retrieve an untagged bye respons from the results. */ + $sResponse = array_pop($data); + if (($sResponse !== NULL) && + (strpos($sResponse,'* BYE') !== false)) { + return PEAR::raiseError(lang("IMAP server closed the connection."), 'horde.error'); + } else { + return PEAR::raiseError(lang("Connection dropped by IMAP server."), 'horde.error'); + } + } + + switch ($response[$tag]) { + case 'OK': + return $aResponse; + break; + + case 'NO': + /* Ignore this error from M$ exchange, it is not fatal (aka bug). */ + if (strstr($message[$tag], 'command resulted in') === false) { + return PEAR::raiseError(sprintf(lang("Could not complete request. Reason Given: %s"), $message[$tag]), 'horde.error', null, null, $response[$tag]); + } + break; + + case 'BAD': + return PEAR::raiseError(sprintf(lang("Bad or malformed request. Server Responded: %s"), $message[$tag]), 'horde.error', null, null, $response[$tag]); + break; + + case 'BYE': + return PEAR::raiseError(sprintf(lang("IMAP Server closed the connection. Server Responded: %s"), $message[$tag]), 'horde.error', null, null, $response[$tag]); + break; + + default: + return PEAR::raiseError(sprintf(lang("Unknown IMAP response from the server. Server Responded: %s"), $message[$tag]), 'horde.error', null, null, $response[$tag]); + break; + } + } + + /** + * Connects to the IMAP server. + * + * @access private + * + * @return mixed Returns true on success, PEAR_Error on error. + */ + function _createStream() + { + if (($this->_usessl || $this->_usetls) && + !function_exists('openssl_pkcs7_sign')) { + return PEAR::raiseError(lang("If using SSL or TLS, you must have the PHP openssl extension loaded."), 'horde.error'); + } + + if ($res = $this->useTLS()) { + if (is_a($res, 'PEAR_Error')) { + return $res; + } else { + $this->_host = $this->_host . ':' . $this->_port; + } + } + + if ($this->_usessl) { + $this->_host = 'ssl://' . $this->_host; + } + $error_number = $error_string = ''; + $timeout = 10; + + if ($this->_usetls) { + $this->_stream = stream_socket_client($this->_host, $error_number, $error_string, $timeout); + if (!$this->_stream) { + return PEAR::raiseError(sprintf(lang("Error connecting to IMAP server. %s : %s."), $error_number, $error_string), 'horde.error'); + } + + /* Disregard any server information returned. */ + fgets($this->_stream, 1024); + + /* Send the STARTTLS command. */ + fwrite($this->_stream, $this->_generateSid() . " STARTTLS\r\n"); + + /* Disregard any server information returned. */ + fgets($this->_stream, 1024); + + /* Switch over to a TLS connection. */ + $res = stream_socket_enable_crypto($this->_stream, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); + if (!$res) { + return PEAR::raiseError(lang("Could not open secure connection to the IMAP server. %s : %s."), 'horde.error'); + } + } else { + $this->_stream = fsockopen($this->_host, $this->_port, $error_number, $error_string, $timeout); + } + + /* Do some error correction */ + if (!$this->_stream) { + return PEAR::raiseError(sprintf(lang("Error connecting to IMAP server. %s : %s."), $error_number, $error_string), 'horde.error'); + } + + /* Disregard any server information. */ + fgets($this->_stream, 1024); + } + + /** + * Log the user into the IMAP server. + * + * @param string $username Username. + * @param string $password Encrypted password. + * + * @return mixed True on success, PEAR_Error on error. + */ + function login($username, $password) + { + $res = $this->_createStream(); + if (is_a($res, 'PEAR_Error')) { +#LK Horde::logMessage($res, __FILE__, __LINE__, PEAR_LOG_ERR); + return $res; + } + + $imap_auth_mech = array(); + + /* Use md5 authentication, if available. But no need to use special + * authentication if we are already using an encrypted connection. */ + $auth_methods = $this->queryCapability('AUTH'); + if ((!$this->_usessl || !$this->_usetls) && !empty($auth_methods)) { + if (in_array('CRAM-MD5', $auth_methods)) { + $imap_auth_mech[] = 'cram-md5'; + } + if (in_array('DIGEST-MD5', $auth_methods)) { + $imap_auth_mech[] = 'digest-md5'; + } + } + + /* Next, try 'PLAIN' authentication. */ + if (!empty($auth_methods) && in_array('PLAIN', $auth_methods)) { + $imap_auth_mech[] = 'plain'; + } + + /* Fall back to 'LOGIN' if available. */ + if (!$this->queryCapability('LOGINDISABLED')) { + $imap_auth_mech[] = 'login'; + } + + if (empty($imap_auth_mech)) { + return PEAR::raiseError(lang("No supported IMAP authentication method could be found."), 'horde.error'); + } + + foreach ($imap_auth_mech as $method) { + $res = $this->_login($username, $password, $method); + if (!is_a($res, 'PEAR_Error')) { + return true; + } + } + + return $res; + } + + /** + * Log the user into the IMAP server. + * + * @access private + * + * @param string $username Username. + * @param string $password Encrypted password. + * @param string $method IMAP login method. + * + * @return mixed True on success, PEAR_Error on error. + */ + function _login($username, $password, $method) + { + switch ($method) { + case 'cram-md5': + case 'digest-md5': + /* If we don't have Auth_SASL package install, return error. */ + if (!@include_once 'Auth/SASL.php') { + return PEAR::raiseError(lang("CRAM-MD5 or DIGEST-MD5 requires the Auth_SASL package to be installed."), 'horde.error'); + } + + $tag = $this->_generateSid(); + fwrite($this->_stream, $tag . ' AUTHENTICATE ' . strtoupper($method) . "\r\n"); + $challenge = explode(' ', $this->_fgets(), 3); + + if ($method == 'cram-md5') { + $auth_sasl = Auth_SASL::factory('crammd5'); + $response = $auth_sasl->getResponse($username, $password, base64_decode($challenge[1])); + fwrite($this->_stream, base64_encode($response) . "\r\n"); + $read = $this->_fgets(); + } elseif ($method == 'digest-md5') { + $auth_sasl = Auth_SASL::factory('digestmd5'); + $response = $auth_sasl->getResponse($username, $password, base64_decode($challenge[1]), $this->_host, 'imap'); + fwrite($this->_stream, base64_encode($response) . "\r\n"); + $response = explode(' ', $this->_fgets()); + $response = base64_decode($response[1]); + if (strpos($response, 'rspauth=') === false) { + return PEAR::raiseError(lang("Unexpected response from server to Digest-MD5 response."), 'horde.error'); + } + fwrite($this->_stream, "\r\n"); + $read = $this->_fgets(); + } else { + return PEAR::raiseError(lang("The IMAP server does not appear to support the authentication method selected. Please contact your system administrator."), 'horde.error'); + } + break; + + case 'login': + $tag = $this->_generateSid(); + $query = $tag . " LOGIN $username {" . strlen($password) . "}\r\n"; + fwrite($this->_stream, $query); + $read = $this->_fgets(); + if (substr($read, 0, 1) == '+') { + fwrite($this->_stream, "$password\r\n"); + $read = $this->_fgets(); + } else { + return PEAR::raiseError(lang("Unexpected response from server to LOGIN command."), 'horde.error'); + } + break; + + case 'plain': + $tag = $this->_generateSid(); + $sasl = $this->queryCapability('SASL-IR'); + $auth = base64_encode("$username\0$username\0$password"); + if ($sasl) { + // IMAP Extension for SASL Initial Client Response + // + $query = $tag . " AUTHENTICATE PLAIN $auth\r\n"; + fwrite($this->_stream, $query); + $read = $this->_fgets(); + } else { + $query = $tag . " AUTHENTICATE PLAIN\r\n"; + fwrite($this->_stream, $query); + $read = $this->_fgets(); + if (substr($read, 0, 1) == '+') { + fwrite($this->_stream, "$auth\r\n"); + $read = $this->_fgets(); + } else { + return PEAR::raiseError(lang("Unexpected response from server to AUTHENTICATE command."), 'horde.error'); + } + } + break; + } + + /* Check for failed login. */ + $results = explode(' ', $read, 3); + $response = $results[1]; + + if ($response != 'OK') { + $message = !empty($results[2]) ? htmlspecialchars($results[2]) : lang("No message returned."); + + switch ($response) { + case 'NO': + return PEAR::raiseError(sprintf(lang("Bad login name or password."), $message), 'horde.error'); + + case 'BAD': + default: + return PEAR::raiseError(sprintf(lang("Bad request: %s"), $message), 'horde.error'); + } + } + + return true; + } + + /** + * Log out of the IMAP session. + */ + function logout() + { + /* Logout is not valid until the server returns 'BYE' + * If we don't have an imap_ stream we're already logged out */ + if (isset($this->_stream) && $this->_stream) { + $this->_runCommand('LOGOUT'); + } + } + + /** + * Get the CAPABILITY string from the IMAP server. + * + * @access private + */ + function _capability() + { + if (!is_null($this->_capability)) { + return; + } + + $this->_capability = array(); + $read = $this->_runCommand('CAPABILITY'); + if (is_a($read, 'PEAR_Error')) { +#LK Horde::logMessage($read, __FILE__, __LINE__, PEAR_LOG_ERR); + return; + } + + $c = explode(' ', trim($read[0])); + for ($i = 2; $i < count($c); $i++) { + $cap_list = explode('=', $c[$i]); + if (isset($cap_list[1])) { + if (!isset($this->_capability[$cap_list[0]])) { + $this->_capability[$cap_list[0]] = array(); + } + $this->_capability[$cap_list[0]][] = $cap_list[1]; + } else { + $this->_capability[$cap_list[0]] = true; + } + } + } + + /** + * Returns whether the IMAP server supports the given capability. + * + * @param string $capability The capability string to query. + * + * @param mixed True if the server supports the queried capability, + * false if it doesn't, or an array if the capability can + * contain multiple values. + */ + function queryCapability($capability) + { + $this->_capability(); + return isset($this->_capability[$capability]) ? $this->_capability[$capability] : false; + } + + /** + * Get the NAMESPACE information from the IMAP server. + * + * @param array $additional If the server supports namespaces, any + * additional namespaces to add to the + * namespace list that are not broadcast by + * the server. + * + * @return array An array with the following format: + *
+     * Array
+     * (
+     *   [foo] => Array
+     *   (
+     *     [name] => (string)
+     *     [delimiter] => (string)
+     *     [type] => 'personal' | 'others' | 'shared'
+     *     [hidden] => (boolean)
+     *   )
+     *
+     *   [foo2] => Array
+     *   (
+     *     ...
+     *   )
+     * )
+     * 
+ */ + function namespace($additional = array()) + { + if (!is_null($this->_namespace)) { + return $this->_namespace; + } + + $namespace_array = array( + 1 => 'personal', + 2 => 'others', + 3 => 'shared' + ); + + if ($this->queryCapability('NAMESPACE')) { + /* + * According to rfc2342 response from NAMESPACE command is: + * * NAMESPACE (PERSONAL NAMESPACES) (OTHER_USERS NAMESPACE) (SHARED NAMESPACES) + */ + $read = $this->_runCommand('NAMESPACE'); + if (is_a($read, 'PEAR_Error')) { +#LK Horde::logMessage($read, __FILE__, __LINE__, PEAR_LOG_ERR); + return $read; + } + + if (eregi('\\* NAMESPACE +(\\( *\\(.+\\) *\\)|NIL) +(\\( *\\(.+\\) *\\)|NIL) +(\\( *\\(.+\\) *\\)|NIL)', $read[0], $data)) { + for ($i = 1; $i <= 3; $i++) { + if ($data[$i] == 'NIL') { + continue; + } + $pna = explode(')(', $data[$i]); + while (list($k, $v) = each($pna)) { + $lst = explode('"', $v); + $delimiter = (isset($lst[3])) ? $lst[3] : ''; + $this->_namespace[$lst[1]] = array('name' => $lst[1], 'delimiter' => $delimiter, 'type' => $namespace_array[$i], 'hidden' => false); + } + } + } + + foreach ($additional as $val) { + /* Skip namespaces if we have already auto-detected them. + * Also, hidden namespaces cannot be empty. */ + $val = trim($val); + if (empty($val) || isset($this->_namespace[$val])) { + continue; + } + $read = $this->_runCommand('LIST "" "' . $val . '"'); + if (is_a($read, 'PEAR_Error')) { +#LK Horde::logMessage($read, __FILE__, __LINE__, PEAR_LOG_ERR); + return $res; + } + if (!empty($read) && + preg_match("/^\* LIST \(.*\) \"(.*)\" \"?(.*?)\"?\s*$/", $read[0], $data) && + ($data[2] == $val)) { + $this->_namespace[$val] = array('name' => $val, 'delimiter' => $data[1], 'type' => $namespace_array[3], 'hidden' => true); + } + } + } else { + $res = $this->_runCommand('LIST "" ""'); + if (is_a($res, 'PEAR_Error')) { +#LK Horde::logMessage($res, __FILE__, __LINE__, PEAR_LOG_ERR); + return $res; + } + $quote_position = strpos($res[0], '"'); + $this->_namespace[''] = array('name' => '', 'delimiter' => substr($res[0], $quote_position + 1 , 1), 'type' => $namespace_array[1], 'hidden' => false); + } + + return $this->_namespace; + } + + /** + * Determines whether the IMAP search command supports the optional + * charset provided. + * + * @param string $charset The character set to test. + * + * @return boolean True if the IMAP search command supports the charset. + */ + function searchCharset($charset) + { + $this->_runCommand('SELECT INBOX'); + $read = $this->_runCommand('SEARCH CHARSET ' . $charset . ' TEXT "charsettest" 1'); + return !is_a($read, 'PEAR_Error'); + } + +} diff --git a/emailadmin/inc/class.pleskimap.inc.php b/emailadmin/inc/class.pleskimap.inc.php new file mode 100644 index 0000000000..3da5b81eac --- /dev/null +++ b/emailadmin/inc/class.pleskimap.inc.php @@ -0,0 +1,463 @@ + as with the "LDAP, Postfix & Cyrus" plugin the plesk one creates mail * +* users and manages passwords, aliases, forwards and quota from within * +* eGroupWare - no need to additionally visit the plesk interface anymore * +* ------------------------------------------------------------------------- * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; version 2 of the License. * +\***************************************************************************/ +/* $Id$ */ + +include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.defaultimap.inc.php"); + +class pleskimap extends defaultimap +{ + /** + * @var string $psa_mail_script full path to Plesk's mail.sh (Linux including sudo!) or mail.exe (Windows) interface + */ + var $psa_mail_script = '/usr/bin/sudo /usr/local/psa/bin/mail.sh'; // 'C:/psa/bin/mail.exe' + /** + * @var boolean $allways_create_mailbox true = allways create a mailbox on user creation, + * false = only if a local email (no forward) is given. To use felamimail you need a mailbox! + */ + var $allways_create_mailbox = true; + /** + * @var array $create_folders=array('Send','Trash') folders to automatic create and subscribe on account creation + */ + var $create_folders = array('Sent','Trash'); + /** + * @var string/boolean $error string with last error-message or false + */ + var $error = false; + + function pleskimap($profileData) + { + $this->defaultimap($profileData); // calling the parent constructor + } + + /** + * Create a full mailbox or just forward, depending on the given email address + * If email matches the default domain, we create a full mailbox, otherwise we create a forward + * + * @param array $hookValues + * @param string $action='create' + * @return boolean true on success, false otherwise + */ + function addAccount($hookValues,$action='create') + { + //echo "

pleskimap::addAccount(".print_r($hookValues,true).")

\n"; + + $defaultDomain = $this->profileData['defaultDomain'] ? $this->profileData['defaultDomain'] : + $GLOBALS['egw_info']['server']['mail_suffix']; + + $localEmail = $hookValues['account_lid'].'@'.$defaultDomain; + $aliases = $forwards = array(); + + // is the given email a local address from our default domain? + if (substr($hookValues['account_email'],-1-strlen($defaultDomain)) != '@'.$defaultDomain) + { + $forwards[] = $hookValues['account_email']; + } + elseif ($hookValues['account_email'] != $localEmail) + { + $aliases[] = $hookValues['account_email']; + } + // add a default alias with Firstname.Lastname + if (!in_array($alias=$hookValues['account_firstname'].'.'.$hookValues['account_lastname'],$aliases) && + $this->is_email($alias)) + { + $aliases[] = $alias; + } + $info = $this->plesk_mail($action,$hookValues['account_lid'],$hookValues['account_passwd'], + $action != 'create' && !$aliases ? null : $aliases,$forwards,$this->allways_create_mailbox); + + if (!$info['SUCCESS']) return false; + + if ($forwards && !$this->allways_create_mailbox) return true; // no mailbox created, only a forward + + // create Sent & Trash mailboxes and subscribe them + if(($mbox = @imap_open ($this->getMailboxString(),$localEmail,$hookValues['account_passwd']))) + { + $list = imap_getmailboxes($mbox, $this->getMailboxString(),'INBOX'); + $delimiter = isset($list[0]->delimiter) ? $list[0]->delimiter : '.'; + imap_subscribe($mbox,$this->getMailboxString('INBOX')); + + foreach($this->create_folders as $folder) + { + $mailBoxName = 'INBOX'.$delimiter.$folder; + if(imap_createmailbox($mbox,imap_utf7_encode('{'.$this->profileData['imapServer'].'}'.$mailBoxName))) + { + imap_subscribe($mbox,$this->getMailboxString($mailBoxName)); + } + } + imap_close($mbox); + } + return true; + } + + function deleteAccount($hookValues) + { + //echo "

pleskimap::deleteAccount(".print_r($hookValues,true).")

\n"; + + return $this->plesk_mail('remove',$hookValues['account_lid']); + } + + function updateAccount($hookValues) + { + //echo "

pleskimap::updateAccount(".print_r($hookValues,true).")

\n"; + + if($hookValues['account_lid'] != $hookValues['old_loginid']) + { + $this->error = lang("Plesk can't rename users --> request ignored"); + return false; + } + return $this->addAccount($hookValues,'update'); + } + + /** + * Read data from the mail account + * + * @param string/int $accountID + * @return array/boolean with keys mailLocalAddress, mailAlternateAddress, accountStatus, mailRoutingAddress, ... or false if not found + */ + function getUserData($accountID) + { + //echo "

pleskimap::getUserData('$accountID')

\n"; + + if (!($info = $this->plesk_mail('info',$accountID))) return false; + //_debug_array($info); + + $data = array( + 'mailLocalAddress' => $info['Mailname'].'@'.$info['Domain'], + 'mailAlternateAddress' => $info['Alias(es)'] ? explode(' ',$info['Alias(es)']) : array(), + 'accountStatus' => $info['Mailbox'] == 'true' || $info['Redirect'] == 'true' ? 'active' : 'disabled', + 'mailRoutingAddress' => $info['Redirect address'] ? explode(' ',$info['Redirect address']) : false, + 'deliveryMode' => $info['Redirect'] == 'true' && $info['Mailbox'] == 'false' ? 'forwardOnly' : '', +// 'qmailDotMode' => false, +// 'deliveryProgramPath' => false, + 'quotaLimit' => $info['Mbox quota'] == 'Unlimited' ? '' : $info['Mbox quota']/1024.0, + ); + //_debug_array($data); + return $data; + } + + /** + * Save mail account data + * + * @param string/int $accountID + * @param array $accountData with keys mailLocalAddress, mailAlternateAddress, accountStatus, mailRoutingAddress, ... + * @return boolean true on success, false otherwise + */ + function saveUserData($accountID, $accountData) + { + //echo "

pleskimap::saveUserData('$accountID',".print_r($accountData,true).")

\n"; + + // not used: $accountData['accountStatus']=='active', $accountData['qmailDotMode'], $accountData['deliveryProgramPath'] + $info = $this->plesk_mail('update',$accountID,null, + $accountData['mailAlternateAddress'] ? $accountData['mailAlternateAddress'] : array(), + $accountData['mailRoutingAddress'] ? $accountData['mailRoutingAddress'] : array(), + empty($accountData['deliveryMode']), + 1024*(float)$accountData['quotaLimit'],$accountData['accountStatus']=='active'); + + if (!$info['SUCCSESS']) + { + if ($info) $this->error = implode(', ',$info); + return false; + } + return true; + } + + /** + * call plesk's mail command line interface + * + * Usage: mail.sh command [options] + * + * Available commands: + * --create or -c @ creates mail account + * --update or -u @ updates mail account parameters + * --remove or -r @ removes mail account + * --info or -i @ retrieves mail account information + * --on enables mail service for domain + * --off disables mail service for domain + * --help or -h displays this help page + * + * Available options: + * -cp_access enables control panel access (default: + * true) + * -mailbox creates/removes mailbox + * -passwd sets mailbox password [see the note + * below for details] + * -boxpass obsolete alias for option "passwd" + * (this option may be removed from + * future releases) + * -passwd_type specifies the type of mailbox + * password, ignored if no password + * specified [see the note below for + * details] + * -mbox_quota limits the mailbox quota to the + * desired amount + * -boxquota obsolete alias for option "mbox_quota" + * (this option may be removed from + * future releases) + * -aliases : adds or deletes mail + * alias(es) to/from mailname + * -mgroups : adds or removes mail name + * to/from mail group + * -redirect switches mail redirect on/off + * -rediraddr sets redirect to address (required if + * redirect is enabled) + * -group switches mail group on/off + * -groupmem : adds/removes address(-es) + * to/from mail group + * -repo : adds/removes file to/from + * attachments repository + * [deprecated, use + * autoresponder.sh] + * -autorsp switches all autoresponders on/off + * [deprecated, use autoresponder.sh] + * -autoname autoresponder name (required for all + * autoresponder options) [deprecated, + * use autoresponder.sh] + * -autostatus switches on/off autoresponder with + * specified name (true) [deprecated, + * use autoresponder.sh] + * -autoreq : or defines the condition + * for the autoresponder + * to be activated + * whether the + * specified pattern is + * encountered in the + * subject or body, or + * to respond always + * [deprecated, use + * autoresponder.sh] + * -autosubj the subject line to be set up into + * autoresponder ("Re: ") or a custom string + * [deprecated, use autoresponder.sh] + * -auto_replyto return address that will be set up + * into the autoresponder's messages + * [deprecated, use autoresponder.sh] + * -autotext autoresponder message text + * [deprecated, use autoresponder.sh] + * -autoatch : adds/removes autoresponder + * attachment files + * [deprecated, use + * autoresponder.sh] + * -autofrq defines the maximum number of + * responses to a unique e-mail address + * per day [deprecated, use + * autoresponder.sh] + * -autostor defines the number of unique addresses + * to be stored for autoresponder + * [deprecated, use autoresponder.sh] + * -autored defines the e-mail address to forward + * all incoming mail to [deprecated, use + * autoresponder.sh] + * -multiple-sessions allow multiple sessions + * + * Note: + * For security reasons, you can transfer not encrypted passwords via environment + * variable PSA_PASSWORD, by specifying the empty value in the command line for + * the passwd arguments (like " -passwd ''") and setting the password value in + * the PSA_PASSWORD variable. + * Similarly, you can transfer the crypted password via the environment variable + * PSA_CRYPTED_PASSWORD, by specifying the empty value in the command line for + * the passwd arguments (like " -passwd ''") and by setting the password value in + * the PSA_CRYPTED_PASSWORD variable. + * + * Version: psa v7.5.0_build75041208.07 os_SuSE 9.1 + * + * mail.sh --info account@domain.com + * Mailname: account + * Domain: domain.com + * Alias(es): Firstname.Lastname + * CP Access: true + * Mailbox: true + * Password: geheim + * Password type: plain + * Mbox quota: Unlimited + * Redirect: false + * Mailgroup: false + * File repository: Empty + * Autoresponder: false + * Antivirus mail + * checking: Disabled + * + * SUCCESS: Gathering information for 'account@domain.com' complete + * + * mail.sh --info bogus@domain.com + * An error occured during getting mailname information: Mailname 'bogus@domain.com' doesn't exists + * + * @param string $action 'info', 'create', 'update' or 'remove' + * @param string/int $account account_lid or numerical account_id + * @param string $password=null string with password or null to not change + * @param array $aliases=null array with aliases or null to not change the aliases + * @param array $forwards=null array of email address to forward or null to not change + * @param boolean $keepLocalCopy=null if forwarding keep a local copy or not, null = dont change + * @param int $quota_kb=null mailbox quota in kb + * @return boolean/array array with returned values or false otherwise, error-message in $this->error + */ + function plesk_mail($action,$account,$password=null,$aliases=null,$forwards=null,$keepLocalCopy=null,$quota_kb=null) + { + //echo "

smtpplesk::plesk_mail('$action','$account','$password',".print_r($aliases,true).",".print_r($forwards,true).",".(is_null($keepLocalCopy)?'':(int)$keepLocalCopy).",$quota_kb)

\n"; + + $this->error = false; + + if (is_numeric($account)) + { + $account_lid = $GLOBALS['egw']->accounts->id2name($account); + } + elseif ($GLOBALS['egw']->accounts->name2id($account)) + { + $account_lid = $account; + } + if (!$account_lid) + { + $this->error = lang("Account '%1' not found !!!",$account); + return false; + } + if (!in_array($action,array('info','create','update','remove'))) + { + $this->error = lang("Unsupported action '%1' !!!",$action); + return false; + } + $defaultDomain = $this->profileData['defaultDomain'] ? $this->profileData['defaultDomain'] : + $GLOBALS['egw_info']['server']['mail_suffix']; + + if ($action == 'update' && !($info = $this->plesk_mail('info',$account))) + { + $action = 'create'; // mail-account does not yet exist --> create it + } + $localEmail = $account_lid.'@'.$defaultDomain; + $script = $this->psa_mail_script . ' --'.$action . ' ' . $localEmail; + + if ($action != 'info') + { + // invalidate our cache + $GLOBALS['egw']->session->appsession('plesk-email-'.$account_lid,'emailadmin',false); + + // we dont set passwords shorten then 5 chars, as it only give an error in plesk + if (!is_null($password) && $password) + { + if (strlen($password) < 5 || strstr($password,$account_lid)) + { + $this->error = lang('Plesk requires passwords to have at least 5 characters and not contain the account-name --> password NOT set!!!'); + } + else + { + $script .= ' -passwd \''.str_replace('\'','\\\'',$password).'\' -passwd_type plain'; + } + } + if ($action == 'create' || !is_null($forwards) || !is_null($keepLocalCopy)) + { + $script .= ' -mailbox '.(!$forwards || $keepLocalCopy ? 'true' : 'false'); + } + // plesk allows only one forwarding address, we ignore everything but the first + if (!is_null($forwards) && (!$forwards || $this->is_email($forwards[0]))) + { + $script .= ' -redirect '.(!$forwards ? 'false' : 'true -rediraddr '.$forwards[0]); + } + if ($action == 'update') + { + if (!is_null($aliases)) + { + $existing_aliases = explode(' ',$info['Alias(es)']); // without domain! + $delete_aliases = array(); + foreach($existing_aliases as $alias) + { + if ($alias && !in_array($alias,$aliases) && !in_array($alias.'@'.$defaultDomain,$aliases)) + { + $delete_aliases[] = $alias; + } + } + if ($delete_aliases) + { + $script .= ' -aliases del:'.implode(',',$delete_aliases); + } + foreach($aliases as $n => $alias) + { + if (in_array($alias,$existing_aliases) || in_array(str_replace('@'.$defaultDomain,'',$alias),$existing_aliases)) + { + unset($aliases[$n]); // no change + } + } + } + } + if (!is_null($aliases) && count($aliases)) + { + foreach($aliases as $alias) + { + if (!$this->is_email($alias)) return false; // security precausion + } + $script .= ' -aliases add:'.str_replace('@'.$defaultDomain,'',implode(',',$aliases)); + } + if (!is_null($quota_kb) && (int)$quota_kb) + { + $script .= ' -mbox_quota '.(int)$quota_kb; + } + } + //echo "

$script

\n"; + if (!($fp = popen($script.' 2>&1','r'))) + { + $this->error = lang("Plesk mail script '%1' not found !!!",$this->psa_mail_script); + return false; + } + $values = array(); + while(!feof($fp)) + { + $line = trim(fgets($fp)); + list($name,$value) = split(': *',$line,2); + if (!is_null($value) && !strstr($name,'An error occured') && $name) + { + $values[$name] = $value; + } + elseif ($line) + { + $values[] = $line; + } + } + pclose($fp); + + if (!$values['SUCCESS']) + { + $this->error = implode(', ',$values); + return false; + } + return $values; + } + + /** + * checks for valid email addresse (local mail address dont need a domain!) + * + * Important as we run shell scripts with the address and one could try to run arbitrary commands this way!!! + * We only allow letters a-z, numbers and the following other chars: _ . - @ + * + * @return boolean + */ + function is_email($email) + { + return preg_match('/^[@a-z0-9_.-]+$/i',$email); + } +} diff --git a/emailadmin/inc/class.postfixdbmailuser.inc.php b/emailadmin/inc/class.postfixdbmailuser.inc.php new file mode 100755 index 0000000000..89b9dd7469 --- /dev/null +++ b/emailadmin/inc/class.postfixdbmailuser.inc.php @@ -0,0 +1,215 @@ +common->email_address($_hookValues['account_firstname'], + $_hookValues['account_lastname'],$_hookValues['account_lid'],$this->defaultDomain); + + $ds = $GLOBALS['egw']->common->ldapConnect(); + + $filter = "uid=".$_hookValues['account_lid']; + + $sri = @ldap_search($ds,$GLOBALS['egw_info']['server']['ldap_context'],$filter); + if ($sri) + { + $allValues = ldap_get_entries($ds, $sri); + $accountDN = $allValues[0]['dn']; + $objectClasses = $allValues[0]['objectclass']; + + unset($objectClasses['count']); + } + else + { + return false; + } + + if(!in_array('dbmailUser',$objectClasses) && + !in_array('dbmailuser',$objectClasses)) + { + $objectClasses[] = 'dbmailuser'; + } + + // the new code for postfix+cyrus+ldap + $newData = array + ( + 'mail' => $mailLocalAddress, + 'accountStatus' => 'active', + 'objectclass' => $objectClasses + ); + + ldap_mod_replace ($ds, $accountDN, $newData); + #print ldap_error($ds); + } + + function getAccountEmailAddress($_accountName) + { + $emailAddresses = array(); + $ds = $GLOBALS['egw']->common->ldapConnect(); + $filter = sprintf("(&(uid=%s)(objectclass=posixAccount))",$_accountName); + $attributes = array('dn','mail','mailAlternateAddress'); + $sri = @ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $attributes); + + if ($sri) + { + $realName = trim($GLOBALS['egw_info']['user']['firstname'] . (!empty($GLOBALS['egw_info']['user']['firstname']) ? ' ' : '') . $GLOBALS['egw_info']['user']['lastname']); + $allValues = ldap_get_entries($ds, $sri); + if(isset($allValues[0]['mail'][0])) + { + $emailAddresses[] = array + ( + 'name' => $realName, + 'address' => $allValues[0]['mail'][0], + 'type' => 'default' + ); + } + if($allValues[0]['mailalternateaddress']['count'] > 0) + { + $count = $allValues[0]['mailalternateaddress']['count']; + for($i=0; $i < $count; $i++) + { + $emailAddresses[] = array + ( + 'name' => $realName, + 'address' => $allValues[0]['mailalternateaddress'][$i], + 'type' => 'alternate' + ); + } + } + } + + return $emailAddresses; + } + + function getUserData($_uidnumber) { + $userData = array(); + + $ldap = $GLOBALS['egw']->common->ldapConnect(); + + if (($sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],"(uidnumber=$_uidnumber)"))) + { + $allValues = ldap_get_entries($ldap, $sri); + if ($allValues['count'] > 0) + { + #print "found something
"; + $userData["mailLocalAddress"] = $allValues[0]["mail"][0]; + $userData["mailAlternateAddress"] = $allValues[0]["mailalternateaddress"]; + $userData["accountStatus"] = $allValues[0]["accountstatus"][0]; + $userData["mailForwardingAddress"] = $allValues[0]["mailforwardingaddress"]; + $userData["deliveryProgramPath"] = $allValues[0]["deliveryprogrampath"][0]; + $userData["deliveryMode"] = $allValues[0]["deliverymode"][0]; + + unset($userData["mailAlternateAddress"]["count"]); + unset($userData["mailForwardingAddress"]["count"]); + + return $userData; + } + } + + return $userData; + } + + function setUserData($_uidnumber, $_mailAlternateAddress, $_mailForwardingAddress, $_deliveryMode, $_accountStatus, $_mailLocalAddress) { + $filter = "uidnumber=$_uidnumber"; + + $ldap = $GLOBALS['egw']->common->ldapConnect(); + + $sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],$filter); + if ($sri) { + $allValues = ldap_get_entries($ldap, $sri); + + $accountDN = $allValues[0]['dn']; + $uid = $allValues[0]['uid'][0]; + $objectClasses = $allValues[0]['objectclass']; + + unset($objectClasses['count']); + + if(!in_array('dbmailUser',$objectClasses) && + !in_array('dbmailuser',$objectClasses)) + { + $objectClasses[] = 'dbmailuser'; + sort($objectClasses); + $newData['objectclass'] = $objectClasses; + } + + sort($_mailAlternateAddress); + sort($_mailForwardingAddress); + + $newData['mailalternateaddress'] = (array)$_mailAlternateAddress; + $newData['mailforwardingaddress'] = (array)$_mailForwardingAddress; + $newData['deliverymode'] = $_deliveryMode ? 'forwardOnly' : array(); + $newData['accountstatus'] = $_accountStatus ? 'active' : array(); + $newData['mail'] = $_mailLocalAddress; + + ldap_mod_replace($ldap, $accountDN, $newData); + } + else + { + return false; + } + + } + + function saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy) + { + $ds = $GLOBALS['egw']->common->ldapConnect(); + $filter = sprintf("(&(uidnumber=%s)(objectclass=posixAccount))",$_accountID); + $attributes = array('dn','mailforwardingaddress','deliverymode','objectclass'); + $sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $attributes); + + if ($sri) + { + $newData = array(); + $allValues = ldap_get_entries($ds, $sri); + + $newData['objectclass'] = $allValues[0]['objectclass']; + + unset($newData['objectclass']['count']); + + if(!in_array('dbmailUser',$newData['objectclass']) && + !in_array('dbmailuser',$newData['objectclass'])) + { + $newData['objectclass'][] = 'dbmailuser'; + } + + if(!empty($_forwardingAddress)) + { + if(is_array($allValues[0]['mailforwardingaddress'])) + { + $newData['mailforwardingaddress'] = $allValues[0]['mailforwardingaddress']; + unset($newData['mailforwardingaddress']['count']); + $newData['mailforwardingaddress'][0] = $_forwardingAddress; + } + else + { + $newData['mailforwardingaddress'][0] = $_forwardingAddress; + } + $newData['deliverymode'] = ($_keepLocalCopy == 'yes'? array() : 'forwardOnly'); + } + else + { + $newData['mailforwardingaddress'] = array(); + $newData['deliverymode'] = array(); + } + + ldap_modify ($ds, $allValues[0]['dn'], $newData); + #print ldap_error($ds); + } + } + } +?> diff --git a/emailadmin/inc/class.postfixinetorgperson.inc.php b/emailadmin/inc/class.postfixinetorgperson.inc.php new file mode 100644 index 0000000000..b160f81e68 --- /dev/null +++ b/emailadmin/inc/class.postfixinetorgperson.inc.php @@ -0,0 +1,139 @@ + + * @author Lars Kneschke + * @version $Id$ + */ + +include_once(EGW_SERVER_ROOT.'/emailadmin/inc/class.defaultsmtp.inc.php'); + +/** + * Postfix with inetOrgPerson schema (default for eGW accounts) + * + * Stores the aliases as aditional mail Attributes. The primary mail address is the first one. + * + * At the moment we support no forwarding with this schema and no disabling of an account + */ +class postfixinetorgperson extends defaultsmtp +{ + /** + * Add an account, nothing needed as we dont have to add an additional schema + * + * @param array $_hookValues + */ + function addAccount($_hookValues) + { + } + + /** + * Get all email addresses of an account + * + * @param string $_accountName + * @return array + */ + function getAccountEmailAddress($_accountName) + { + $emailAddresses = array(); + $ds = $GLOBALS['egw']->common->ldapConnect(); + $sri = @ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'],"(&(uid=$_accountName)(objectclass=posixAccount))",array('dn','mail')); + + if ($sri && ($allValues = ldap_get_entries($ds, $sri)) && is_array($allValues[0]['mail'])) + { + $realName = trim($GLOBALS['egw_info']['user']['firstname'] . (!empty($GLOBALS['egw_info']['user']['firstname']) ? ' ' : '') . $GLOBALS['egw_info']['user']['lastname']); + foreach($allValues[0]['mail'] as $n => $mail) + { + if (!is_numeric($n)) continue; + + $emailAddresses[] = array( + 'name' => $realName, + 'address' => $mail, + 'type' => !$n ? 'default' : 'alternate', + ); + } + } + //echo "

postfixinetorgperson::getAccountEmail($_accountName)"; _debug_array($emailAddresses); + return $emailAddresses; + } + + /** + * Get the data of a given user + * + * @param int $_uidnumber numerical user-id + * @return array + */ + function getUserData($_uidnumber) + { + $userdata = array(); + $ldap = $GLOBALS['egw']->common->ldapConnect(); + + if (($sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],'uidnumber='.(int)$_uidnumber,array('mail')))) + { + $allValues = ldap_get_entries($ldap, $sri); + if ($allValues['count'] > 0) + { + unset($allValues[0]['mail']['count']); + $userdata = array( + 'mailLocalAddress' => array_shift($allValues[0]['mail']), + 'mailAlternateAddress' => $allValues[0]['mail'], + 'accountStatus' => 'active', + 'mailForwardingAddress' => array(), +// 'deliveryMode' => , + ); + } + } + //echo "

postfixinetorgperson::getUserData($_uidnumber) = ".print_r($userdata,true)."

\n"; + return $userdata; + } + + /** + * Set the data of a given user + * + * @param int $_uidnumber numerical user-id + * @param array $_mailAlternateAddress + * @param array $_mailForwardingAddress + * @param string $_deliveryMode + * @param string $_accountStatus + * @param string $_mailLocalAddress + * @return boolean + */ + function setUserData($_uidnumber, $_mailAlternateAddress, $_mailForwardingAddress, $_deliveryMode, $_accountStatus, $_mailLocalAddress) + { + $filter = "uidnumber=$_uidnumber"; + + $ldap = $GLOBALS['egw']->common->ldapConnect(); + + if (($sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],'uidnumber='.(int)$_uidnumber,array('dn')))) + { + $allValues = ldap_get_entries($ldap, $sri); + $accountDN = $allValues[0]['dn']; + + sort($_mailAlternateAddress); + $newData['mail'] = array_values(array_unique(array_merge(array($_mailLocalAddress),$_mailAlternateAddress))); + +// sort($_mailForwardingAddress); +// $newData['forwards'] = (array)$_mailForwardingAddress; +// $newData['active'] = $_accountStatus; +// $newData['mode'] = $_deliveryMode; + + //echo "

postfixinetorgperson::setUserData($_uidnumber,...) setting $accountDN to ".print_r($newData,true)."

\n"; + return ldap_mod_replace($ldap, $accountDN, $newData); + } + return false; + } + + /** + * Saves the forwarding information + * + * @param int $_accountID + * @param string $_forwardingAddress + * @param string $_keepLocalCopy 'yes' + */ + function saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy) + { + } +} diff --git a/emailadmin/inc/class.postfixldap.inc.php b/emailadmin/inc/class.postfixldap.inc.php new file mode 100644 index 0000000000..ad3e07012d --- /dev/null +++ b/emailadmin/inc/class.postfixldap.inc.php @@ -0,0 +1,216 @@ +common->email_address($_hookValues['account_firstname'], + $_hookValues['account_lastname'],$_hookValues['account_lid'],$this->defaultDomain); + + $ds = $GLOBALS['egw']->common->ldapConnect(); + + $filter = "uid=".$_hookValues['account_lid']; + + $sri = @ldap_search($ds,$GLOBALS['egw_info']['server']['ldap_context'],$filter); + if ($sri) + { + $allValues = ldap_get_entries($ds, $sri); + $accountDN = $allValues[0]['dn']; + $objectClasses = $allValues[0]['objectclass']; + + unset($objectClasses['count']); + } + else + { + return false; + } + + if(!in_array('qmailUser',$objectClasses) && + !in_array('qmailuser',$objectClasses)) + { + $objectClasses[] = 'qmailuser'; + } + + // the new code for postfix+cyrus+ldap + $newData = array + ( + 'mail' => $mailLocalAddress, + 'accountStatus' => 'active', + 'objectclass' => $objectClasses + ); + + ldap_mod_replace ($ds, $accountDN, $newData); + #print ldap_error($ds); + } + + function getAccountEmailAddress($_accountName) + { + $emailAddresses = array(); + $ds = $GLOBALS['egw']->common->ldapConnect(); + $filter = sprintf("(&(uid=%s)(objectclass=posixAccount))",$_accountName); + $attributes = array('dn','mail','mailAlternateAddress'); + $sri = @ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $attributes); + + if ($sri) + { + $realName = trim($GLOBALS['egw_info']['user']['firstname'] . (!empty($GLOBALS['egw_info']['user']['firstname']) ? ' ' : '') . $GLOBALS['egw_info']['user']['lastname']); + $allValues = ldap_get_entries($ds, $sri); + if(isset($allValues[0]['mail'][0])) + { + $emailAddresses[] = array + ( + 'name' => $realName, + 'address' => $allValues[0]['mail'][0], + 'type' => 'default' + ); + } + if($allValues[0]['mailalternateaddress']['count'] > 0) + { + $count = $allValues[0]['mailalternateaddress']['count']; + for($i=0; $i < $count; $i++) + { + $emailAddresses[] = array + ( + 'name' => $realName, + 'address' => $allValues[0]['mailalternateaddress'][$i], + 'type' => 'alternate' + ); + } + } + } + + return $emailAddresses; + } + + function getUserData($_uidnumber) { + $userData = array(); + + $ldap = $GLOBALS['egw']->common->ldapConnect(); + + if (($sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],"(uidnumber=$_uidnumber)"))) + { + $allValues = ldap_get_entries($ldap, $sri); + if ($allValues['count'] > 0) + { + #print "found something
"; + $userData["mailLocalAddress"] = $allValues[0]["mail"][0]; + $userData["mailAlternateAddress"] = $allValues[0]["mailalternateaddress"]; + $userData["accountStatus"] = $allValues[0]["accountstatus"][0]; + $userData["mailForwardingAddress"] = $allValues[0]["mailforwardingaddress"]; + $userData["qmailDotMode"] = $allValues[0]["qmaildotmode"][0]; + $userData["deliveryProgramPath"] = $allValues[0]["deliveryprogrampath"][0]; + $userData["deliveryMode"] = $allValues[0]["deliverymode"][0]; + + unset($userData["mailAlternateAddress"]["count"]); + unset($userData["mailForwardingAddress"]["count"]); + + return $userData; + } + } + + return $userData; + } + + function setUserData($_uidnumber, $_mailAlternateAddress, $_mailForwardingAddress, $_deliveryMode, $_accountStatus, $_mailLocalAddress) { + $filter = "uidnumber=$_uidnumber"; + + $ldap = $GLOBALS['egw']->common->ldapConnect(); + + $sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],$filter); + if ($sri) { + $allValues = ldap_get_entries($ldap, $sri); + + $accountDN = $allValues[0]['dn']; + $uid = $allValues[0]['uid'][0]; + $objectClasses = $allValues[0]['objectclass']; + + unset($objectClasses['count']); + + if(!in_array('qmailUser',$objectClasses) && + !in_array('qmailuser',$objectClasses)) + { + $objectClasses[] = 'qmailuser'; + sort($objectClasses); + $newData['objectclass'] = $objectClasses; + } + + sort($_mailAlternateAddress); + sort($_mailForwardingAddress); + + $newData['mailalternateaddress'] = (array)$_mailAlternateAddress; + $newData['mailforwardingaddress'] = (array)$_mailForwardingAddress; + $newData['deliverymode'] = $_deliveryMode ? 'forwardOnly' : array(); + $newData['accountstatus'] = $_accountStatus ? 'active' : array(); + $newData['mail'] = $_mailLocalAddress; + + ldap_mod_replace($ldap, $accountDN, $newData); + } + else + { + return false; + } + + } + + function saveSMTPForwarding($_accountID, $_forwardingAddress, $_keepLocalCopy) + { + $ds = $GLOBALS['egw']->common->ldapConnect(); + $filter = sprintf("(&(uidnumber=%s)(objectclass=posixAccount))",$_accountID); + $attributes = array('dn','mailforwardingaddress','deliverymode','objectclass'); + $sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $attributes); + + if ($sri) + { + $newData = array(); + $allValues = ldap_get_entries($ds, $sri); + + $newData['objectclass'] = $allValues[0]['objectclass']; + + unset($newData['objectclass']['count']); + + if(!in_array('qmailUser',$newData['objectclass']) && + !in_array('qmailuser',$newData['objectclass'])) + { + $newData['objectclass'][] = 'qmailuser'; + } + + if(!empty($_forwardingAddress)) + { + if(is_array($allValues[0]['mailforwardingaddress'])) + { + $newData['mailforwardingaddress'] = $allValues[0]['mailforwardingaddress']; + unset($newData['mailforwardingaddress']['count']); + $newData['mailforwardingaddress'][0] = $_forwardingAddress; + } + else + { + $newData['mailforwardingaddress'][0] = $_forwardingAddress; + } + $newData['deliverymode'] = ($_keepLocalCopy == 'yes'? array() : 'forwardOnly'); + } + else + { + $newData['mailforwardingaddress'] = array(); + $newData['deliverymode'] = array(); + } + + ldap_modify ($ds, $allValues[0]['dn'], $newData); + #print ldap_error($ds); + } + } + } +?> diff --git a/emailadmin/inc/class.smtpplesk.inc.php b/emailadmin/inc/class.smtpplesk.inc.php new file mode 100644 index 0000000000..64d3469693 --- /dev/null +++ b/emailadmin/inc/class.smtpplesk.inc.php @@ -0,0 +1,98 @@ + as with the "LDAP, Postfix & Cyrus" plugin the plesk one creates mail * +* users and manages passwords, aliases, forwards and quota from within * +* eGroupWare - no need to additionally visit the plesk interface anymore * +* ------------------------------------------------------------------------- * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 2 of the License, or (at your * +* option) any later version. * +\***************************************************************************/ +/* $Id$ */ + +include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.defaultsmtp.inc.php"); +include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.pleskimap.inc.php"); + +class smtpplesk extends defaultsmtp +{ + /** + * @var string/boolean $error string with last error-message or false + */ + var $error = false; + + function smtpplesk($profileData) + { + $this->defaultsmtp($profileData); // call the parent constructor + } + + /** + * call plesk's mail command line interface + * + * The actual code is in the pleskimap class, to not double it. + * + * @param string $action 'info', 'create', 'update' or 'remove' + * @param string/int $account account_lid or numerical account_id + * @param string $password=null string with password or null to not change + * @param array $aliases=null array with aliases or null to not change the aliases + * @param string/boolean $forward=null email address to forward, false to not forward or null to not change + * @param boolean $keepLocalCopy=null if forwarding keep a local copy or not, null = dont change + * @param int $quota_kb=null mailbox quota in kb + * @return boolean/array array with returned values or false otherwise, error-message in $this->error + */ + function plesk_mail($action,$account,$password=null,$aliases=null,$forward=null,$keepLocalCopy=null,$quota_kb=null) + { + static $plesk; + if (!is_object($plesk)) + { + $plesk =& new pleskimap(null); + $this->error =& $plesk->error; + } + return $plesk->plesk_mail($action,$account,$password,$aliases,$forward,$keepLocalCopy,$quota_kb); + } + + function addAccount($hookValues) + { + // account is added via pleskimap::addAccount(); + } + + /** + * Returns the email address of the current user + * + * @param string/int $accountName account-id or -lis (name) + * @return array of arrays with keys name, address and type={default|alternate} + */ + function getAccountEmailAddress() + { + //echo "

smtpplesk::getAccountEmailAddress()

\n"; + + return array(array( + 'name' => $GLOBALS['egw_info']['user']['fullname'], + 'address' => $GLOBALS['egw_info']['user']['email'], + 'type' => 'default' + )); + } + + /** + * Save SMTP forwarding address + * + * @param int $accountID user-id + * @param string $forwardingAddress email to forward to + * @param string $keepLocalCopy 'yes' or something else + */ + function saveSMTPForwarding($accountID, $forwardingAddress, $keepLocalCopy) + { + //echo "

smtpplesk::saveSMTPForwarding('$accountID','$forwardingAddress','$keepLocalCopy')

\n"; + + return $this->plesk_mail('update',$accountID,null,null,array($forwardingAddress),$keepLocalCopy == 'yes'); + } +} diff --git a/emailadmin/inc/class.so.inc.php b/emailadmin/inc/class.so.inc.php new file mode 100644 index 0000000000..82134775fc --- /dev/null +++ b/emailadmin/inc/class.so.inc.php @@ -0,0 +1,343 @@ + 'profileID', + 'ea_smtp_server' => 'smtpServer', + 'ea_smtp_type' => 'smtpType', + 'ea_smtp_port' => 'smtpPort', + 'ea_smtp_auth' => 'smtpAuth', + 'ea_editforwardingaddress' => 'editforwardingaddress', + 'ea_smtp_ldap_server' => 'smtpLDAPServer', + 'ea_smtp_ldap_basedn' => 'smtpLDAPBaseDN', + 'ea_smtp_ldap_admindn' => 'smtpLDAPAdminDN', + 'ea_smtp_ldap_adminpw' => 'smtpLDAPAdminPW', + 'ea_smtp_ldap_use_default' => 'smtpLDAPUseDefault', + 'ea_imap_server' => 'imapServer', + 'ea_imap_type' => 'imapType', + 'ea_imap_port' => 'imapPort', + 'ea_imap_login_type' => 'imapLoginType', + 'ea_imap_tsl_auth' => 'imapTLSAuthentication', + 'ea_imap_tsl_encryption' => 'imapTLSEncryption', + 'ea_imap_enable_cyrus' => 'imapEnableCyrusAdmin', + 'ea_imap_admin_user' => 'imapAdminUsername', + 'ea_imap_admin_pw' => 'imapAdminPW', + 'ea_imap_enable_sieve' => 'imapEnableSieve', + 'ea_imap_sieve_server' => 'imapSieveServer', + 'ea_imap_sieve_port' => 'imapSievePort', + 'ea_description' => 'description', + 'ea_default_domain' => 'defaultDomain', + 'ea_organisation_name' => 'organisationName', + 'ea_user_defined_accounts' => 'userDefinedAccounts', + 'ea_imapoldcclient' => 'imapoldcclient', + 'ea_order' => 'ea_order', + 'ea_group' => 'ea_group', + 'ea_appname' => 'ea_appname', + 'ea_smtp_auth_username' => 'ea_smtp_auth_username', + 'ea_smtp_auth_password' => 'ea_smtp_auth_password', + ); + + function so() + { + if (is_object($GLOBALS['egw_setup']->db)) + { + $this->db = clone($GLOBALS['egw_setup']->db); + } + else + { + $this->db = clone($GLOBALS['egw']->db); + } + $this->db->set_app('emailadmin'); + } + + /** + * Convert array with internal values/names to db-column-names + * + * @param array $vals + * @return array + */ + function vals2db($vals) + { + $cols = array(); + foreach($vals as $key => $val) + { + if (($k = array_search($key,$this->db_cols)) === false) $k = $key; + + $cols[$k] = $val; + } + return $cols; + } + + /** + * Convert array with db-columns/-values to internal names + * + * @param array $vals + * @return array + */ + function db2vals($cols) + { + $vals = array(); + foreach($cols as $key => $val) + { + if (isset($this->db_cols[$key])) $key = $this->db_cols[$key]; + + $vals[$key] = $val; + } + return $vals; + } + + function updateProfile($_globalSettings, $_smtpSettings=array(), $_imapSettings=array()) + { + $profileID = (int) $_globalSettings['profileID']; + unset($_globalSettings['profileID']); + + $where = $profileID ? array('ea_profile_id' => $profileID) : false; + + $this->db->insert($this->table,$this->vals2db($_smtpSettings+$_globalSettings+$_imapSettings),$where,__LINE__,__FILE__); + + return $profileID ? $profileID : $this->db->get_last_insert_id($this->table,'ea_profile_id'); + } + + function addProfile($_globalSettings, $_smtpSettings, $_imapSettings) + { + unset($_globalSettings['profileID']); // just in case + + return $this->updateProfile($_globalSettings, $_smtpSettings, $_imapSettings); + } + + function deleteProfile($_profileID) + { + $this->db->delete($this->table,array('ea_profile_id' => $_profileID),__LINE__ , __FILE__); + } + + function getProfile($_profileID, $_fieldNames) + { + $_fieldNames = array_keys($this->vals2db(array_flip($_fieldNames))); + $this->db->select($this->table,$_fieldNames,array('ea_profile_id' => $_profileID), __LINE__, __FILE__); + + if (($data = $this->db->row(true))) + { + return $this->db2vals($data); + } + return $data; + } + + function getUserProfile($_appName, $_groups) + { + if(empty($_appName) || !is_array($_groups)) + return false; + + $where = $this->db->expression( + $this->table,'(', + array('ea_appname'=>$_appName), + ' OR ea_appname IS NULL or ea_appname = \'\') and ', + '(', + array('ea_group'=>$_groups), + ' OR ea_group IS NULL or ea_group = \'\')' + ); + + $this->db->select($this->table,'ea_profile_id',$where, __LINE__, __FILE__, false, 'ORDER BY ea_order', false, 1); + + if (($data = $this->db->row(true))) { + return $this->getProfile($data['ea_profile_id'], $this->db_cols); + } + + return false; + } + + + function getProfileList($_profileID=0,$_defaultProfile=false) + { + $where = false; + if ((int) $_profileID) + { + $where = array('ea_profile_id' => $_profileID); + } + elseif ($_defaultProfile) + { + $where['ea_appname'] = ''; + $where['ea_group'] = 0; + } + $this->db->select($this->table,'*',$where, __LINE__,__FILE__,false,(int) $_profileID ? '' : 'ORDER BY ea_order'); + + $serverList = false; + while (($row = $this->db->row(true))) + { + $serverList[] = $this->db2vals($row); + } + return $serverList; + } + + function getUserData($_accountID) + { + $ldap = $GLOBALS['egw']->common->ldapConnect(); + + if (($sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],"(uidnumber=$_accountID)"))) + { + $allValues = ldap_get_entries($ldap, $sri); + if ($allValues['count'] > 0) + { + #print "found something
"; + $userData["mailLocalAddress"] = $allValues[0]["mail"][0]; + $userData["mailAlternateAddress"] = $allValues[0]["mailalternateaddress"]; + $userData["accountStatus"] = $allValues[0]["accountstatus"][0]; + $userData["mailRoutingAddress"] = $allValues[0]["mailforwardingaddress"]; + $userData["qmailDotMode"] = $allValues[0]["qmaildotmode"][0]; + $userData["deliveryProgramPath"] = $allValues[0]["deliveryprogrampath"][0]; + $userData["deliveryMode"] = $allValues[0]["deliverymode"][0]; + + unset($userData["mailAlternateAddress"]["count"]); + unset($userData["mailRoutingAddress"]["count"]); + + return $userData; + } + } + + // if we did not return before, return false + return false; + } + + function saveUserData($_accountID, $_accountData) + { + $ldap = $GLOBALS['egw']->common->ldapConnect(); + // need to be fixed + if(is_numeric($_accountID)) + { + $filter = "uidnumber=$_accountID"; + } + else + { + $filter = "uid=$_accountID"; + } + + $sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],$filter); + if ($sri) + { + $allValues = ldap_get_entries($ldap, $sri); + $accountDN = $allValues[0]['dn']; + $uid = $allValues[0]['uid'][0]; + $homedirectory = $allValues[0]['homedirectory'][0]; + $objectClasses = $allValues[0]['objectclass']; + + unset($objectClasses['count']); + } + else + { + return false; + } + + if(empty($homedirectory)) + { + $homedirectory = "/home/".$uid; + } + + // the old code for qmail ldap + $newData = array + ( + 'mail' => $_accountData["mailLocalAddress"], + 'mailAlternateAddress' => $_accountData["mailAlternateAddress"], + 'mailRoutingAddress' => $_accountData["mailRoutingAddress"], + 'homedirectory' => $homedirectory, + 'mailMessageStore' => $homedirectory."/Maildir/", + 'gidnumber' => '1000', + 'qmailDotMode' => $_accountData["qmailDotMode"], + 'deliveryProgramPath' => $_accountData["deliveryProgramPath"] + ); + + if(!in_array('qmailUser',$objectClasses) && + !in_array('qmailuser',$objectClasses)) + { + $objectClasses[] = 'qmailuser'; + } + + // the new code for postfix+cyrus+ldap + $newData = array + ( + 'mail' => $_accountData["mailLocalAddress"], + 'accountStatus' => $_accountData["accountStatus"], + 'objectclass' => $objectClasses + ); + + if(is_array($_accountData["mailAlternateAddress"])) + { + $newData['mailAlternateAddress'] = $_accountData["mailAlternateAddress"]; + } + else + { + $newData['mailAlternateAddress'] = array(); + } + + if($_accountData["accountStatus"] == 'active') + { + $newData['accountStatus'] = 'active'; + } + else + { + $newData['accountStatus'] = 'disabled'; + } + + if(!empty($_accountData["deliveryMode"])) + { + $newData['deliveryMode'] = $_accountData["deliveryMode"]; + } + else + { + $newData['deliveryMode'] = array(); + } + + + if(is_array($_accountData["mailRoutingAddress"])) + { + $newData['mailForwardingAddress'] = $_accountData["mailRoutingAddress"]; + } + else + { + $newData['mailForwardingAddress'] = array(); + } + + #print "DN: $accountDN
"; + ldap_mod_replace ($ldap, $accountDN, $newData); + #print ldap_error($ldap); + + // also update the account_email field in egw_accounts + // when using sql account storage + if($GLOBALS['egw_info']['server']['account_repository'] == 'sql') + { + $this->db->update('egw_accounts',array( + 'account_email' => $_accountData["mailLocalAddress"] + ), + array( + 'account_id' => $_accountID + ),__LINE__,__FILE__ + ); + } + return true; + } + + function setOrder($_order) + { + foreach($_order as $order => $profileID) + { + $this->db->update($this->table,array( + 'ea_order' => $order, + ),array( + 'ea_profile_id' => $profileID, + ),__LINE__, __FILE__); + } + } + } +?> diff --git a/emailadmin/inc/class.ui.inc.php b/emailadmin/inc/class.ui.inc.php new file mode 100644 index 0000000000..0c17d468fe --- /dev/null +++ b/emailadmin/inc/class.ui.inc.php @@ -0,0 +1,600 @@ + True, + 'css' => True, + 'deleteProfile' => True, + 'editProfile' => True, + 'listProfiles' => True, + 'saveProfile' => True + ); + + var $cats; + var $nextmatchs; + var $t; + var $boqmailldap; + + function ui() + { + $this->nextmatchs =& CreateObject('phpgwapi.nextmatchs'); + $this->t =& CreateObject('phpgwapi.Template',EGW_APP_TPL); + $this->boemailadmin =& CreateObject('emailadmin.bo'); + } + + function addProfile() + { + $allGroups = $GLOBALS['egw']->accounts->get_list('groups'); + foreach($allGroups as $groupInfo) + { + $groups[$groupInfo['account_id']] = $groupInfo['account_lid']; + } + asort($groups); + + $allGroups = array('' => lang('any group')); + foreach($groups as $groupID => $groupName) + { + $allGroups[$groupID] = $groupName; + } + + $applications = array( + 'calendar' => $GLOBALS['egw_info']['apps']['calendar']['title'], + 'felamimail' => $GLOBALS['egw_info']['apps']['felamimail']['title'], + ); + asort($applications); + $applications = array_merge(array('' => lang('any application')),$applications); + + $this->display_app_header(); + + $this->t->set_file(array("body" => "editprofile.tpl")); + $this->t->set_block('body','main'); + + $this->translate(); + + #$this->t->set_var('profile_name',$profileList[0]['description']); + $this->t->set_var('smtpActiveTab','1'); + $this->t->set_var('imapActiveTab','1'); + $this->t->set_var('application_select_box', $GLOBALS['egw']->html->select('globalsettings[ea_appname]','',$applications, true, "style='width: 250px;'")); + $this->t->set_var('group_select_box', $GLOBALS['egw']->html->select('globalsettings[ea_group]','',$allGroups, true, "style='width: 250px;'")); + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.saveProfile' + ); + $this->t->set_var('action_url',$GLOBALS['egw']->link('/index.php',$linkData)); + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.listProfiles' + ); + $this->t->set_var('back_url',$GLOBALS['egw']->link('/index.php',$linkData)); + + foreach($this->boemailadmin->getSMTPServerTypes() as $key => $value) + { + $this->t->set_var("lang_smtp_option_$key",$value); + }; + + foreach($this->boemailadmin->getIMAPServerTypes() as $key => $value) { + $imapServerTypes[$key] = $value['description']; + }; + $selectFrom = $GLOBALS['egw']->html->select( + 'imapsettings[imapType]', + '', + $imapServerTypes, + false, + "style='width: 250px;' id='imapselector' onchange='imap.display(this.value); ea_setIMAPDefaults(this.value);'" + ); + $this->t->set_var('imaptype', $selectFrom); + + $this->t->set_var('value_smtpPort', '25'); + $this->t->set_var('value_imapPort', '110'); + $this->t->set_var('value_imapSievePort', '2000'); + + $this->t->parse("out","main"); + print $this->t->get('out','main'); + } + + function css() + { + $appCSS = + 'th.activetab + { + color:#000000; + background-color:#D3DCE3; + border-top-width : 1px; + border-top-style : solid; + border-top-color : Black; + border-left-width : 1px; + border-left-style : solid; + border-left-color : Black; + border-right-width : 1px; + border-right-style : solid; + border-right-color : Black; + } + + th.inactivetab + { + color:#000000; + background-color:#E8F0F0; + border-bottom-width : 1px; + border-bottom-style : solid; + border-bottom-color : Black; + } + + .td_left { border-left : 1px solid Gray; border-top : 1px solid Gray; } + .td_right { border-right : 1px solid Gray; border-top : 1px solid Gray; } + + div.activetab{ display:inline; } + div.inactivetab{ display:none; }'; + + return $appCSS; + } + + function deleteProfile() + { + $this->boemailadmin->deleteProfile($_GET['profileid']); + $this->listProfiles(); + } + + function display_app_header() + { + if(!@is_object($GLOBALS['egw']->js)) + { + $GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript'); + } + $GLOBALS['egw']->js->validate_file('tabs','tabs'); + $GLOBALS['egw_info']['flags']['include_xajax'] = True; + + switch($_GET['menuaction']) + { + case 'emailadmin.ui.addProfile': + case 'emailadmin.ui.editProfile': + $GLOBALS['egw_info']['nofooter'] = true; + $GLOBALS['egw']->js->validate_file('jscode','editProfile','emailadmin'); + $GLOBALS['egw']->js->set_onload('javascript:initAll();'); + #$GLOBALS['egw']->js->set_onload('smtp.init();'); + + break; + + case 'emailadmin.ui.listProfiles': + $GLOBALS['egw']->js->validate_file('jscode','listProfile','emailadmin'); + + break; + } + $GLOBALS['egw']->common->egw_header(); + + if($_GET['menuaction'] == 'emailadmin.ui.listProfiles' || $_GET['menuaction'] == 'emailadmin.ui.deleteProfile') + echo parse_navbar(); + } + + function editProfile($_profileID='') { + if(!is_object($GLOBALS['egw']->html)) { + $GLOBALS['egw']->html =& CreateObject('phpgwapi.html'); + } + + $allGroups = $GLOBALS['egw']->accounts->get_list('groups'); + foreach($allGroups as $groupInfo) + { + $groups[$groupInfo['account_id']] = $groupInfo['account_lid']; + } + asort($groups); + + $allGroups = array('' => lang('any group')); + foreach($groups as $groupID => $groupName) + { + $allGroups[$groupID] = $groupName; + } + + $applications = array( + 'calendar' => $GLOBALS['egw_info']['apps']['calendar']['title'], + 'felamimail' => $GLOBALS['egw_info']['apps']['felamimail']['title'], + ); + asort($applications); + $applications = array_merge(array('' => lang('any application')),$applications); + + if($_profileID != '') + { + $profileID = $_profileID; + } + elseif(is_int(intval($_GET['profileid'])) && !empty($_GET['profileid'])) + { + $profileID = intval($_GET['profileid']); + } + else + { + return false; + } + + $profileList = $this->boemailadmin->getProfileList($profileID); + $profileData = $this->boemailadmin->getProfile($profileID); + $this->display_app_header(); + + $this->t->set_file(array("body" => "editprofile.tpl")); + $this->t->set_block('body','main'); + + $this->translate(); + + foreach((array)$profileData as $key => $value) { + #print "$key $value
"; + switch($key) { + case 'imapTLSEncryption': + $this->t->set_var('checked_'. $key .'_'. $value,'checked="1"'); + break; + case 'imapTLSAuthentication': + if($value == '1') { + $this->t->set_var('selected_'.$key,'checked="1"'); + } + break; + case 'imapEnableCyrusAdmin': + case 'imapEnableSieve': + case 'smtpAuth': + case 'smtpLDAPUseDefault': + case 'userDefinedAccounts': + case 'imapoldcclient': + case 'editforwardingaddress': + if($value == 'yes') { + $this->t->set_var('selected_'.$key,'checked="1"'); + } + break; + case 'imapType': + case 'smtpType': + case 'imapLoginType': + $this->t->set_var('selected_'.$key.'_'.$value,'selected="1"'); + break; + case 'ea_appname': + $this->t->set_var('application_select_box', $GLOBALS['egw']->html->select('globalsettings[ea_appname]',$value,$applications, true, "style='width: 250px;'")); + break; + case 'ea_group': + $this->t->set_var('group_select_box', $GLOBALS['egw']->html->select('globalsettings[ea_group]',$value,$allGroups, true, "style='width: 250px;'")); + break; + default: + $this->t->set_var('value_'.$key,$value); + break; + } + } + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.saveProfile', + 'profileID' => $profileID + ); + $this->t->set_var('action_url',$GLOBALS['egw']->link('/index.php',$linkData)); + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.listProfiles' + ); + $this->t->set_var('back_url',$GLOBALS['egw']->link('/index.php',$linkData)); + + $this->t->set_var('smtptype',$GLOBALS['egw']->html->select( + 'smtpsettings[smtpType]', + $profileData['smtpType'], + $this->boemailadmin->getSMTPServerTypes(), + true, + 'style="width: 250px;" id="smtpselector" onchange="smtp.display(this.value);"' + )); + foreach($this->boemailadmin->getIMAPServerTypes() as $key => $value) { + $imapServerTypes[$key] = $value['description']; + }; + $selectFrom = $GLOBALS['egw']->html->select( + 'imapsettings[imapType]', + $profileData['imapType'], + $imapServerTypes, + true, + "style='width: 250px;' id='imapselector' onchange='imap.display(this.value);'" + ); + $this->t->set_var('imaptype', $selectFrom); + + $this->t->parse("out","main"); + print $this->t->get('out','main'); + } + + function listProfiles() + { + $this->display_app_header(); + + $this->t->set_file(array("body" => "listprofiles.tpl")); + $this->t->set_block('body','main'); + + $this->translate(); + + $profileList = $this->boemailadmin->getProfileList(); + + // create the data array + if ($profileList) + { + for ($i=0; $i < count($profileList); $i++) + { + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.editProfile', + 'nocache' => '1', + 'tabpage' => '3', + 'profileid' => $profileList[$i]['profileID'] + ); + $imapServerLink = ''.$profileList[$i]['imapServer'].''; + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.editProfile', + 'nocache' => '1', + 'tabpage' => '1', + 'profileid' => $profileList[$i]['profileID'] + ); + $descriptionLink = ''.$profileList[$i]['description'].''; + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.editProfile', + 'nocache' => '1', + 'tabpage' => '2', + 'profileid' => $profileList[$i]['profileID'] + ); + $smtpServerLink = ''.$profileList[$i]['smtpServer'].''; + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.deleteProfile', + 'profileid' => $profileList[$i]['profileID'] + ); + $deleteLink = ''. + lang('delete').''; + + $application = (empty($profileList[$i]['ea_appname']) ? lang('any application') : $GLOBALS['egw_info']['apps'][$profileList[$i]['ea_appname']]['title']); + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.editProfile', + 'nocache' => '1', + 'tabpage' => '1', + 'profileid' => $profileList[$i]['profileID'] + ); + $applicationLink = ''.$application.''; + + $group = (empty($profileList[$i]['ea_group']) ? lang('any group') : $GLOBALS['egw']->accounts->id2name($profileList[$i]['ea_group'])); + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.editProfile', + 'nocache' => '1', + 'tabpage' => '1', + 'profileid' => $profileList[$i]['profileID'] + ); + $groupLink = ''.$group.''; + + $moveButtons = ' '. + ''; + + $data['profile_'.$profileList[$i]['profileID']] = array( + $descriptionLink, + $smtpServerLink, + $imapServerLink, + $applicationLink, + $groupLink, + $deleteLink, + $moveButtons, + + ); + } + } + + // create the array containing the table header + $rows = array( + lang('description'), + lang('smtp server name'), + lang('imap/pop3 server name'), + lang('application'), + lang('group'), + lang('delete'), + lang('order'), + ); + + // create the table html code + $this->t->set_var('server_next_match',$this->nextMatchTable( + $rows, + $data, + lang('profile list'), + $_start, + $_total, + $_menuAction) + ); + + $linkData = array + ( + 'menuaction' => 'emailadmin.ui.addProfile' + ); + $this->t->set_var('add_link',$GLOBALS['egw']->link('/index.php',$linkData)); + + $this->t->parse("out","main"); + + print $this->t->get('out','main'); + + } + + function nextMatchTable($_rows, $_data, $_description, $_start, $_total, $_menuAction) + { + $template =& CreateObject('phpgwapi.Template',EGW_APP_TPL); + $template->set_file(array("body" => "nextMatch.tpl")); + $template->set_block('body','row_list','rowList'); + $template->set_block('body','header_row','headerRow'); + + $var = Array( + 'th_bg' => $GLOBALS['egw_info']['theme']['th_bg'], + 'left_next_matchs' => $this->nextmatchs->left('/index.php',$start,$total,'menuaction=emailadmin.ui.listServers'), + 'right_next_matchs' => $this->nextmatchs->right('/admin/groups.php',$start,$total,'menuaction=emailadmin.ui.listServers'), + 'lang_groups' => lang('user groups'), + 'sort_name' => $this->nextmatchs->show_sort_order($sort,'account_lid',$order,'/index.php',lang('name'),'menuaction=emailadmin.ui.listServers'), + 'description' => $_description, + 'header_edit' => lang('Edit'), + 'header_delete' => lang('Delete') + ); + $template->set_var($var); + + $data = ''; + if(is_array($_rows)) + { + foreach($_rows as $value) + { + $data .= "$value"; + } + $template->set_var('header_row_data', $data); + $template->fp('headerRow','header_row',True); + #$template->fp('header_row','header_row',True); + } + + if(is_array($_data)) + { + foreach($_data as $rowID => $value) + { + $data = ''; + foreach($value as $rowData) + { + $data .= "$rowData"; + } + $template->set_var('row_data', $data); + $template->set_var('row_id', $rowID); + $template->fp('rowList','row_list',True); + } + } + + return $template->fp('out','body'); + + } + + function saveProfile() + { + $globalSettings = array(); + $smtpSettings = array(); + $imapSettings = array(); + + // try to get the profileID + if(is_int(intval($_GET['profileID'])) && !empty($_GET['profileID'])) { + $globalSettings['profileID'] = intval($_GET['profileID']); + } + $globalSettings['description'] = $_POST['globalsettings']['description']; + $globalSettings['defaultDomain'] = $_POST['globalsettings']['defaultDomain']; + $globalSettings['organisationName'] = $_POST['globalsettings']['organisationName']; + $globalSettings['userDefinedAccounts'] = $_POST['globalsettings']['userDefinedAccounts']; + $globalSettings['ea_appname'] = ($_POST['globalsettings']['ea_appname'] == 'any' ? '' : $_POST['globalsettings']['ea_appname']); + $globalSettings['ea_group'] = ($_POST['globalsettings']['ea_group'] == 'any' ? '' : (int)$_POST['globalsettings']['ea_group']); + + + // get the settings for the smtp server + $smtpType = $_POST['smtpsettings']['smtpType']; + foreach($this->boemailadmin->getFieldNames($smtpType,'smtp') as $key) { + $smtpSettings[$key] = $_POST['smtpsettings'][$smtpType][$key]; + } + $smtpSettings['smtpType'] = $smtpType; + + #_debug_array($smtpSettings); exit; + + // get the settings for the imap/pop3 server + $imapType = $_POST['imapsettings']['imapType']; + foreach($this->boemailadmin->getFieldNames($imapType,'imap') as $key) { + switch($key) { + case 'imapTLSAuthentication': + $imapSettings[$key] = $_POST['imapsettings'][$imapType][$key] != 'dontvalidate'; + break; + default: + $imapSettings[$key] = $_POST['imapsettings'][$imapType][$key]; + break; + } + } + $imapSettings['imapType'] = $imapType; + + #_debug_array($imapSettings); + + $this->boemailadmin->saveProfile($globalSettings, $smtpSettings, $imapSettings); + + print ""; + $GLOBALS['egw']->common->egw_exit(); + exit; + } + + function translate() + { + # skeleton + # $this->t->set_var('',lang('')); + + $this->t->set_var('lang_server_name',lang('server name')); + $this->t->set_var('lang_server_description',lang('description')); + $this->t->set_var('lang_edit',lang('edit')); + $this->t->set_var('lang_save',lang('save')); + $this->t->set_var('lang_delete',lang('delete')); + $this->t->set_var('lang_back',lang('back')); + $this->t->set_var('lang_remove',lang('remove')); + $this->t->set_var('lang_ldap_server',lang('LDAP server')); + $this->t->set_var('lang_ldap_basedn',lang('LDAP basedn')); + $this->t->set_var('lang_ldap_server_admin',lang('admin dn')); + $this->t->set_var('lang_ldap_server_password',lang('admin password')); + $this->t->set_var('lang_add_profile',lang('add profile')); + $this->t->set_var('lang_domain_name',lang('domainname')); + $this->t->set_var('lang_SMTP_server_hostname_or_IP_address',lang('SMTP-Server hostname or IP address')); + $this->t->set_var('lang_SMTP_server_port',lang('SMTP-Server port')); + $this->t->set_var('lang_Use_SMTP_auth',lang('Use SMTP auth')); + $this->t->set_var('lang_Select_type_of_SMTP_Server',lang('Select type of SMTP Server')); + $this->t->set_var('lang_profile_name',lang('Profile Name')); + $this->t->set_var('lang_default_domain',lang('enter your default mail domain (from: user@domain)')); + $this->t->set_var('lang_organisation_name',lang('name of organisation')); + $this->t->set_var('lang_user_defined_accounts',lang('users can define their own emailaccounts')); + $this->t->set_var('lang_LDAP_server_hostname_or_IP_address',lang('LDAP server hostname or ip address')); + $this->t->set_var('lang_LDAP_server_admin_dn',lang('LDAP server admin DN')); + $this->t->set_var('lang_LDAP_server_admin_pw',lang('LDAP server admin password')); + $this->t->set_var('lang_LDAP_server_base_dn',lang('LDAP server accounts DN')); + $this->t->set_var('lang_use_LDAP_defaults',lang('use LDAP defaults')); + $this->t->set_var('lang_LDAP_settings',lang('LDAP settings')); + $this->t->set_var('lang_select_type_of_imap/pop3_server',lang('select type of IMAP/POP3 server')); + $this->t->set_var('lang_pop3_server_hostname_or_IP_address',lang('POP3 server hostname or ip address')); + $this->t->set_var('lang_pop3_server_port',lang('POP3 server port')); + $this->t->set_var('lang_imap_server_hostname_or_IP_address',lang('IMAP server hostname or ip address')); + $this->t->set_var('lang_imap_server_port',lang('IMAP server port')); + $this->t->set_var('lang_use_tls_encryption',lang('use tls encryption')); + $this->t->set_var('lang_use_tls_authentication',lang('use tls authentication')); + $this->t->set_var('lang_sieve_settings',lang('Sieve settings')); + $this->t->set_var('lang_enable_sieve',lang('enable Sieve')); + $this->t->set_var('lang_sieve_server_hostname_or_ip_address',lang('Sieve server hostname or ip address')); + $this->t->set_var('lang_sieve_server_port',lang('Sieve server port')); + $this->t->set_var('lang_enable_cyrus_imap_administration',lang('enable Cyrus IMAP server administration')); + $this->t->set_var('lang_cyrus_imap_administration',lang('Cyrus IMAP server administration')); + $this->t->set_var('lang_admin_username',lang('admin username')); + $this->t->set_var('lang_admin_password',lang('admin password')); + $this->t->set_var('lang_imap_server_logintyp',lang('imap server logintyp')); + $this->t->set_var('lang_standard',lang('username (standard)')); + $this->t->set_var('lang_vmailmgr',lang('username@domainname (Virtual MAIL ManaGeR)')); + $this->t->set_var('lang_pre_2001_c_client',lang('IMAP C-Client Version < 2001')); + $this->t->set_var('lang_user_can_edit_forwarding_address',lang('user can edit forwarding address')); + $this->t->set_var('lang_can_be_used_by_application',lang('can be used by application')); + $this->t->set_var('lang_can_be_used_by_group',lang('can be used by group')); + $this->t->set_var('lang_smtp_auth',lang('smtp authentication')); + $this->t->set_var('lang_username',lang('username')); + $this->t->set_var('lang_password',lang('password')); + $this->t->set_var('lang_smtp_settings',lang('smtp settings')); + $this->t->set_var('lang_smtp_options',lang('smtp options')); + $this->t->set_var('lang_profile_access_rights',lang('profile access rights')); + $this->t->set_var('lang_global_settings',lang('')); + $this->t->set_var('lang_organisation',lang('organisation')); + $this->t->set_var('lang_global_options',lang('global options')); + $this->t->set_var('lang_server_settings',lang('server settings')); + $this->t->set_var('lang_encryption_settings',lang('encryption settings')); + $this->t->set_var('lang_no_encryption',lang('no encryption')); + $this->t->set_var('lang_encrypted_connection',lang('encrypted connection')); + $this->t->set_var('lang_do_not_validate_certificate',lang('do not validate certificate')); + $this->t->set_var('',lang('')); + # $this->t->set_var('',lang('')); + + } + } +?> diff --git a/emailadmin/inc/class.uiuserdata.inc.php b/emailadmin/inc/class.uiuserdata.inc.php new file mode 100644 index 0000000000..a028677ee7 --- /dev/null +++ b/emailadmin/inc/class.uiuserdata.inc.php @@ -0,0 +1,215 @@ + True, + 'saveUserData' => True + ); + + function uiuserdata() + { + $this->t =& CreateObject('phpgwapi.Template',EGW_APP_TPL); + $this->boemailadmin =& CreateObject('emailadmin.bo'); + } + + function display_app_header() + { + if(!@is_object($GLOBALS['egw']->js)) + { + $GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript'); + } + $GLOBALS['egw']->js->validate_file('jscode','editUserdata','emailadmin'); + $GLOBALS['egw_info']['flags']['include_xajax'] = True; + + $GLOBALS['egw']->common->egw_header(); + echo parse_navbar(); + } + + function editUserData($_useCache='0') + { + if(!is_object($GLOBALS['egw']->html)) { + $GLOBALS['egw']->html =& CreateObject('phpgwapi.html'); + } + + $accountID = $_GET['account_id']; + $GLOBALS['account_id'] = $accountID; + + $this->display_app_header(); + + $this->translate(); + + $this->t->set_file(array("editUserData" => "edituserdata.tpl")); + $this->t->set_block('editUserData','form','form'); + $this->t->set_block('editUserData','link_row','link_row'); + $this->t->set_var("th_bg",$GLOBALS['egw_info']["theme"]["th_bg"]); + $this->t->set_var("tr_color1",$GLOBALS['egw_info']["theme"]["row_on"]); + $this->t->set_var("tr_color2",$GLOBALS['egw_info']["theme"]["row_off"]); + + $this->t->set_var("lang_email_config",lang("edit email settings")); + $this->t->set_var("lang_emailAddress",lang("email address")); + $this->t->set_var("lang_emailaccount_active",lang("email account active")); + $this->t->set_var("lang_mailAlternateAddress",lang("alternate email address")); + $this->t->set_var("lang_mailRoutingAddress",lang("forward email's to")); + $this->t->set_var("lang_forward_also_to",lang("forward also to")); + $this->t->set_var("lang_button",lang("save")); + $this->t->set_var("lang_deliver_extern",lang("deliver extern")); + $this->t->set_var("lang_deliver_extern",lang("deliver extern")); + $this->t->set_var("lang_edit_email_settings",lang("edit email settings")); + $this->t->set_var("lang_ready",lang("Done")); + $this->t->set_var("link_back",$GLOBALS['egw']->link('/admin/accounts.php')); + + $linkData = array + ( + 'menuaction' => 'emailadmin.uiuserdata.saveUserData', + 'account_id' => $accountID + ); + $this->t->set_var("form_action", $GLOBALS['egw']->link('/index.php',$linkData)); + + $this->t->set_var('url_image_add',$GLOBALS['egw']->common->image('phpgwapi','new')); + $this->t->set_var('url_image_edit',$GLOBALS['egw']->common->image('phpgwapi','edit')); + $this->t->set_var('url_image_delete',$GLOBALS['egw']->common->image('phpgwapi','delete')); + + // only when we show a existing user + if($userData = $this->boemailadmin->getUserData($accountID)) { + $addresses = array(); + foreach((array)$userData['mailAlternateAddress'] as $data) { + $addresses[$data] = $data; + } + $this->t->set_var('selectbox_mailAlternateAddress', $GLOBALS['egw']->html->select( + 'mailAlternateAddress', + '', + $addresses, + true, + "style='width: 100%;' id='mailAlternateAddress'", + 5) + ); + + $addresses = array(); + foreach((array)$userData['mailForwardingAddress'] as $data) { + $addresses[$data] = $data; + } + $this->t->set_var('selectbox_mailRoutingAddress', $GLOBALS['egw']->html->select( + 'mailForwardingAddress', + '', + $addresses, + true, + "style='width: 100%;' id='mailRoutingAddress'", + 5) + ); + + $this->t->set_var("quotaLimit",$userData["quotaLimit"]); + + $this->t->set_var("mailLocalAddress",$userData["mailLocalAddress"]); + $this->t->set_var("mailAlternateAddress",''); + $this->t->set_var("mailRoutingAddress",''); + $this->t->set_var("selected_".$userData["qmailDotMode"],'selected'); + $this->t->set_var("deliveryProgramPath",$userData["deliveryProgramPath"]); + + $this->t->set_var("uid",rawurlencode($_accountData["dn"])); + if ($userData["accountStatus"] == "active") + $this->t->set_var("account_checked","checked"); + if ($userData["deliveryMode"] == "forwardOnly") + $this->t->set_var("forwardOnly_checked","checked"); + if ($_accountData["deliverExtern"] == "active") + $this->t->set_var("deliver_checked","checked"); + } else { + $this->t->set_var("mailLocalAddress",''); + $this->t->set_var("mailAlternateAddress",''); + $this->t->set_var("mailRoutingAddress",''); + $this->t->set_var("options_mailAlternateAddress",lang('no alternate email address')); + $this->t->set_var("options_mailRoutingAddress",lang('no forwarding email address')); + $this->t->set_var("account_checked",''); + $this->t->set_var("forwardOnly_checked",''); + + $this->t->set_var('selectbox_mailAlternateAddress', $GLOBALS['egw']->html->select( + 'mailAlternateAddress', + '', + array(), + true, + "style='width: 100%;' id='mailAlternateAddress'", + 5) + ); + + $this->t->set_var('selectbox_mailRoutingAddress', $GLOBALS['egw']->html->select( + 'mailForwardingAddress', + '', + array(), + true, + "style='width: 100%;' id='mailRoutingAddress'", + 5) + ); + + $this->t->set_var('quotaLimit',''); + } + + // create the menu on the left, if needed + $menuClass =& CreateObject('admin.uimenuclass'); + $this->t->set_var('rows',$menuClass->createHTMLCode('edit_user')); + + $this->t->pparse("out","form"); + + } + + function saveUserData() + { + if($_POST["accountStatus"] == "on") { + $accountStatus = "active"; + } + + if($_POST["forwardOnly"] == "on") { + $deliveryMode = "forwardOnly"; + } + + $formData = array ( + 'mailLocalAddress' => $_POST["mailLocalAddress"], + 'mailAlternateAddress' => $_POST["mailAlternateAddress"], + 'mailForwardingAddress' => $_POST["mailForwardingAddress"], + 'quotaLimit' => $_POST["quotaLimit"], + 'qmailDotMode' => $_POST["qmailDotMode"], + 'deliveryProgramPath' => $_POST["deliveryProgramPath"], + 'accountStatus' => $accountStatus, + 'deliveryMode' => $deliveryMode + ); + + $this->boemailadmin->saveUserData($_GET['account_id'], $formData); + + // read date fresh from ldap storage + $this->editUserData(); + } + + function translate() + { + $this->t->set_var('th_bg',$GLOBALS['egw_info']['theme']['th_bg']); + + $this->t->set_var('lang_add',lang('add')); + $this->t->set_var('lang_done',lang('Done')); + $this->t->set_var('lang_remove',lang('remove')); + $this->t->set_var('lang_remove',lang('remove')); + $this->t->set_var('lang_advanced_options',lang('advanced options')); + $this->t->set_var('lang_qmaildotmode',lang('qmaildotmode')); + $this->t->set_var('lang_default',lang('default')); + $this->t->set_var('lang_quota_settings',lang('quota settings')); + $this->t->set_var('lang_qoutainmbyte',lang('qouta size in MByte')); + $this->t->set_var('lang_inmbyte',lang('in MByte')); + $this->t->set_var('lang_0forunlimited',lang('leave empty for no quota')); + $this->t->set_var('lang_forward_only',lang('forward only')); + $this->t->set_var('lang_enter_new_address',lang('Add new email address:')); + $this->t->set_var('lang_update_current_address',lang('Update current email address:')); + } + } +?> diff --git a/emailadmin/inc/hook_admin.inc.php b/emailadmin/inc/hook_admin.inc.php new file mode 100644 index 0000000000..bbf5ee97bf --- /dev/null +++ b/emailadmin/inc/hook_admin.inc.php @@ -0,0 +1,23 @@ + * + * -------------------------------------------- * + * This program is free software; you can redistribute it and/or modify it * + * under the terms of the GNU General Public License as published by the * + * Free Software Foundation; either version 2 of the License, or (at your * + * option) any later version. * + \**************************************************************************/ + /* $Id$ */ + +// Only Modify the $file and $title variables..... + $title = $appname; + $file = Array( + 'Site Configuration' => $GLOBALS['egw']->link('/index.php','menuaction=emailadmin.ui.listProfiles') + ); + +//Do not modify below this line + display_section($appname,$title,$file); + +?> diff --git a/emailadmin/index.php b/emailadmin/index.php new file mode 100644 index 0000000000..a38f4162cc --- /dev/null +++ b/emailadmin/index.php @@ -0,0 +1,26 @@ + array( + 'currentapp' => 'emailadmin', + 'noheader' => True, + 'nonavbar' => True, + ), + ); + include('../header.inc.php'); + + execmethod('emailadmin.ui.listProfiles'); +?> diff --git a/emailadmin/js/jscode/editProfile.js b/emailadmin/js/jscode/editProfile.js new file mode 100644 index 0000000000..547c900932 --- /dev/null +++ b/emailadmin/js/jscode/editProfile.js @@ -0,0 +1,25 @@ +var tab = new Tabs(4,'activetab','inactivetab','tab','tabcontent','','','tabpage'); +var smtp = new Tabs(5,'activetab','inactivetab','smtp','smtpcontent','smtpselector','',''); +var imap = new Tabs(6,'activetab','inactivetab','imap','imapcontent','imapselector','',''); + +function initAll() { + tab.init(); + smtp.init(); + imap.init(); +} + +function ea_setIMAPDefaults(_imapType) { + var currentInput = document.getElementsByName("imapsettings[" + _imapType + "][imapPort]")[0]; + + if(_imapType > 1) { + // imap + if(currentInput.value == '110') { + currentInput.value = '143'; + } + } else { + // pop3 + if(currentInput.value == '143') { + currentInput.value = '110'; + } + } +} \ No newline at end of file diff --git a/emailadmin/js/jscode/editUserdata.js b/emailadmin/js/jscode/editUserdata.js new file mode 100644 index 0000000000..452540d869 --- /dev/null +++ b/emailadmin/js/jscode/editUserdata.js @@ -0,0 +1,59 @@ +function addRow(_selectBoxName, _prompt) { + result = prompt(_prompt, ''); + + if((result == '') || (result == null)) { + return false; + } + + var newOption = new Option(result, result); + + selectBox = document.getElementById(_selectBoxName); + var length = selectBox.length; + + selectBox.options[length] = newOption; + selectBox.selectedIndex = length; +} + +function editRow(_selectBoxName, _prompt) { + selectBox = document.getElementById(_selectBoxName); + + selectedItem = selectBox.selectedIndex; + + if(selectedItem != null && selectedItem != -1) { + value = selectBox.options[selectedItem].text; + result = prompt(_prompt, value); + + if((result == '') || (result == null)) { + return false; + } + + var newOption = new Option(result, result); + + selectBox.options[selectedItem] = newOption; + selectBox.selectedIndex = selectedItem; + } +} + +function removeRow(_selectBoxName) { + selectBox = document.getElementById(_selectBoxName); + + selectedItem = selectBox.selectedIndex; + if(selectedItem != null) { + selectBox.options[selectedItem] = null; + } + selectedItem--; + if(selectedItem >= 0) { + selectBox.selectedIndex = selectedItem; + } else if (selectBox.length > 0) { + selectBox.selectedIndex = 0; + } +} + +function selectAllOptions(_selectBoxName) { + selectBox = document.getElementById(_selectBoxName); + + for(var i=0;i0) + order = order + ','; + order = order + inputElements[i].id; + } + + return order; +} + +function moveUp(node) { + // get the row node + thisRow = node.parentNode.parentNode; + if(thisRow.previousSibling) + { + currentNode = thisRow.previousSibling; + while(currentNode.nodeType != 1) + { + if(!currentNode.previousSibling) + return; + currentNode = currentNode.previousSibling; + } + thisRow.parentNode.insertBefore(thisRow,currentNode); + + //getOrder('tabel1'); + } +} + +function moveDown(node) { + // get the row node + thisRow = node.parentNode.parentNode; + if(thisRow.nextSibling) + { + currentNode = thisRow.nextSibling; + while(currentNode.nodeType != 1) + { + if(!currentNode.nextSibling) + return; + currentNode = currentNode.nextSibling; + } + thisRow.parentNode.insertBefore(currentNode,thisRow); + + //getOrder('tabel1'); + } +} + +function saveOrder() +{ + xajax_doXMLHTTP("emailadmin.ajaxemailadmin.setOrder", getOrder('nextMatchBody')); +} diff --git a/emailadmin/setup/phpgw_ca.lang b/emailadmin/setup/phpgw_ca.lang new file mode 100644 index 0000000000..da4da39b54 --- /dev/null +++ b/emailadmin/setup/phpgw_ca.lang @@ -0,0 +1,68 @@ +add profile emailadmin ca Afegir perfil +admin dn emailadmin ca dn del administrador +admin password emailadmin ca contrasenya del administrador +admin username emailadmin ca nom d'usuari del administrador +advanced options emailadmin ca opcions avançades +alternate email address emailadmin ca adreça de correu alternativa +cyrus imap server emailadmin ca Servidor IMAP Cyrus +cyrus imap server administration emailadmin ca Administració del servidor IMAP Cyrus +default emailadmin ca predeterminada +deliver extern emailadmin ca entrega externa +do you really want to delete this profile emailadmin ca Realmente voleu esborrar aquest perfil? +domainname emailadmin ca nom del domini +edit email settings emailadmin ca editar configuració del compte +email account active emailadmin ca compte de correu electrònic actiu +email address emailadmin ca adreça de correu electrònic +enable cyrus imap server administration emailadmin ca activar administració del servidor Cyrus IMAP +enable sieve emailadmin ca activar Sieve +enter your default mail domain (from: user@domain) emailadmin ca Entreu el domini predeterminat (de usuari@domini) +forward also to emailadmin ca reeenviar també a +forward email's to emailadmin ca reenviar correus a +forward only emailadmin ca només reenviar +imap admin password admin ca contrasenya de l'administrador IMAP +imap admin user admin ca usuari administrador IMAP +imap c-client version < 2001 emailadmin ca Versió C-Client IMAP < 2001 +imap server hostname or ip address emailadmin ca Servidor IMAP o adreça IP +imap server logintyp emailadmin ca Tipus de sessió del servidor IMAP +imap server port emailadmin ca Port del servidor IMAP +imap/pop3 server name emailadmin ca Nom del servidor POP/IMAP +in mbyte emailadmin ca en MBytes +ldap basedn emailadmin ca basedn per a LDAP +ldap server emailadmin ca servidor LDAP +ldap server accounts dn emailadmin ca DN per a comptes del servidor LDAP +ldap server admin dn emailadmin ca DN del administrador del servidor LDAP +ldap server admin password emailadmin ca contrasenya del administrador del servidor LDAP +ldap server hostname or ip address emailadmin ca Nom del servidor LDAP o adreça IP +ldap settings emailadmin ca Configuració LDAP +leave empty for no quota emailadmin ca Deixar en blanc per a no posar quota +mail settings admin ca Configuració del correu. +name of organisation emailadmin ca Nom de l'organització +no alternate email address emailadmin ca Sense adreça de correu alternativa +no forwarding email address emailadmin ca Sense adreça de correu per a reenviar +pop3 server hostname or ip address emailadmin ca Nom del servidor POP3 o adreça IP +pop3 server port emailadmin ca Port del servidor POP3 +postfix with ldap emailadmin ca Postfix amb LDAP +profile list emailadmin ca Llista de perfils +profile name emailadmin ca Nom del perfil +qmaildotmode emailadmin ca Modus de punt de qmail +qouta size in mbyte emailadmin ca Tamanyo de la quota en MBytes +quota settings emailadmin ca Configuració de les quotas +remove emailadmin ca esborrar +select type of imap/pop3 server emailadmin ca Seleccioneu el tipus de servidor IMAP/POP3 +select type of smtp server emailadmin ca Seleccioneu el tipus de servidor SMTP +sieve server hostname or ip address emailadmin ca Nom del servidor Sieve o adreça IP +sieve server port emailadmin ca Port del servidor Sieve +sieve settings emailadmin ca Configuració de Sieve +smtp server name emailadmin ca Nom del servidor SMTP +smtp-server hostname or ip address emailadmin ca Nom del servidor SMTP o adreça IP +smtp-server port emailadmin ca Port del servidor SMTP +standard emailadmin ca Estàndar +standard imap server emailadmin ca Servidor IMAP estàndar +standard pop3 server emailadmin ca Servidor POP3 estàndar +standard smtp-server emailadmin ca Servidor SMTP estàndar +use ldap defaults emailadmin ca usar les opcions predeterminades per LDAP +use smtp auth emailadmin ca Usar identificació SMTP +use tls authentication emailadmin ca Usar identificació TLS +use tls encryption emailadmin ca Usar xifrat TLS +users can define their own emailaccounts emailadmin ca Els usuaris poden definir els seus propis comptes de correu +virtual mail manager emailadmin ca Gestor de correu virtual diff --git a/emailadmin/setup/phpgw_da.lang b/emailadmin/setup/phpgw_da.lang new file mode 100644 index 0000000000..7e931709fa --- /dev/null +++ b/emailadmin/setup/phpgw_da.lang @@ -0,0 +1,69 @@ +add profile emailadmin da Tilføj Profil +admin dn emailadmin da admin dn +admin password emailadmin da admin adgangskode +admin passwort emailadmin da admin adgangskode +admin username emailadmin da admin brugernavn +advanced options emailadmin da avanceret indstillinger +alternate email address emailadmin da alternativ e-mail adresse +cyrus imap server emailadmin da Cyrus IMAP Server +cyrus imap server administration emailadmin da Cyrus IMAP server administration +default emailadmin da standart +deliver extern emailadmin da lever ekstern +do you really want to delete this profile emailadmin da Vil du virkelig slette denne profil +domainname emailadmin da domæne navn +edit email settings emailadmin da redigere e-mail indstillingerne +email account active emailadmin da e-mail konto aktiv +email address emailadmin da e-mail adresse +enable cyrus imap server administration emailadmin da aktivere Cyrus IMAP server administration +enable sieve emailadmin da aktiver Sieve +enter your default mail domain (from: user@domain) emailadmin da Indtast dit standart post domæne (fra: bruger@domæne) +forward also to emailadmin da videresend også til +forward email's to emailadmin da videresend e-mails til +forward only emailadmin da videresend kun +imap admin password admin da IMAP admin adgangskode +imap admin user admin da IMAP admin bruger +imap c-client version < 2001 emailadmin da IMAP C-Klient Version < 2001 +imap server hostname or ip address emailadmin da IMAP server domænenavn eller IP adresse +imap server logintyp emailadmin da IMAP server login type +imap server port emailadmin da IMAP server port +imap/pop3 server name emailadmin da IMAP/POP3 server navn +in mbyte emailadmin da i Megabytes +ldap basedn emailadmin da LDAP basedn +ldap server emailadmin da LDAP server +ldap server accounts dn emailadmin da LDAP server konto DN +ldap server admin dn emailadmin da LDAP server admin DN +ldap server admin password emailadmin da LDAP server admin adgangskode +ldap server hostname or ip address emailadmin da LDAP server domænenavn eller IP adresse +ldap settings emailadmin da LDAP indstillinger +leave empty for no quota emailadmin da efterlad tom hvis ingen citat +mail settings admin da Post indstillinger +name of organisation emailadmin da Navn på organisation +no alternate email address emailadmin da ingen alternativ e-mail adresse +no forwarding email address emailadmin da ingen viderestillet e-mail adresse +pop3 server hostname or ip address emailadmin da POP3 server domænenavn eller IP adresse +pop3 server port emailadmin da POP server port +postfix with ldap emailadmin da Postfix med LDAP +profile list emailadmin da Profil liste +profile name emailadmin da Profil navn +qmaildotmode emailadmin da qmaildotmode +qouta size in mbyte emailadmin da quota størrelse i Megabytes +quota settings emailadmin da quota indstillinger +remove emailadmin da fjern +select type of imap/pop3 server emailadmin da Vælg type IMAP/POP3 server +select type of smtp server emailadmin da Vælg time POP3 server +sieve server hostname or ip address emailadmin da Sieve server domænenavn eller IP adresse +sieve server port emailadmin da Sieve server port +sieve settings emailadmin da Sieve indstillinger +smtp server name emailadmin da SMTP server navn +smtp-server hostname or ip address emailadmin da SMTP server domænenavn eller IP adresse +smtp-server port emailadmin da SMTP server port +standard emailadmin da Standart +standard imap server emailadmin da Standart IMAP server +standard pop3 server emailadmin da Standart POP3 server +standard smtp-server emailadmin da Standart SMTP server +use ldap defaults emailadmin da brug LDAP standarter +use smtp auth emailadmin da Brug SMTP autorisation +use tls authentication emailadmin da Brug TLS autorisation +use tls encryption emailadmin da Brug TLS kryptering +users can define their own emailaccounts emailadmin da Brugere kan selv definere deres egne e-mail kontoer +virtual mail manager emailadmin da Virtuel post håndtering diff --git a/emailadmin/setup/phpgw_de.lang b/emailadmin/setup/phpgw_de.lang new file mode 100644 index 0000000000..b18c2ee8fc --- /dev/null +++ b/emailadmin/setup/phpgw_de.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin de Benutzerkonto '%1' nicht gefunden !!! +add new email address: emailadmin de Neue EMailadresse hinzufügen +add profile emailadmin de Profil hinzufügen +admin dn emailadmin de Admin DN +admin password emailadmin de Admin Passwort +admin username emailadmin de Administrator Benutzername +advanced options emailadmin de erweiterte Einstellungen +alternate email address emailadmin de zusätzliche EMailadressen +any application emailadmin de jede Anwendung +any group emailadmin de jede Gruppe +bad login name or password. emailadmin de Falscher Benutzername oder Passwort. +bad or malformed request. server responded: %s emailadmin de Falsche oder ungültige Anfrage. Server antwortet: %s +bad request: %s emailadmin de Falsche Anfrage: %s +can be used by application emailadmin de Kann von folgender Anwendung verwendet werden +can be used by group emailadmin de Kann von folgender Gruppe verwendet werden +connection dropped by imap server. emailadmin de Verbindung von IMAP Server beendet. +could not complete request. reason given: %s emailadmin de Konnte Anfrage nicht beenden. Grund: %s +could not open secure connection to the imap server. %s : %s. emailadmin de Konnte keine sichere Verbindung zum IMAP Server aufbauen. %s: %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin de CRAM-MD5 oder DIGEST-MD5 erforder das das Auth_SASL Packet instaliert ist. +cyrus imap server emailadmin de Cyrus IMAP-Server +cyrus imap server administration emailadmin de Cyrus IMAP-Server Administration +default emailadmin de Vorgabe +deliver extern emailadmin de extern ausliefern +do you really want to delete this profile emailadmin de Wollen Sie dieses Profil wirklich löschen +domainname emailadmin de Domänenname +edit email settings emailadmin de EMail Einstellungen +email account active emailadmin de EMailkonto aktiv +email address emailadmin de EMailadresse +email settings common de EMailkonto +emailadmin emailadmin de EMailAdmin +enable cyrus imap server administration emailadmin de Cyrus IMAP-Server Administration aktivieren +enable sieve emailadmin de Sieve aktivieren +encryption settings emailadmin de Verschlüsselungseinstellungen +enter your default mail domain (from: user@domain) emailadmin de Standard EMail-Domain (Von: benutzer@domain) +error connecting to imap server. %s : %s. emailadmin de Fehler beim Verbinden mit dem IMAP Server. %s : %s. +error connecting to imap server: [%s] %s. emailadmin de Fehler beim Verbinden mit dem IMAP Server. [%s] %s. +forward also to emailadmin de zusätzlich weiterleiten +forward email's to emailadmin de EMail's weiterleiten an +forward only emailadmin de nur weiterleiten +global options emailadmin de Globale Optionen +if using ssl or tls, you must have the php openssl extension loaded. emailadmin de Wenn Sie SSL oder TLS benutzern, müssen Sie die openssl PHP Erweiterung geladen haben. +imap admin password admin de IMAP Administrator Passwort +imap admin user admin de IMAP Administrator Benutzer +imap c-client version < 2001 emailadmin de IMAP C-Client Version < 2001 +imap server closed the connection. emailadmin de IMAP Server hat die Verbindung beendet. +imap server closed the connection. server responded: %s emailadmin de IMAP Server hat die Verbindung beendet. Server Antwort: %s +imap server hostname or ip address emailadmin de IMAP-Server Hostname oder IP-Adresse +imap server logintyp emailadmin de IMAP-Server Loginverfahren +imap server port emailadmin de IMAP-Server Port +imap/pop3 server name emailadmin de IMAP/POP3-Server Name +in mbyte emailadmin de in MByte +ldap basedn emailadmin de LDAP BaseDN +ldap server emailadmin de LDAP Server +ldap server accounts dn emailadmin de LDAP-Server Benutzerkonten DN +ldap server admin dn emailadmin de LDAP-Server Administrator DN +ldap server admin password emailadmin de LDAP-Server Administrator Passwort +ldap server hostname or ip address emailadmin de LDAP-Server Hostname oder IP-Adresse +ldap settings emailadmin de LDAP Einstellungen +leave empty for no quota emailadmin de leer lassen um Quota zu deaktivieren +mail settings admin de Mail Einstellungen +name of organisation emailadmin de Name der Organisation +no alternate email address emailadmin de keine zusätzlichen EMailadressen +no encryption emailadmin de keine Verschlüsselung +no forwarding email address emailadmin de keine Weiterleitungsadresse definiert +no message returned. emailadmin de Keine Nachricht zurückgeliefert. +no supported imap authentication method could be found. emailadmin de Keine unterstützte IMAP Authentifizierungsmethode gefunden. +order emailadmin de Reihenfolge +organisation emailadmin de Organisation +plesk can't rename users --> request ignored emailadmin de Plesk kann keine Benutzer umbenennen --> Anforderung ignoriert +plesk imap server (courier) emailadmin de Plesk IMAP Server (Courier) +plesk mail script '%1' not found !!! emailadmin de Plesk Mail Skript '%1' nicht gefunden !!! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin de Plesk verlangt, dass Passworte mindestens 5 Zeichen lang sind und nicht den Benutzernamen enthalten --> Passwort nicht gesetzt!!! +plesk smtp-server (qmail) emailadmin de Plesk SMTP-Server (Qmail) +pop3 server hostname or ip address emailadmin de POP3-Server Hostname oder IP-Adresse +pop3 server port emailadmin de POP3-Server Port +postfix with ldap emailadmin de Postfix mit LDAP +profile access rights emailadmin de Profilzugriffsrechte +profile list emailadmin de Profilliste +profile name emailadmin de Profilname +qmaildotmode emailadmin de qmaildotmode +qouta size in mbyte emailadmin de Quota Größe in MByte +quota settings emailadmin de Quota Einstellungen +remove emailadmin de Entfernen +select type of imap/pop3 server emailadmin de IMAP/POP3-Server Typ auswählen +select type of smtp server emailadmin de SMTP-Server Typ auswählen +server settings emailadmin de Server Einstellungen +sieve server hostname or ip address emailadmin de Sieve-Server Hostname oder IP-Adresse +sieve server port emailadmin de Sieve-Server Port +sieve settings emailadmin de Sieve Einstellungen +smtp authentication emailadmin de SMTP Anmeldung +smtp options emailadmin de SMTP Optionen +smtp server name emailadmin de SMTP-Server Name +smtp settings emailadmin de SMTP Einstellungen +smtp-server hostname or ip address emailadmin de SMTP-Server Hostname oder IP-Adresse +smtp-server port emailadmin de SMTP-Server Port +standard emailadmin de Vorgabe +standard imap server emailadmin de Standard IMAP-Server +standard pop3 server emailadmin de Standard POP3-Server +standard smtp-server emailadmin de Standard SMTP-Server +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin de Der IMAP Server scheint die eingestellte Authentifizierungsmethode nicht zu unterstützen. Bitte fragen Sie ihren Systemadministrator. +this php has no imap support compiled in!! emailadmin de Dieses PHP hat keine IMAP Unterstützung!!! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin de Um eine TLS Verbindung zu verwenden, benötigen Sie PHP 5.1.0 oder neuer. +unexpected response from server to authenticate command. emailadmin de Unerwartete Antwort des Servers auf das AUTHENTICATE Komando. +unexpected response from server to digest-md5 response. emailadmin de Unerwartete Antwort des Servers auf die Digest-MD5 Antwort. +unexpected response from server to login command. emailadmin de Unerwartete Antwort des Servers auf das LOGIN Komando. +unknown imap response from the server. server responded: %s emailadmin de Unbekannte IMAP Antwort vom Server. Server antwortet: %s +unsupported action '%1' !!! emailadmin de Nicht unterstützte Aktion '%1' !!! +update current email address: emailadmin de Aktualisiere aktuelle EMailadresse +use ldap defaults emailadmin de LDAP Standardeinstellungen benutzen +use smtp auth emailadmin de SMTP Auth benutzen +use tls authentication emailadmin de TLS Authentifizierung benutzen +use tls encryption emailadmin de TLS Verschlüsselung benutzen +user can edit forwarding address emailadmin de Anwender können ihre Weiterleitungsadresse bearbeiten +username (standard) emailadmin de Benutzername (Standard) +username@domainname (virtual mail manager) emailadmin de Benutzername@Domänenname (Virtual MAIL ManaGeR) +users can define their own emailaccounts emailadmin de Anwender können ihre eigenen Konten definieren +virtual mail manager emailadmin de Virtual MAIL ManaGeR diff --git a/emailadmin/setup/phpgw_en.lang b/emailadmin/setup/phpgw_en.lang new file mode 100755 index 0000000000..c0a7bef9db --- /dev/null +++ b/emailadmin/setup/phpgw_en.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin en Account '%1' not found !!! +add new email address: emailadmin en Add new email address: +add profile emailadmin en Add Profile +admin dn emailadmin en Admin dn +admin password emailadmin en Admin password +admin username emailadmin en Admin username +advanced options emailadmin en Advanced options +alternate email address emailadmin en Alternate email address +any application emailadmin en Any application +any group emailadmin en Any group +bad login name or password. emailadmin en Bad login name or password. +bad or malformed request. server responded: %s emailadmin en Bad or malformed request. Server Responded: %s +bad request: %s emailadmin en Bad request: %s +can be used by application emailadmin en Can be used by application +can be used by group emailadmin en Can be used by group +connection dropped by imap server. emailadmin en Connection dropped by IMAP server. +could not complete request. reason given: %s emailadmin en Could not complete request. Reason Given: %s +could not open secure connection to the imap server. %s : %s. emailadmin en Could not open secure connection to the IMAP server. %s : %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin en CRAM-MD5 or DIGEST-MD5 requires the Auth_SASL package to be installed. +cyrus imap server emailadmin en Cyrus IMAP Server +cyrus imap server administration emailadmin en Cyrus IMAP server administration +default emailadmin en default +deliver extern emailadmin en deliver extern +do you really want to delete this profile emailadmin en Do you really want to delete this Profile +domainname emailadmin en Domainname +edit email settings emailadmin en Edit email settings +email account active emailadmin en Email account active +email address emailadmin en Email address +email settings common en Email settings +emailadmin emailadmin en EMailAdmin +enable cyrus imap server administration emailadmin en enable Cyrus IMAP server administration +enable sieve emailadmin en Enable Sieve +encryption settings emailadmin en Encryption settings +enter your default mail domain (from: user@domain) emailadmin en Enter your default mail domain (from: user@domain) +error connecting to imap server. %s : %s. emailadmin en Error connecting to IMAP server. %s : %s. +error connecting to imap server: [%s] %s. emailadmin en Error connecting to IMAP server: [%s] %s. +forward also to emailadmin en Forward also to +forward email's to emailadmin en Forward email's to +forward only emailadmin en Forward only +global options emailadmin en Global options +if using ssl or tls, you must have the php openssl extension loaded. emailadmin en If using SSL or TLS, you must have the PHP openssl extension loaded. +imap admin password admin en IMAP admin password +imap admin user admin en IMAP admin user +imap c-client version < 2001 emailadmin en IMAP C-Client Version < 2001 +imap server closed the connection. emailadmin en IMAP server closed the connection. +imap server closed the connection. server responded: %s emailadmin en IMAP Server closed the connection. Server Responded: %s +imap server hostname or ip address emailadmin en IMAP server hostname or ip address +imap server logintyp emailadmin en IMAP server login type +imap server port emailadmin en IMAP server port +imap/pop3 server name emailadmin en IMAP/POP3 server name +in mbyte emailadmin en in MByte +ldap basedn emailadmin en LDAP basedn +ldap server emailadmin en LDAP server +ldap server accounts dn emailadmin en LDAP server accounts DN +ldap server admin dn emailadmin en LDAP server admin DN +ldap server admin password emailadmin en LDAP server admin password +ldap server hostname or ip address emailadmin en LDAP server hostname or ip address +ldap settings emailadmin en LDAP settings +leave empty for no quota emailadmin en leave empty for no quota +mail settings admin en Mail settings +name of organisation emailadmin en Name of organization +no alternate email address emailadmin en no alternate email address +no encryption emailadmin en no encryption +no forwarding email address emailadmin en no forwarding email address +no message returned. emailadmin en No message returned. +no supported imap authentication method could be found. emailadmin en No supported IMAP authentication method could be found. +order emailadmin en Order +organisation emailadmin en Organisation +plesk can't rename users --> request ignored emailadmin en Plesk can't rename users --> request ignored +plesk imap server (courier) emailadmin en Plesk IMAP Server (Courier) +plesk mail script '%1' not found !!! emailadmin en Plesk mail script '%1' not found !!! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin en Plesk requires passwords to have at least 5 characters and not contain the account-name --> password NOT set!!! +plesk smtp-server (qmail) emailadmin en Plesk SMTP-Server (Qmail) +pop3 server hostname or ip address emailadmin en POP3 server hostname or ip address +pop3 server port emailadmin en POP3 server port +postfix with ldap emailadmin en Postfix with LDAP +profile access rights emailadmin en profile access rights +profile list emailadmin en Profile List +profile name emailadmin en Profile Name +qmaildotmode emailadmin en qmaildotmode +qouta size in mbyte emailadmin en Qouta size in MByte +quota settings emailadmin en Quota settings +remove emailadmin en Remove +select type of imap/pop3 server emailadmin en Select type of IMAP/POP3 server +select type of smtp server emailadmin en Select type of SMTP Server +server settings emailadmin en Server settings +sieve server hostname or ip address emailadmin en Sieve server hostname or ip address +sieve server port emailadmin en Sieve server port +sieve settings emailadmin en Sieve settings +smtp authentication emailadmin en SMTP authentication +smtp options emailadmin en SMTP options +smtp server name emailadmin en SMTP server name +smtp settings emailadmin en SMTP settings +smtp-server hostname or ip address emailadmin en SMTP server hostname or IP address +smtp-server port emailadmin en SMTP server port +standard emailadmin en Standard +standard imap server emailadmin en Standard IMAP server +standard pop3 server emailadmin en Standard POP3 server +standard smtp-server emailadmin en Standard SMTP server +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin en The IMAP server does not appear to support the authentication method selected. Please contact your system administrator. +this php has no imap support compiled in!! emailadmin en This PHP has no IMAP support compiled in!! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin en To use a TLS connection, you must be running a version of PHP 5.1.0 or higher. +unexpected response from server to authenticate command. emailadmin en Unexpected response from server to AUTHENTICATE command. +unexpected response from server to digest-md5 response. emailadmin en Unexpected response from server to Digest-MD5 response. +unexpected response from server to login command. emailadmin en Unexpected response from server to LOGIN command. +unknown imap response from the server. server responded: %s emailadmin en Unknown IMAP response from the server. Server Responded: %s +unsupported action '%1' !!! emailadmin en Unsupported action '%1' !!! +update current email address: emailadmin en Update current email address: +use ldap defaults emailadmin en Use LDAP defaults +use smtp auth emailadmin en Use SMTP auth +use tls authentication emailadmin en Use TLS authentication +use tls encryption emailadmin en Use TLS encryption +user can edit forwarding address emailadmin en User can edit forwarding address +username (standard) emailadmin en username (standard) +username@domainname (virtual mail manager) emailadmin en username@domainname (Virtual MAIL ManaGeR) +users can define their own emailaccounts emailadmin en Users can define their own email accounts +virtual mail manager emailadmin en Virtual MAIL ManaGeR diff --git a/emailadmin/setup/phpgw_es-es.lang b/emailadmin/setup/phpgw_es-es.lang new file mode 100644 index 0000000000..b15bcbaa09 --- /dev/null +++ b/emailadmin/setup/phpgw_es-es.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin es-es ¡No se encontró la cuenta '%1'! +add new email address: emailadmin es-es Añadir nueva dirección de correo +add profile emailadmin es-es Añadir perfil +admin dn emailadmin es-es dn del administrador +admin password emailadmin es-es contraseña del administrador +admin username emailadmin es-es usuario del administrador +advanced options emailadmin es-es opciones avanzadas +alternate email address emailadmin es-es dirección de correo alternativa +any application emailadmin es-es cualquier aplicación +any group emailadmin es-es cualquier grupo +bad login name or password. emailadmin es-es Nombre de usuario o contraseña incorrectos +bad or malformed request. server responded: %s emailadmin es-es Petición errónea o mal formado. El servidor respondió: %s +bad request: %s emailadmin es-es Petición errónea: %s +can be used by application emailadmin es-es puede usarse por la aplicación +can be used by group emailadmin es-es puede usarse por el grupo +connection dropped by imap server. emailadmin es-es El servidor IMAP ha interrumpido la conexión +could not complete request. reason given: %s emailadmin es-es No se pudo completar la solicitud. Motivo: %s +could not open secure connection to the imap server. %s : %s. emailadmin es-es No se pudo abrir una conexión segura con el servidor IMAP. %s: %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin es-es CRAM-MD5 o DIGEST-MD5 necesitan el paquete Auth_SASL para estar instalado. +cyrus imap server emailadmin es-es Servidor IMAP Cyrus +cyrus imap server administration emailadmin es-es Administración del servidor IMAP Cyrus +default emailadmin es-es predeterminada +deliver extern emailadmin es-es entrega externa +do you really want to delete this profile emailadmin es-es ¿Realmente desea borrar este perfil? +domainname emailadmin es-es nombre del dominio +edit email settings emailadmin es-es editar configuración de la cuenta +email account active emailadmin es-es cuenta de correo electrónico activa +email address emailadmin es-es dirección de correo electrónico +email settings common es-es Configuración del correo electrónico +emailadmin emailadmin es-es Administración del correo electrónico +enable cyrus imap server administration emailadmin es-es activar administración del servidor Cyrus IMAP +enable sieve emailadmin es-es activar Sieve +encryption settings emailadmin es-es configuración del cifrado +enter your default mail domain (from: user@domain) emailadmin es-es introduzca el dominio predeterminado (de usuario@dominio) +error connecting to imap server. %s : %s. emailadmin es-es Error al conectar con el servidor IMAP. %s: %s. +error connecting to imap server: [%s] %s. emailadmin es-es Error al conectar con el servidor IMAP: [%s] %s. +forward also to emailadmin es-es reenviar también a +forward email's to emailadmin es-es reenviar correos a +forward only emailadmin es-es sólo reenviar +global options emailadmin es-es opciones globales +if using ssl or tls, you must have the php openssl extension loaded. emailadmin es-es Si usa SSL o TLS, debe tener cargada la extensión openssl de PHP. +imap admin password admin es-es contraseña del administrador IMAP +imap admin user admin es-es usuario administrador IMAP +imap c-client version < 2001 emailadmin es-es Versión C-Cliente IMAP < 2001 +imap server closed the connection. emailadmin es-es El servidor IMAP cerró la conexión. +imap server closed the connection. server responded: %s emailadmin es-es El servidor IMAP cerró la conexión. El servidor respondió: %s +imap server hostname or ip address emailadmin es-es Servidor IMAP o dirección IP +imap server logintyp emailadmin es-es Tipo de sesión del servidor IMAP +imap server port emailadmin es-es Puerto del servidor IMAP +imap/pop3 server name emailadmin es-es Nombre del servidor POP/IMAP +in mbyte emailadmin es-es en MBytes +ldap basedn emailadmin es-es basedn para LDAP +ldap server emailadmin es-es servidor LDAP +ldap server accounts dn emailadmin es-es DN para cuentas del servidor LDAP +ldap server admin dn emailadmin es-es DN del administrador del servidor LDAP +ldap server admin password emailadmin es-es contraseña del administrador del servidor LDAP +ldap server hostname or ip address emailadmin es-es Nombre del servidor LDAP o dirección IP +ldap settings emailadmin es-es Configuración LDAP +leave empty for no quota emailadmin es-es Dejar en blanco para no poner cuota +mail settings admin es-es Configuración del correo. +name of organisation emailadmin es-es Nombre de la organización +no alternate email address emailadmin es-es Sin dirección de correo alternativa +no encryption emailadmin es-es Sin cifrar +no forwarding email address emailadmin es-es Sin dirección de correo para reenviar +no message returned. emailadmin es-es No se devolvió ningún mensaje. +no supported imap authentication method could be found. emailadmin es-es No se pudo encontrar ningún método soportado de identificación IMAP. +order emailadmin es-es orden +organisation emailadmin es-es organización +plesk can't rename users --> request ignored emailadmin es-es Plesk no puede renombrar usuarios --> Se ignora la solicitud +plesk imap server (courier) emailadmin es-es Servidor IMAP Plesk (Courier) +plesk mail script '%1' not found !!! emailadmin es-es ¡No se encontró el script de correo de Plesk '%1'! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin es-es Plesk requiere que las contraseñas tengan al menos 5 caracteres y no contengan el nombre de la cuenta --> NO se establece la contraseña +plesk smtp-server (qmail) emailadmin es-es Servidor SMTP de Plesk (Qmail) +pop3 server hostname or ip address emailadmin es-es Nombre del servidor POP3 o dirección IP +pop3 server port emailadmin es-es Puerto del servidor POP3 +postfix with ldap emailadmin es-es Postfix con LDAP +profile access rights emailadmin es-es Derechos de acceso del perfil +profile list emailadmin es-es Lista de perfiles +profile name emailadmin es-es Nombre del perfil +qmaildotmode emailadmin es-es Modo de punto de qmail +qouta size in mbyte emailadmin es-es Tamaño de la cuota en MBytes +quota settings emailadmin es-es Configuración de las cuotas +remove emailadmin es-es borrar +select type of imap/pop3 server emailadmin es-es Seleccione el tipo de servidor IMAP/POP3 +select type of smtp server emailadmin es-es Seleccione el tipo de servidor SMTP +server settings emailadmin es-es configuración del servidor +sieve server hostname or ip address emailadmin es-es Nombre del servidor Sieve o dirección IP +sieve server port emailadmin es-es Puerto del servidor Sieve +sieve settings emailadmin es-es Configuración de Sieve +smtp authentication emailadmin es-es identificación SMTP +smtp options emailadmin es-es opciones SMTP +smtp server name emailadmin es-es Nombre del servidor SMTP +smtp settings emailadmin es-es configuración SMTP +smtp-server hostname or ip address emailadmin es-es Nombre del servidor SMTP o dirección IP +smtp-server port emailadmin es-es Puerto del servidor SMTP +standard emailadmin es-es Estándar +standard imap server emailadmin es-es Servidor IMAP estándar +standard pop3 server emailadmin es-es Servidor POP3 estándar +standard smtp-server emailadmin es-es Servidor SMTP estándar +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin es-es El servidor IMAP no parece soportar el método de identificación seleccionado. Por favor, póngase en contacto el administrador de su sistema. +this php has no imap support compiled in!! emailadmin es-es ¡¡Esta instalación de PHP no tiene soporte IMAP!! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin es-es Para usar una conexión TLS, debe ejecutar una versión de PHP 5.1.0 o superior. +unexpected response from server to authenticate command. emailadmin es-es Respuesta inesperada del servidor al comando AUTHENTICATE. +unexpected response from server to digest-md5 response. emailadmin es-es Respuesta inesperada del servidor a la respuesta Digest-MD5. +unexpected response from server to login command. emailadmin es-es Respuesta inesperada del servidor al comando LOGIN. +unknown imap response from the server. server responded: %s emailadmin es-es Respuesta IMAP desconocida del servidor. El servidor respondió: %s +unsupported action '%1' !!! emailadmin es-es ¡La acción '%1' no está soportada! +update current email address: emailadmin es-es Actualizar la dirección de correo actual: +use ldap defaults emailadmin es-es usar las opciones predeterminadas para LDAP +use smtp auth emailadmin es-es Usar identificación SMTP +use tls authentication emailadmin es-es Usar identificación TLS +use tls encryption emailadmin es-es Usar cifrado TLS +user can edit forwarding address emailadmin es-es El usuario puede editar la dirección de reenvío +username (standard) emailadmin es-es usuario (estándar) +username@domainname (virtual mail manager) emailadmin es-es usuario@dominio (Gestor de correo virtual) +users can define their own emailaccounts emailadmin es-es Los usuarios pueden definir sus propias cuentas de correo +virtual mail manager emailadmin es-es Gestor de correo virtual diff --git a/emailadmin/setup/phpgw_fi.lang b/emailadmin/setup/phpgw_fi.lang new file mode 100644 index 0000000000..17a88f066a --- /dev/null +++ b/emailadmin/setup/phpgw_fi.lang @@ -0,0 +1,113 @@ +account '%1' not found !!! emailadmin fi Tiliä '%1' ei löytynyt !!! +add new email address: emailadmin fi Lisää uusi sähköpostiosoite +add profile emailadmin fi Lisää profiili +admin dn emailadmin fi admin dn +admin password emailadmin fi admin salasana +admin username emailadmin fi admin käyttäjätunnus +advanced options emailadmin fi lisäasetukset +alternate email address emailadmin fi vaihtoehtoinen sähköpostiosoite +any application emailadmin fi Mikä vain sovellus +any group emailadmin fi Mikä vain ryhmä +bad login name or password. emailadmin fi Väärä käyttäjätunnus tai salasana +bad or malformed request. server responded: %s emailadmin fi Väärä tai viallinen pyyntö. Serveri palauttaa: %s +bad request: %s emailadmin fi Väärä pyyntö: %s +can be used by application emailadmin fi Voidaan käyttää sovelluksessa +can be used by group emailadmin fi Voidaan käyttää ryhmällä +connection dropped by imap server. emailadmin fi Yhteys IMAP serveriin katkesi. +could not complete request. reason given: %s emailadmin fi Pyyntöä ei voitu toteuttaa. Syynä oli: %s +could not open secure connection to the imap server. %s : %s. emailadmin fi Turvattua yhteyttä IMAP palvelimeen ei voitu avata. %s : %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin fi CRAM-MD5 tai DIGEST-MD5 käyttö edellyttää Auth_SASL paketin asentamista. +cyrus imap server emailadmin fi Cyrus IMAP -palvelin +cyrus imap server administration emailadmin fi Cyrus IMAP -palvelimen hallinta +default emailadmin fi oletus +deliver extern emailadmin fi deliver extern +do you really want to delete this profile emailadmin fi Haluatko varmasti poistaa tämän profiilin +domainname emailadmin fi verkkotunnus +edit email settings emailadmin fi muokkaa sähköpostin asetuksia +email account active emailadmin fi Sähköpostitunnus käytössä +email address emailadmin fi Sähköpostiosoite +email settings common fi Sähköpostin asetukset +emailadmin emailadmin fi Sähköpostin ylläpitäjä +enable cyrus imap server administration emailadmin fi ota Cyrus IMAP -palvelimen hallinta käyttöön +enable sieve emailadmin fi ota Sieve käyttöön +encryption settings emailadmin fi Encryptaus asetukset +enter your default mail domain (from: user@domain) emailadmin fi Anna oletusverkkotunnus (lähettäjä: käyttäjä@verkkotunnus) +error connecting to imap server. %s : %s. emailadmin fi Virhe yhdistettäessä IMAP palvelimeen. %s : %s. +error connecting to imap server: [%s] %s. emailadmin fi Virhe yhdistettäessä IMAP palvelimeen. [%s] %s. +forward also to emailadmin fi lähetä kopio myös osoitteeseen +forward email's to emailadmin fi lähetä edelleen osoitteeseen +forward only emailadmin fi lähetä edelleen vain +global options emailadmin fi Yleiset asetukset +if using ssl or tls, you must have the php openssl extension loaded. emailadmin fi Jos käytät SSL tai TLS, sinulla pitää olla PHP openssl lisäosa ladattuna +imap admin password admin fi IMAP admin salasana +imap admin user admin fi IMAP admin käyttäjätunnus +imap c-client version < 2001 emailadmin fi IMAP C-Client versio < 2001 +imap server closed the connection. emailadmin fi IMAP palvelin katkaisi yhteyden. +imap server closed the connection. server responded: %s emailadmin fi IMAP palvelin katkaisi yhteyden. Palvelin vastaa: %s +imap server hostname or ip address emailadmin fi IMAP -palvelimen nimi tai IP-osoite +imap server logintyp emailadmin fi IMAP -palvelimen käyttäjätunnistus +imap server port emailadmin fi IMAP -palvelimen portti +imap/pop3 server name emailadmin fi IMAP / POP3 -palvelimen nimi +in mbyte emailadmin fi megatavua +ldap basedn emailadmin fi LDAP basedn +ldap server emailadmin fi LDAP -palvelin +ldap server accounts dn emailadmin fi LDAP tunnusten DN +ldap server admin dn emailadmin fi LDAP ylläpidon DN +ldap server admin password emailadmin fi LDAP hallinnan salasana +ldap server hostname or ip address emailadmin fi LDAP -palvelimen nimi tai IP-osoite +ldap settings emailadmin fi LDAP -asetukset +leave empty for no quota emailadmin fi jätä tyhjäksi, jos ei rajoiteta +mail settings admin fi Sähköpostin asetukset +name of organisation emailadmin fi Yrityksen nimi +no alternate email address emailadmin fi ei vahtoehtoista osoitetta +no encryption emailadmin fi Ei enkryptausta +no forwarding email address emailadmin fi ei edelleenlähetyksen osoitetta +no message returned. emailadmin fi Viestiä ei palautettu +no supported imap authentication method could be found. emailadmin fi Tuettua IMAP tunnistustapaa ei löydetty. +order emailadmin fi Tilaa +organisation emailadmin fi Organisaatio +plesk can't rename users --> request ignored emailadmin fi Plesk ei voi nimetä käyttäjiä --> pyyntö hylätty +plesk imap server (courier) emailadmin fi Plesk IMAP palvelin (Courier) +plesk mail script '%1' not found !!! emailadmin fi Plesk sähköpostiskriptiä '%1' ei löydy !!! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin fi Plesk;n salasanassa pitää olla vähintään 5 merkkiä, eikä se saa olla käyttäjäntilin nimi --> salasanaa EI ole asetettu !!! +plesk smtp-server (qmail) emailadmin fi Plesk SMTP-palvelin (Qmail) +pop3 server hostname or ip address emailadmin fi POP3 -palvelimen nimi tai IP-osoite +pop3 server port emailadmin fi POP3 -palvelimen portti +postfix with ldap emailadmin fi Postfix ja LDAP +profile access rights emailadmin fi profiilin pääsy oikeudet +profile list emailadmin fi Lista profiileista +profile name emailadmin fi Profiilin nimi +qmaildotmode emailadmin fi qmaildotmode +qouta size in mbyte emailadmin fi tallennuskiintiö Mt +quota settings emailadmin fi tallennuskiintiö +remove emailadmin fi poista +select type of imap/pop3 server emailadmin fi Valitse IMAP / POP3 -palvelimen tyyppi +select type of smtp server emailadmin fi Valitse SMTP -palvelimen tyyppi +server settings emailadmin fi Palvelimen asetukset +sieve server hostname or ip address emailadmin fi Sieve -palvelimen nimi tai IP-osoite +sieve server port emailadmin fi Sieve -palvelimen portti +sieve settings emailadmin fi Sieven asetukset +smtp authentication emailadmin fi SMTP tunnistus +smtp options emailadmin fi SMTP asetukset +smtp server name emailadmin fi SMTP -palvelimen nimi +smtp settings emailadmin fi SMTP asetukset +smtp-server hostname or ip address emailadmin fi SMTP -palvelimen nimi tai IP-osoite +smtp-server port emailadmin fi SMTP -palvelimen portti +standard emailadmin fi Vakio +standard imap server emailadmin fi Vakio IMAP -palvelin +standard pop3 server emailadmin fi Vakio POP3 -palvelin +standard smtp-server emailadmin fi Vakio SMTP -palvelin +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin fi IMAP palvelimelta ei löydy tukea valitulle tunnistus muodolle, ote yhteyttä järjestelmän pääkäyttäjään +this php has no imap support compiled in!! emailadmin fi Tämä PHP ei sisällä IMAP tukea!! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin fi Käyttääksesi TLS yhteyttä, sinulla pitää olla käytössä PHP 5.1.0 tai uudempi. +unsupported action '%1' !!! emailadmin fi Toiminto jota ei tueta '%1' !!! +update current email address: emailadmin fi Päivitä nykyinen sähköpostiosoite: +use ldap defaults emailadmin fi Käytä LDAP -oletuksia +use smtp auth emailadmin fi Käytä SMTP -käyttäjäntunnistusta +use tls authentication emailadmin fi Käytä TLS -käyttäjäntunnistusta +use tls encryption emailadmin fi Käytä TLS -salausta +user can edit forwarding address emailadmin fi Käyttäjä voi muokata eteenpäinlähetyksen osoitetta +username (standard) emailadmin fi käyttäjätunus (standardi) +username@domainname (virtual mail manager) emailadmin fi käyttäjätunus@palvelimennimi (Virtual MAIL ManaGeR) +users can define their own emailaccounts emailadmin fi Käyttäjät voivat määritellä omat postilaatikkonsa +virtual mail manager emailadmin fi Virtual MAIL ManaGeR diff --git a/emailadmin/setup/phpgw_fr.lang b/emailadmin/setup/phpgw_fr.lang new file mode 100644 index 0000000000..ce4024050c --- /dev/null +++ b/emailadmin/setup/phpgw_fr.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin fr Le compte %1 n'a pas été trouvé!!! +add new email address: emailadmin fr Ajouter une nouvelle adresse email: +add profile emailadmin fr Ajouter un profil +admin dn emailadmin fr DN administrateur +admin password emailadmin fr Mot de passe administrateur +admin username emailadmin fr Nom d'utilisateur de l'administrateur +advanced options emailadmin fr Options avancées +alternate email address emailadmin fr Adresse email alternative +any application emailadmin fr Toutes les applications +any group emailadmin fr Tous les groupes +bad login name or password. emailadmin fr ID login ou mot de passe erroné +bad or malformed request. server responded: %s emailadmin fr Requête invalide ou erronnée. Réponse serveur: %s +bad request: %s emailadmin fr Requête invalide: %s +can be used by application emailadmin fr Peut être utilisée par application +can be used by group emailadmin fr Peut être utilisée par groupe +connection dropped by imap server. emailadmin fr Connexion interrompue par le Serveur IMAP. +could not complete request. reason given: %s emailadmin fr Impossible d'effectuer la requête. Raison invoquée: %s +could not open secure connection to the imap server. %s : %s. emailadmin fr Impossible d'ouvrir la connexion sécurisée avec le serveur IMAP. %s: %s +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin fr CRAM-MD5 ou DIGEST-MD5 requiert l'installation du progiciel Auth_SASL +cyrus imap server emailadmin fr Serveur Cyrus IMAP +cyrus imap server administration emailadmin fr Administration du serveur Cyrus IMAP +default emailadmin fr défaut +deliver extern emailadmin fr Relai de messagerie +do you really want to delete this profile emailadmin fr Voulez-vous vraiment supprimer ce profil? +domainname emailadmin fr Nom de domaine +edit email settings emailadmin fr Modifier les paramètres de messagerie +email account active emailadmin fr Compte de messagerie actif +email address emailadmin fr Adresse de messagerie +email settings common fr Paramètres de messagerie +emailadmin emailadmin fr Administration de la messagerie +enable cyrus imap server administration emailadmin fr Activer la gestion du serveur Cyrus IMAP +enable sieve emailadmin fr Activer Sieve +encryption settings emailadmin fr Paramètres de chiffrement +enter your default mail domain (from: user@domain) emailadmin fr Introduisez votre domaine par défaut (utilisateur@domaine.com) +error connecting to imap server. %s : %s. emailadmin fr Erreur de connexion avec le serveur IMAP. %s: %s. +error connecting to imap server: [%s] %s. emailadmin fr Erreur de connexion avec le serveur IMAP. [%s] %s. +forward also to emailadmin fr Transférer aussi à +forward email's to emailadmin fr Transférer les emails à +forward only emailadmin fr Seulement transférer +global options emailadmin fr Options globales +if using ssl or tls, you must have the php openssl extension loaded. emailadmin fr Si vous utilisez SSl ou TLS, vous devez avoir chargé l'extension PHP openssl +imap admin password admin fr Mot de passe de l'administrateur IMAP +imap admin user admin fr ID administrateur IMAP +imap c-client version < 2001 emailadmin fr IMAP C-Client Version < 2001 +imap server closed the connection. emailadmin fr Le serveur IMAP a interrompu la connexion. +imap server closed the connection. server responded: %s emailadmin fr Le serveur IMAP a interrompu la connexion. Réponse du serveur: %s. +imap server hostname or ip address emailadmin fr Nom du serveur IMAP ou adresse IP +imap server logintyp emailadmin fr Type d'authentification IMAP +imap server port emailadmin fr Port IMAP +imap/pop3 server name emailadmin fr Nom du serveur IMAP/POP3 +in mbyte emailadmin fr en Mo +ldap basedn emailadmin fr LDAP DN de base +ldap server emailadmin fr LDAP Serveur +ldap server accounts dn emailadmin fr LDAP DN contenant les comptes utilisateurs +ldap server admin dn emailadmin fr LDAP DN administrateur +ldap server admin password emailadmin fr LDAP Mot de passe administateur +ldap server hostname or ip address emailadmin fr LDAP Nom du serveur ou adresse IP +ldap settings emailadmin fr LDAP Paramètres +leave empty for no quota emailadmin fr Laisser vide pour ne pas avoir de quota +mail settings admin fr Paramètres de messagerie +name of organisation emailadmin fr Nom de l'entreprise +no alternate email address emailadmin fr Pas d'adresse email alternative +no encryption emailadmin fr pas de chiffrement +no forwarding email address emailadmin fr Pas d'adresse email de transfert +no message returned. emailadmin fr Aucun message n'est retourné. +no supported imap authentication method could be found. emailadmin fr Il n'a été trouvé aucune méthode d'authentification IMAP supportée +order emailadmin fr Ordre +organisation emailadmin fr Organisation +plesk can't rename users --> request ignored emailadmin fr Plesk ne peut pas renommer les utilisateurs --> requête ignorée +plesk imap server (courier) emailadmin fr Serveur IMAP Plesk (Courier) +plesk mail script '%1' not found !!! emailadmin fr Le script email Plesk '%1' introuvable!!! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin fr Plesk requiert des mots de passe d'au moins 5 caractères qui ne comprennent pas le nom du compte --> le mot de passe n'est PAS fixé!!! +plesk smtp-server (qmail) emailadmin fr Serveur SMTP Plesk (Qmail) +pop3 server hostname or ip address emailadmin fr Nom ou adresse IP du POP3 +pop3 server port emailadmin fr Port POP3 +postfix with ldap emailadmin fr Postfix avec support LDAP +profile access rights emailadmin fr droits d'accès du profil +profile list emailadmin fr Liste des profils +profile name emailadmin fr Nom de profil +qmaildotmode emailadmin fr qmaildotmode +qouta size in mbyte emailadmin fr Taille du quota en Mo +quota settings emailadmin fr Paramètres de quota +remove emailadmin fr Supprimer +select type of imap/pop3 server emailadmin fr Sélectionner le type de serveur IMAP/POP3 +select type of smtp server emailadmin fr Sélectionner le type de serveur SMTP +server settings emailadmin fr Configuration du serveur +sieve server hostname or ip address emailadmin fr Nom ou adresse IP du serveur Sieve +sieve server port emailadmin fr Port Sieve +sieve settings emailadmin fr Paramètres Sieve +smtp authentication emailadmin fr Authentication SMTP +smtp options emailadmin fr Options SMTP +smtp server name emailadmin fr Nom du serveur SMTP +smtp settings emailadmin fr Paramètres SMTP +smtp-server hostname or ip address emailadmin fr Nom ou adresse IP du serveur SMTP +smtp-server port emailadmin fr Port SMTP +standard emailadmin fr Standard +standard imap server emailadmin fr Serveur IMAP standard +standard pop3 server emailadmin fr Serveur POP3 standard +standard smtp-server emailadmin fr Serveur SMTP standard +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin fr Le serveur IMAP ne supporterait pas la méthode d'authentication sélectionnée. Veuillez contacter votre administrateur système. +this php has no imap support compiled in!! emailadmin fr Ce PHP ne comprend pas de support IMAP!! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin fr Pour utiliser une connexion TLS, vous devez utiliser une version PHP 5.1.0 ou plus élevée. +unexpected response from server to authenticate command. emailadmin fr Réponse inattendue du serveur à la commande AUTHENTICATE. +unexpected response from server to digest-md5 response. emailadmin fr Réponse inattendue du serveur à la réponse Digest-MD5. +unexpected response from server to login command. emailadmin fr Réponse inattendue du serveur à la commande LOGIN. +unknown imap response from the server. server responded: %s emailadmin fr Réponse IMAP inconnue du serveur. Le serveur a répondu: %s +unsupported action '%1' !!! emailadmin fr Action '%1' non supportée!!! +update current email address: emailadmin fr Mettre à jour l'adresse email actuelle: +use ldap defaults emailadmin fr Utiliser les paramètres LDAP par défaut +use smtp auth emailadmin fr Utiliser l'authentification SMTP +use tls authentication emailadmin fr Utiliser l'authentification TLS +use tls encryption emailadmin fr Utiliser le cryptage TLS +user can edit forwarding address emailadmin fr L'utilisateur peut modifier l'adresse de transfert. +username (standard) emailadmin fr nom de l'utilisateur (standard) +username@domainname (virtual mail manager) emailadmin fr utilisateur@domaine (Virtual MAIL ManaGeR) +users can define their own emailaccounts emailadmin fr Les utilisateurs peuvent définir leurs propres comptes de messagerie +virtual mail manager emailadmin fr Virtual MAIL ManaGeR diff --git a/emailadmin/setup/phpgw_hr.lang b/emailadmin/setup/phpgw_hr.lang new file mode 100755 index 0000000000..05089347a6 --- /dev/null +++ b/emailadmin/setup/phpgw_hr.lang @@ -0,0 +1,68 @@ +add profile emailadmin hr Add Profile +admin dn emailadmin hr admin dn +admin password emailadmin hr admin password +admin username emailadmin hr admin username +advanced options emailadmin hr advanced options +alternate email address emailadmin hr alternate email address +cyrus imap server emailadmin hr Cyrus IMAP Server +cyrus imap server administration emailadmin hr Cyrus IMAP server administration +default emailadmin hr default +deliver extern emailadmin hr deliver extern +do you really want to delete this profile emailadmin hr Do you really want to delete this Profile +domainname emailadmin hr domainname +edit email settings emailadmin hr edit email settings +email account active emailadmin hr email account active +email address emailadmin hr email address +enable cyrus imap server administration emailadmin hr enable Cyrus IMAP server administration +enable sieve emailadmin hr enable Sieve +enter your default mail domain (from: user@domain) emailadmin hr Enter your default mail domain (from: user@domain) +forward also to emailadmin hr forward also to +forward email's to emailadmin hr forward email's to +forward only emailadmin hr forward only +imap admin password admin hr IMAP admin password +imap admin user admin hr IMAP admin user +imap server hostname or ip address emailadmin hr IMAP server hostname or ip address +imap server logintyp emailadmin hr IMAP server login type +imap server port emailadmin hr IMAP server port +imap/pop3 server name emailadmin hr IMAP/POP3 server name +in mbyte emailadmin hr in MByte +ldap basedn emailadmin hr LDAP basedn +ldap server emailadmin hr LDAP server +ldap server accounts dn emailadmin hr LDAP server accounts DN +ldap server admin dn emailadmin hr LDAP server admin DN +ldap server admin password emailadmin hr LDAP server admin password +ldap server hostname or ip address emailadmin hr LDAP server hostname or ip address +ldap settings emailadmin hr LDAP settings +leave empty for no quota emailadmin hr leave empty for no quota +mail settings admin hr Mail settings +name of organisation emailadmin hr Name of organization +no alternate email address emailadmin hr no alternate email address +no forwarding email address emailadmin hr no forwarding email address +pop3 server hostname or ip address emailadmin hr POP3 server hostname or ip address +pop3 server port emailadmin hr POP3 server port +postfix with ldap emailadmin hr Postfix with LDAP +profile list emailadmin hr Profile List +profile name emailadmin hr Profile Name +qmaildotmode emailadmin hr qmaildotmode +qouta size in mbyte emailadmin hr qouta size in MByte +quota settings emailadmin hr quota settings +remove emailadmin hr remove +select type of imap/pop3 server emailadmin hr Select type of IMAP/POP3 server +select type of smtp server emailadmin hr Select type of SMTP Server +sieve server hostname or ip address emailadmin hr Sieve server hostname or ip address +sieve server port emailadmin hr Sieve server port +sieve settings emailadmin hr Sieve settings +smtp server name emailadmin hr SMTP server name +smtp-server hostname or ip address emailadmin hr SMTP server hostname or IP address +smtp-server port emailadmin hr SMTP server port +standard emailadmin hr Standard +standard imap server emailadmin hr Standard IMAP server +standard pop3 server emailadmin hr Standard POP3 server +standard smtp-server emailadmin hr Standard SMTP server +use ldap defaults emailadmin hr use LDAP defaults +use smtp auth emailadmin hr Use SMTP auth +use tls authentication emailadmin hr Use TLS authentication +use tls encryption emailadmin hr Use TLS encryption +users can define their own emailaccounts emailadmin hr Users can define their own email accounts +virtual mail manager emailadmin hr Virtual MAIL ManaGeR +IMAP C-Client Version < 2001 emailadmin hr IMAP C-Client Version < 2001 diff --git a/emailadmin/setup/phpgw_it.lang b/emailadmin/setup/phpgw_it.lang new file mode 100644 index 0000000000..fa2721e6d2 --- /dev/null +++ b/emailadmin/setup/phpgw_it.lang @@ -0,0 +1,97 @@ +account '%1' not found !!! emailadmin it Account '%1' non trovato !!! +add profile emailadmin it Aggiungi Profilo +admin dn emailadmin it dn amministratore +admin password emailadmin it password amministratore +admin username emailadmin it username amministratore +advanced options emailadmin it opzioni avanzate +alternate email address emailadmin it indirizzo email alternativo +any application emailadmin it ogni applicazione +any group emailadmin it ogni gruppo +bad login name or password. emailadmin it Nome utente o password errati. +bad or malformed request. server responded: %s emailadmin it Richiesta errata o mal composta. Il Server ha risposto: %s +bad request: %s emailadmin it Richiesta errata: %s +can be used by application emailadmin it può essere usato da applicazione +can be used by group emailadmin it può essere usato da gruppo +connection dropped by imap server. emailadmin it Connessione interrotta dal sever IMAP. +could not complete request. reason given: %s emailadmin it Impossibile completare la richiesta. Motivazione data: %s +could not open secure connection to the imap server. %s : %s. emailadmin it Non è possibile aprire una connessione sicura al server IMAP. %s : %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin it CRAM-MD5 o DIGEST-MD5 richiede che il pacchetto Auth_SASL sia installato. +cyrus imap server emailadmin it Server IMAP Cyrus +cyrus imap server administration emailadmin it Amministrazione Server IMAP Cyrus +default emailadmin it predefinito +do you really want to delete this profile emailadmin it Vuoi davvero cancellare questo Profilo +domainname emailadmin it nome dominio +edit email settings emailadmin it modifica impostazioni email +email account active emailadmin it account email attivo +email address emailadmin it indirizzo email +email settings common it Impostazioni email +emailadmin emailadmin it Gestione Email +enable cyrus imap server administration emailadmin it abilita amministrazione Server IMAP Cyrus +enable sieve emailadmin it abilita Sieve +encryption settings emailadmin it impostazioni cifratura +enter your default mail domain (from: user@domain) emailadmin it Inserisci il tuo dominio di posta predefinito (da: utente@dominio) +error connecting to imap server. %s : %s. emailadmin it Errore in connessione al server IMAP. %s : %s. +error connecting to imap server: [%s] %s. emailadmin it Errore in connessione al server IMAP: [%s] %s. +forward also to emailadmin it Inoltra anche a +forward email's to emailadmin it Inoltra email a +forward only emailadmin it Inoltra solo +global options emailadmin it Opzioni globali +imap admin password admin it Password amministratore IMAP +imap admin user admin it User amministratore IMAP +imap c-client version < 2001 emailadmin it Versione C-Cliente < 2001 +imap server hostname or ip address emailadmin it Nome Host o IP del server IMAP +imap server logintyp emailadmin it Tipo login server IMAP +imap server port emailadmin it Porta server IMAP +imap/pop3 server name emailadmin it Nome server IMAP/POP3 +in mbyte emailadmin it in MByte +ldap basedn emailadmin it LDAP basedn +ldap server emailadmin it server LDAP +ldap server accounts dn emailadmin it DN account server LDAP +ldap server admin dn emailadmin it DN amministratore server LDAP +ldap server admin password emailadmin it password amministratore server LDAP +ldap server hostname or ip address emailadmin it Nome host o IP server LDAP +ldap settings emailadmin it impostazioni LDAP +leave empty for no quota emailadmin it lascia vuoto per nessuna quota +mail settings admin it Impostazioni Posta +name of organisation emailadmin it Nome dell'organizzazione +no alternate email address emailadmin it nessun indirizzo email alternativo +no forwarding email address emailadmin it nessun indirizzo email di inoltro +no message returned. emailadmin it nessun messaggio ricevuto +order emailadmin it ordine +organisation emailadmin it organizzazione +pop3 server hostname or ip address emailadmin it Nome host o IP server POP3 +pop3 server port emailadmin it porta server POP3 +postfix with ldap emailadmin it Postfix con LDAP +profile access rights emailadmin it diritti di accesso profilo +profile list emailadmin it Elenco Profili +profile name emailadmin it Nome Profilo +qmaildotmode emailadmin it qmaildotmode +qouta size in mbyte emailadmin it dimensione quota in MByte +quota settings emailadmin it impostazioni quota +remove emailadmin it rimuovi +select type of imap/pop3 server emailadmin it Seleziona il tipo si server IMAP/POP3 +select type of smtp server emailadmin it Seleziona il tipo di server SMTP +server settings emailadmin it impostazioni server +sieve server hostname or ip address emailadmin it Nome host o IP server Sieve +sieve server port emailadmin it porta server Sieve +sieve settings emailadmin it impostazioni SIeve +smtp authentication emailadmin it autenticazione smtp +smtp options emailadmin it opzioni smtp +smtp server name emailadmin it nome server SMTP +smtp settings emailadmin it impostazioni smtp +smtp-server hostname or ip address emailadmin it Nome host o IP server SMTP +smtp-server port emailadmin it porta server SMTP +standard emailadmin it Standard +standard imap server emailadmin it Server IMAP standard +standard pop3 server emailadmin it Server POP3 standard +standard smtp-server emailadmin it Server SMTP standard +unsupported action '%1' !!! emailadmin it Azione non supportata '%1' !!! +use ldap defaults emailadmin it usa predefiniti LDAP +use smtp auth emailadmin it usa autenticazione SMTP +use tls authentication emailadmin it usa autenticazione TLS +use tls encryption emailadmin it usa crittografia TLS +user can edit forwarding address emailadmin it l'utente può modificare indirizzo di inoltro +username (standard) emailadmin it nome utente (standard) +username@domainname (virtual mail manager) emailadmin it nomeutente@nome dominio (ManaGeR MAIL Virtuale) +users can define their own emailaccounts emailadmin it Gli utenti possono definire i propri account email +virtual mail manager emailadmin it ManaGeR MAIL Virtuale diff --git a/emailadmin/setup/phpgw_iw.lang b/emailadmin/setup/phpgw_iw.lang new file mode 100755 index 0000000000..57347f8f30 --- /dev/null +++ b/emailadmin/setup/phpgw_iw.lang @@ -0,0 +1,68 @@ +add profile emailadmin iw הוסף פרופיל +admin dn emailadmin iw של המנהל dn +admin password emailadmin iw סיסמת מנהל +admin username emailadmin iw ×©× ×ž×©×ª×ž×© של המנהל +advanced options emailadmin iw ×ופציות מתקדמות +alternate email address emailadmin iw כתובת דו×ר ×לקטרוני חילופי +cyrus imap server emailadmin iw Cyrus IMAP שרת +cyrus imap server administration emailadmin iw Cyrus IMAP ניהול שרת +default emailadmin iw ברירת מחדל +deliver extern emailadmin iw מסירה חיצונית +do you really want to delete this profile emailadmin iw בטוח שברצונך למחוק פרופיל ×–×” +domainname emailadmin iw ×©× ×”×“×•×ž×™×™×Ÿ +edit email settings emailadmin iw ערוך הגדרות דו×ר ×לקטרוני +email account active emailadmin iw חשבון דו×ר ×לקטרוני פעיל +email address emailadmin iw כתובת דו×ר ×לקטרוני +enable cyrus imap server administration emailadmin iw Cyrus IMAP ×יפשור ניהול שרת +enable sieve emailadmin iw Sieve ×ישפור +enter your default mail domain (from: user@domain) emailadmin iw (user@domain :ציין ×ת דומיין דו×ר המחדלי שלך (×œ×“×•×’×ž× +forward also to emailadmin iw להעביר ×’× ×ל +forward email's to emailadmin iw להעביר דו×ר ×לקטרוני ×ל +forward only emailadmin iw העבר בלבד +imap admin password admin iw IMAP סיסמת ניהול +imap admin user admin iw IMAP ×©× ×ž× ×”×œ +imap c-client version < 2001 emailadmin iw IMAP C-Client Version < 2001 +imap server hostname or ip address emailadmin iw שלו IP- ×ו כתובת ×”IMAP ×©× ×©×¨×ª +imap server logintyp emailadmin iw IMAP סוג כניסה לשרת +imap server port emailadmin iw IMAP פורט שרת +imap/pop3 server name emailadmin iw IMAP/POP3 ×©× ×©×¨×ª +in mbyte emailadmin iw MB-ב +ldap basedn emailadmin iw dn הביסי של LDAP +ldap server emailadmin iw LDAP שרת +ldap server accounts dn emailadmin iw LDAP של שרת חשבונות DN +ldap server admin dn emailadmin iw LDAP מנהל שרת של DN +ldap server admin password emailadmin iw LDAP סיסמה של מנהל שרת +ldap server hostname or ip address emailadmin iw IP ×ו כתובת LDAP ×©× ×©×¨×ª +ldap settings emailadmin iw LDAP הגדרות +leave empty for no quota emailadmin iw הש×ר ריק ×œ×œ× ×”×§×¦××” +mail settings admin iw הגדרות דו×ר +name of organisation emailadmin iw ×©× ×”×ירגון +no alternate email address emailadmin iw ×ין כתובת דו×ר ×לקטרוני חלופי +no forwarding email address emailadmin iw ×ין כתובת להעברת דו×ר ×לקטרוני +pop3 server hostname or ip address emailadmin iw IP ×ו כתובת pop3 ×©× ×©×¨×ª +pop3 server port emailadmin iw POP3 פורט שרת +postfix with ldap emailadmin iw LDAP ×¢× Postfix +profile list emailadmin iw רשימת ×¤×¨×•×¤×™×œ×™× +profile name emailadmin iw ×©× ×¤×¨×•×¤×™×œ +qmaildotmode emailadmin iw qmaildotmode +qouta size in mbyte emailadmin iw MB-גודל הקצ××” ב +quota settings emailadmin iw הגדרות הקצ××” +remove emailadmin iw הסר +select type of imap/pop3 server emailadmin iw IMAP/POP3 בחר סוג שרת +select type of smtp server emailadmin iw SMTP בחר סוג שרת +sieve server hostname or ip address emailadmin iw IP ×ו כתובת Sieve ×©× ×©×¨×ª +sieve server port emailadmin iw Sieve פורט שרת +sieve settings emailadmin iw Sieve הגדרות +smtp server name emailadmin iw SMTP ×©× ×©×¨×ª +smtp-server hostname or ip address emailadmin iw IP ×ו כתובת SMTP ×©× ×©×¨×ª +smtp-server port emailadmin iw SMTP פורת שרת +standard emailadmin iw תקני +standard imap server emailadmin iw תקני IMAP שרת +standard pop3 server emailadmin iw תקני POP3 שרת +standard smtp-server emailadmin iw תקני SMTP שרת +use ldap defaults emailadmin iw LDAP השתמש בברירות מחדל של +use smtp auth emailadmin iw LDAP השתמש ב×ימות ×ž×©×ª×ž×©×™× ×©×œ +use tls authentication emailadmin iw TLS השתמש ב×ימות +use tls encryption emailadmin iw TLS השתמש בהצפנת +users can define their own emailaccounts emailadmin iw ×ž×©×ª×ž×©×™× ×™×›×•×œ×™× ×œ×”×’×“×™×¨ ×‘×¢×¦×ž× ×ת חשבונות דו×ר ×”×לקטרוני ×©×œ×”× +virtual mail manager emailadmin iw מלהל דו×ר וירטו×לי diff --git a/emailadmin/setup/phpgw_lt.lang b/emailadmin/setup/phpgw_lt.lang new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/emailadmin/setup/phpgw_lt.lang @@ -0,0 +1 @@ + diff --git a/emailadmin/setup/phpgw_lv.lang b/emailadmin/setup/phpgw_lv.lang new file mode 100644 index 0000000000..1cbd7303b9 --- /dev/null +++ b/emailadmin/setup/phpgw_lv.lang @@ -0,0 +1,61 @@ +add profile emailadmin lv Pievienot profilu +admin dn emailadmin lv administratora dn +admin password emailadmin lv administratora parole +admin username emailadmin lv administratora lietotÄjvÄrds +advanced options emailadmin lv uzlabotÄs iespÄ“jas +alternate email address emailadmin lv alternatÄ«vas e-pasta adreses +cyrus imap server emailadmin lv Cyrus IMAP serveris +cyrus imap server administration emailadmin lv Cyrus IMAP servera administrÄ“Å¡ana +default emailadmin lv noklusÄ“jums +do you really want to delete this profile emailadmin lv Vai tu tieÅ¡Äm vÄ“lies dzÄ“st Å¡o profilu? +domainname emailadmin lv domÄ“na vÄrds +edit email settings emailadmin lv rediģēt e-pasta uzstÄdÄ«jumus +email account active emailadmin lv e-pasta konts aktÄ«vs +email address emailadmin lv e-pasta adrese +enable cyrus imap server administration emailadmin lv atļaut Cyrus IMAP servera administrÄ“Å¡anu +enable sieve emailadmin lv atļaut Sieve +enter your default mail domain (from: user@domain) emailadmin lv Ievadi noklusÄ“to pasta domÄ“nu (no: lietotÄjs@domÄ“ns) +forward also to emailadmin lv pÄrsÅ«tÄ«t arÄ« +forward email's to emailadmin lv pÄrsÅ«tÄ«t e-pasta vÄ“stules +forward only emailadmin lv tikai pÄrsÅ«tÄ«t +imap admin password admin lv IMAP administratora parole +imap admin user admin lv IMAP administrators +imap c-client version < 2001 emailadmin lv IMAP C-Client Version <2001 +imap server hostname or ip address emailadmin lv IMAP servera hosta vÄrds vai IP adrese +imap server logintyp emailadmin lv IMAP servera autorizÄcijas veids +imap server port emailadmin lv IMAP servera ports +imap/pop3 server name emailadmin lv IMAP/POP3 servera nosaukums +ldap basedn emailadmin lv LDAP bÄzes dn +ldap server emailadmin lv LDAP serveris +ldap server accounts dn emailadmin lv LDAP servera konti DN +ldap server admin dn emailadmin lv LDAP servera administratora DN +ldap server admin password emailadmin lv LDAP servera administratora parole +ldap server hostname or ip address emailadmin lv LDAP servera hosta vÄrds vai IP adrese +ldap settings emailadmin lv LDAP uzstÄdÄ«jumi +mail settings admin lv Pasta uzstÄdÄ«jumi +name of organisation emailadmin lv OrganizÄcijas nosaukums +no alternate email address emailadmin lv nav alternatÄ«vas e-pasta adreses +no forwarding email address emailadmin lv nav pÄrsÅ«tÄmÄs e-pasta adreses +pop3 server hostname or ip address emailadmin lv POP3 servera hosta vÄrds vai IP adrese +pop3 server port emailadmin lv POP3 servera ports +profile list emailadmin lv Profila saraksts +profile name emailadmin lv Profila vÄrds +remove emailadmin lv pÄrvietot +select type of imap/pop3 server emailadmin lv AtzÄ«mÄ“t IMAP/POP3 servera tipu +select type of smtp server emailadmin lv AtzÄ«mÄ“t SMTP servera tipu +sieve server hostname or ip address emailadmin lv ?Sieve? servera hosta vÄrds vai IP adrese +sieve server port emailadmin lv Sieve servera ports +sieve settings emailadmin lv Sieve uzstadÄ«jumi +smtp server name emailadmin lv SMTP servera nosaukums +smtp-server hostname or ip address emailadmin lv SMTP servera hosta vÄrds vai IP adrese +smtp-server port emailadmin lv SMTP servera ports +standard emailadmin lv Standarta +standard imap server emailadmin lv Standarta IMAP serveris +standard pop3 server emailadmin lv Standarta POP3 serveris +standard smtp-server emailadmin lv Standarta SMTP serveris +use ldap defaults emailadmin lv lieto LDAP noklusÄ“jumus +use smtp auth emailadmin lv Lieto SMTP autentifikÄciju +use tls authentication emailadmin lv Lieto TLS autentifikÄciju +use tls encryption emailadmin lv Lieto TLS Å¡ifrÄ“Å¡anu +users can define their own emailaccounts emailadmin lv LIetotÄji paÅ¡i var definÄ“t savus e-pasta kontus +virtual mail manager emailadmin lv VIrtuÄlais MAIL ManaGeR diff --git a/emailadmin/setup/phpgw_nl.lang b/emailadmin/setup/phpgw_nl.lang new file mode 100644 index 0000000000..57772412c7 --- /dev/null +++ b/emailadmin/setup/phpgw_nl.lang @@ -0,0 +1,114 @@ +account '%1' not found !!! emailadmin nl Account '%1' niet gevonden !!! +add profile emailadmin nl Profiel toevoegen +admin dn emailadmin nl admin dn +admin password emailadmin nl Admin wachtwoord +admin username emailadmin nl Admin gebruikersnaam +advanced options emailadmin nl Geavanceerde opties +alternate email address emailadmin nl Alternatief emailadres +any application emailadmin nl Iedere toepassing +any group emailadmin nl Iedere groep +bad login name or password. emailadmin nl Ongeldige login of paswoord +bad or malformed request. server responded: %s emailadmin nl Ongeldig of slecht geformuleerde aanvraag. Server reageerde: %s +bad request: %s emailadmin nl Slechte vraag: %s +can be used by application emailadmin nl Kan gebruikt worden door toepassing +can be used by group emailadmin nl Kan gebruikt worden door groep +connection dropped by imap server. emailadmin nl Verbinding viel uit door IMAP server +could not complete request. reason given: %s emailadmin nl Kan verzoek niet afmaken. Opgegeven reden: %s +could not open secure connection to the imap server. %s : %s. emailadmin nl Kon geen veilige verbinding openen met de IMAP server. %s : %s +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin nl CRAM-MDS of DIGEST-MDS vereist de installatie van het Auth_SASL pakket. +cyrus imap server emailadmin nl Cyrus IMAP-server +cyrus imap server administration emailadmin nl Cyrus IMAP-serverbeheer +default emailadmin nl standaard +deliver extern emailadmin nl bezorg extern +do you really want to delete this profile emailadmin nl Weet u zeker dat u dit profiel wilt verwijderen +domainname emailadmin nl Domeinnaam +edit email settings emailadmin nl Wijzig emailinstellingen +email account active emailadmin nl Emailaccount actief +email address emailadmin nl Emailadres +email settings common nl Emailinstellingen +emailadmin emailadmin nl EmailAdmin +enable cyrus imap server administration emailadmin nl activier Cyrus IMAP serverbeheer +enable sieve emailadmin nl activeer Sieve +encryption settings emailadmin nl encryptie instellingen +enter your default mail domain (from: user@domain) emailadmin nl Voer uw standaard emaildomein in (uit: gebruiker@domein) +error connecting to imap server. %s : %s. emailadmin nl Fout verbinden met de IMAP server. %s : %s +error connecting to imap server: [%s] %s. emailadmin nl Fout verbinden met de IMAP server: [%s] %s +forward also to emailadmin nl Ook doorsturen naar +forward email's to emailadmin nl Emails doorsturen naar +forward only emailadmin nl Alleen doorsturen +global options emailadmin nl Algemene opties +if using ssl or tls, you must have the php openssl extension loaded. emailadmin nl Indien SSL of TSL wordt gebruikt, moet u de PHP openssl extensie opgeladen hebben +imap admin password admin nl IMAP beheerders wachtwoord +imap admin user admin nl IMAP beheerdersgebruiker +imap c-client version < 2001 emailadmin nl IMAP C-Client Versie < 2001 +imap server closed the connection. emailadmin nl IMAP server sloot de verbinding +imap server closed the connection. server responded: %s emailadmin nl IMAP Server sloot de verbinding. Server reageerde: %s +imap server hostname or ip address emailadmin nl IMAP-server hostnaam of IP-adres +imap server logintyp emailadmin nl IMAP-server logintype +imap server port emailadmin nl IMAP-serverpoort +imap/pop3 server name emailadmin nl IMAP/POP3-servernaam +in mbyte emailadmin nl in MBytes +ldap basedn emailadmin nl LDAP basedn +ldap server emailadmin nl LDAP-server +ldap server accounts dn emailadmin nl LDAP server accounts DN +ldap server admin dn emailadmin nl LDAP server admin DN +ldap server admin password emailadmin nl LDAP-server admin wachtwoord +ldap server hostname or ip address emailadmin nl LDAP-serverhostnaam of IP-adres +ldap settings emailadmin nl LDAP-instellingen +leave empty for no quota emailadmin nl Laat leeg voor geen quota +mail settings admin nl Mailinstellingen +name of organisation emailadmin nl Naam van de Organisatie +no alternate email address emailadmin nl geen alternatief emailadres +no forwarding email address emailadmin nl geen emailadres om naar door te sturen +no message returned. emailadmin nl Geen bericht teruggekomen. +no supported imap authentication method could be found. emailadmin nl Geen ondersteunde IMAP authenticatiemethode kon gevonden worden. +order emailadmin nl Volgorde +organisation emailadmin nl Organisatie +plesk can't rename users --> request ignored emailadmin nl Plesk kan gebruikers niet hernoemen --> verzoek genegeerd +plesk imap server (courier) emailadmin nl Plesk IMAP Server (Courier) +plesk mail script '%1' not found !!! emailadmin nl Plesk mail script '%1' niet gevonden !!! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin nl Plesk vereist dat wachtwoorden minstens 5 karakters bevatten en niet de accountnaam mogen bevatten --> wachtwoord niet gewijzigd !!! +plesk smtp-server (qmail) emailadmin nl Plesk SMTP-Server (Qmail) +pop3 server hostname or ip address emailadmin nl POP3-server hostnaam of IP-adres +pop3 server port emailadmin nl POP3-serverpoort +postfix with ldap emailadmin nl Postfix met LDAP +profile access rights emailadmin nl profiel toegangsrechten +profile list emailadmin nl Profiellijst +profile name emailadmin nl Profielnaam +qmaildotmode emailadmin nl qmaildotmode +qouta size in mbyte emailadmin nl quota grootte in MBytes +quota settings emailadmin nl Quota-installingen +remove emailadmin nl Verwijderen +select type of imap/pop3 server emailadmin nl Selecteer IMAP/POP3-servertype +select type of smtp server emailadmin nl Selecteer SMTP-servertype +server settings emailadmin nl server instellingen +sieve server hostname or ip address emailadmin nl Sieve-serverhostnaam of IP-adres +sieve server port emailadmin nl Sieve-serverpoort +sieve settings emailadmin nl Sieve instellingen +smtp authentication emailadmin nl SMTP authenticatie +smtp options emailadmin nl SMTP opties +smtp server name emailadmin nl SMTP-servernaam +smtp settings emailadmin nl SMTP instellingen +smtp-server hostname or ip address emailadmin nl SMTP-serverhostnaam of IP-adres +smtp-server port emailadmin nl SMTP-serverpoort +standard emailadmin nl Standaard +standard imap server emailadmin nl Standaard IMAP-server +standard pop3 server emailadmin nl Standaard POP3-server +standard smtp-server emailadmin nl Standaard SMTP-server +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin nl The IMAP server blijkt geen authenticatiemethode te ondersteunen. Gelieve uw systeembeheerder te contacteren. +this php has no imap support compiled in!! emailadmin nl Deze PHP heeft geen IMAP ondersteuning verzamelt in!! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin nl Om een TLS verbinding te gebruiken, moet u een versie van PHP 5.1.0 of hoger gebruiken. +unexpected response from server to authenticate command. emailadmin nl Onverwachte reactie van de server om de opdracht te AUTHENTICEREN. +unexpected response from server to digest-md5 response. emailadmin nl Onverwachte reactie van de server op Digest-MD5 reactie. +unexpected response from server to login command. emailadmin nl Onverwachte reactie van de server op LOGIN opdracht. +unknown imap response from the server. server responded: %s emailadmin nl Onverwachte IMAP reactie van de server. Server reageerde: %s +unsupported action '%1' !!! emailadmin nl Niet-ondersteunde actie '%1' +use ldap defaults emailadmin nl gebruik LDAP standaard instellingen +use smtp auth emailadmin nl Gebruik SMTP authenticatie +use tls authentication emailadmin nl Gebruik TLS authenticatie +use tls encryption emailadmin nl Gebruik TLS-encryptie +user can edit forwarding address emailadmin nl Gebruiker kan het doorstuuradres aanpassen +username (standard) emailadmin nl gebruikersnaam (standaard) +username@domainname (virtual mail manager) emailadmin nl gebruikersnaam@domeinnaam (Virtual MAIL ManaGeR) +users can define their own emailaccounts emailadmin nl Gebruikers kunnen hun eigen emailaccounts definiëren +virtual mail manager emailadmin nl Virtual MAIL ManaGeR diff --git a/emailadmin/setup/phpgw_no.lang b/emailadmin/setup/phpgw_no.lang new file mode 100644 index 0000000000..018d48775f --- /dev/null +++ b/emailadmin/setup/phpgw_no.lang @@ -0,0 +1,68 @@ +add profile emailadmin no Legg til profil +admin dn emailadmin no Admin dn +admin password emailadmin no Admin passord +admin username emailadmin no Admin brukernavn +advanced options emailadmin no Avanserte valg +alternate email address emailadmin no Alternativ e-mailadresse +cyrus imap server emailadmin no Cyrus IMAP tjener +cyrus imap server administration emailadmin no Cyrys IMAP tjeneradministrasjon +default emailadmin no standard +deliver extern emailadmin no lever eksternt +do you really want to delete this profile emailadmin no Ønsker du virkelig å slette denne profilen +domainname emailadmin no Domenenavn +edit email settings emailadmin no Rediger e-mail oppsett +email account active emailadmin no E-mailkonto aktiv +email address emailadmin no E-mailadresse +enable cyrus imap server administration emailadmin no Tillat Cyrus IMAP-tjener administrasjon +enable sieve emailadmin no Tillat Sieve +enter your default mail domain (from: user@domain) emailadmin no Registrer ditt standard Emaildomene (fra: bruker@domene) +forward also to emailadmin no videresend også til +forward email's to emailadmin no videresend e-mailer til +forward only emailadmin no bare videresending +imap admin password admin no IMAP Administrasjonspassord +imap admin user admin no IMAP Administrasjonsbruker +imap c-client version < 2001 emailadmin no IMAP C-klient versjon < 2001 +imap server hostname or ip address emailadmin no Tjenernavn eller IP-adresse for IMAP tjener +imap server logintyp emailadmin no IMAP Tjener påloggingstype +imap server port emailadmin no IMAP Tjenerport +imap/pop3 server name emailadmin no IMAP/POP3 tjenernavn +in mbyte emailadmin no i MByte +ldap basedn emailadmin no LDAP basedn +ldap server emailadmin no LDAP Tjener +ldap server accounts dn emailadmin no LDAP Tjenerkonti DN +ldap server admin dn emailadmin no LDAP Tjeneradmin. DN +ldap server admin password emailadmin no LDAP Tjeneradmin. passord +ldap server hostname or ip address emailadmin no Tjenernavn eller IP-adresse for LDAP tjener +ldap settings emailadmin no LDAP Instillinger +leave empty for no quota emailadmin no La stå tomt for ingen begrensning. +mail settings admin no E-post innstillinger +name of organisation emailadmin no Navn på organisasjon +no alternate email address emailadmin no ingen alternativ e-mailadresse +no forwarding email address emailadmin no ingen e-mailadresse for videresending +pop3 server hostname or ip address emailadmin no Tjenernavn eller IP-adresse for POP3 tjener +pop3 server port emailadmin no POP3 Tjenerport +postfix with ldap emailadmin no Postfix med LDAP +profile list emailadmin no Profilliste +profile name emailadmin no Profilnavn +qmaildotmode emailadmin no qmaildotmodus +qouta size in mbyte emailadmin no Grense Str. i Mbyte +quota settings emailadmin no Grenseinstillinger +remove emailadmin no fjern +select type of imap/pop3 server emailadmin no Velg type for IMAP/POP3 Tjener +select type of smtp server emailadmin no Velg type SMTP Tjener +sieve server hostname or ip address emailadmin no Tjenernavn eller IP-adresse for Sieve-tjener +sieve server port emailadmin no Sieve tjenerport +sieve settings emailadmin no Sieve innstillinger +smtp server name emailadmin no SMTP Tjenernavn +smtp-server hostname or ip address emailadmin no Tjenernavn eller IP-Adresse for SMTP-Tjener +smtp-server port emailadmin no SMTP Tjenerport +standard emailadmin no standard +standard imap server emailadmin no Standard IMAP tjener +standard pop3 server emailadmin no Standard POP3 tjener +standard smtp-server emailadmin no Standard SMTP tjener +use ldap defaults emailadmin no Bruk LDAP standaroppsett +use smtp auth emailadmin no Bruk SMTP autentisering +use tls authentication emailadmin no Bruk TLS autentisering +use tls encryption emailadmin no Bruk TLS kryptering +users can define their own emailaccounts emailadmin no Brukere kan definere egne e-post kontoer +virtual mail manager emailadmin no Virtuell Mail Manager diff --git a/emailadmin/setup/phpgw_pl.lang b/emailadmin/setup/phpgw_pl.lang new file mode 100644 index 0000000000..d5b176a598 --- /dev/null +++ b/emailadmin/setup/phpgw_pl.lang @@ -0,0 +1,10 @@ +add profile emailadmin pl Dodaj profil +alternate email address emailadmin pl alternatywny adres email +email address emailadmin pl adres email +imap/pop3 server name emailadmin pl Nazwa serwera IMAP/POP3 +ldap server emailadmin pl Serwer LDAP +ldap settings emailadmin pl Ustawienia LDAP +profile name emailadmin pl Nazwa Profilu +qouta size in mbyte emailadmin pl rozmiar quoty w megabajtach +quota settings emailadmin pl ustawnienia quoty +standard emailadmin pl Standard diff --git a/emailadmin/setup/phpgw_pt-br.lang b/emailadmin/setup/phpgw_pt-br.lang new file mode 100644 index 0000000000..88df7d662d --- /dev/null +++ b/emailadmin/setup/phpgw_pt-br.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin pt-br Conta '%1' não encontrada !!! +add new email address: emailadmin pt-br Adicionar novo e-mail: +add profile emailadmin pt-br Adicionar Perfil +admin dn emailadmin pt-br dn do administrador +admin password emailadmin pt-br senha do administrador +admin username emailadmin pt-br nome de usuário do administrador +advanced options emailadmin pt-br opções avançadas +alternate email address emailadmin pt-br endereço de e-mail alternativo +any application emailadmin pt-br qualquer aplicação +any group emailadmin pt-br qualquer grupo +bad login name or password. emailadmin pt-br Nome de usuário ou senha inválido(s). +bad or malformed request. server responded: %s emailadmin pt-br Solicitação inválida. Resposta do servidor: %s +bad request: %s emailadmin pt-br Solicitação inválida: %s +can be used by application emailadmin pt-br pode ser usado pela aplicação +can be used by group emailadmin pt-br pode ser usado pelo grupo +connection dropped by imap server. emailadmin pt-br Conexão interrompida pelo servidor IMAP. +could not complete request. reason given: %s emailadmin pt-br Não foi possível completar a solicitação. Resposta do servidor: %s +could not open secure connection to the imap server. %s : %s. emailadmin pt-br Não foi possível abrir conexão segura com o servidor IMAP. %s : %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin pt-br CRAM-MD5 ou DIGEST-MD5 necessitam que o pacote Auth_SASL esteja instalado. +cyrus imap server emailadmin pt-br Servidor Cyrus IMAP +cyrus imap server administration emailadmin pt-br Administração do Servidor Cyrus IMAP +default emailadmin pt-br padrão +deliver extern emailadmin pt-br entrega externa +do you really want to delete this profile emailadmin pt-br Tem certeza que deseja remover esse perfil? +domainname emailadmin pt-br nome do domínio +edit email settings emailadmin pt-br editar configurações de e-mail +email account active emailadmin pt-br conta de e-mail ativa +email address emailadmin pt-br endrereço de e-mail +email settings common pt-br Configurações do E-mail +emailadmin emailadmin pt-br Administração do E-Mail +enable cyrus imap server administration emailadmin pt-br habilitar administração do Servidor Cyrus IMAP +enable sieve emailadmin pt-br habilitar Sieve +encryption settings emailadmin pt-br configurações de criptografia +enter your default mail domain (from: user@domain) emailadmin pt-br Entre com o domínio de e-mail padrão (de: usuario@dominio) +error connecting to imap server. %s : %s. emailadmin pt-br Erro conectando ao servidor IMAP. %s : %s. +error connecting to imap server: [%s] %s. emailadmin pt-br Erro conectando ao servidor IMAP: [%s] %s. +forward also to emailadmin pt-br encaminhar também para +forward email's to emailadmin pt-br encaminhar mensagens para +forward only emailadmin pt-br encaminhar somente +global options emailadmin pt-br opções globais +if using ssl or tls, you must have the php openssl extension loaded. emailadmin pt-br Se estiver usando SSL ou TLS, você deverá ter a extensão PHP 'openssl' carretada. +imap admin password admin pt-br Senha do administrador IMAP +imap admin user admin pt-br Usuário administrador do IMAP +imap c-client version < 2001 emailadmin pt-br IMAP C-Cliente Versão < 2001 +imap server closed the connection. emailadmin pt-br O servidor IMAP fechou a conexão. +imap server closed the connection. server responded: %s emailadmin pt-br O servidor IMAP fechou a conexão. Resposta do servidor: %s +imap server hostname or ip address emailadmin pt-br Nome ou IP do servidor IMAP +imap server logintyp emailadmin pt-br Tipo de login do servidor IMAP +imap server port emailadmin pt-br Porta do servidor IMAP +imap/pop3 server name emailadmin pt-br Nome do servidor IMAP/POP3 +in mbyte emailadmin pt-br em Mbytes +ldap basedn emailadmin pt-br DN Base do LDAP +ldap server emailadmin pt-br Servidor LDAP +ldap server accounts dn emailadmin pt-br Contas DN de servidores LDAP +ldap server admin dn emailadmin pt-br Administrador DN de servidor LDAP +ldap server admin password emailadmin pt-br Senha do administrador DN de servidor LDAP +ldap server hostname or ip address emailadmin pt-br Nome ou endereço IP do servidor LDAP +ldap settings emailadmin pt-br Configurações do LDAP +leave empty for no quota emailadmin pt-br deixe em branco para nenhuma quota +mail settings admin pt-br Configurações de E-Mail +name of organisation emailadmin pt-br Nome da organização +no alternate email address emailadmin pt-br sem conta de e-mail alternativa +no encryption emailadmin pt-br sem criptografia +no forwarding email address emailadmin pt-br sem conta de e-mail para encaminhar +no message returned. emailadmin pt-br Nenhuma mensagem retornada. +no supported imap authentication method could be found. emailadmin pt-br Nenhum método de autenticação IMAP suportado pôde ser encontrado. +order emailadmin pt-br ordem +organisation emailadmin pt-br organização +plesk can't rename users --> request ignored emailadmin pt-br Plesk não pode renomear usuários --> solicitação ignorada +plesk imap server (courier) emailadmin pt-br Servidor IMAP Plesk (Courier) +plesk mail script '%1' not found !!! emailadmin pt-br Script de e-mail Plesk '%1' não encontrado !!! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin pt-br Plesk exige que senhas tenha no mínimo 5 caracteres e não contenham o nome da conta --> senha NÃO configurada!!! +plesk smtp-server (qmail) emailadmin pt-br Servidor SMTP Plesk (Qmail) +pop3 server hostname or ip address emailadmin pt-br Nome ou endereço IP do servidor POP3 +pop3 server port emailadmin pt-br Porta do servidor POP3 +postfix with ldap emailadmin pt-br Postfix com LDAP +profile access rights emailadmin pt-br direito de acesso aos perfis +profile list emailadmin pt-br Lista de perfis +profile name emailadmin pt-br Nome do perfil +qmaildotmode emailadmin pt-br modo dos arquivos qmail (.qmail) +qouta size in mbyte emailadmin pt-br tamanho da quota em MBytes +quota settings emailadmin pt-br configurações de quota +remove emailadmin pt-br remover +select type of imap/pop3 server emailadmin pt-br Selecione o tipo de servidor IMAP/POP3 +select type of smtp server emailadmin pt-br Selecione o tipo de servidor SMTP +server settings emailadmin pt-br configurações do servidor +sieve server hostname or ip address emailadmin pt-br Nome ou endereço IP do servidor Sieve +sieve server port emailadmin pt-br Porta do Servidor Sieve +sieve settings emailadmin pt-br Configurações Sieve +smtp authentication emailadmin pt-br autenticação smtp +smtp options emailadmin pt-br opções smtp +smtp server name emailadmin pt-br Nome do Servidor SMTP +smtp settings emailadmin pt-br configurações SMTP +smtp-server hostname or ip address emailadmin pt-br Nome ou endereço IP do servidor SMTP +smtp-server port emailadmin pt-br Porta do servidor SMTP +standard emailadmin pt-br Padrão +standard imap server emailadmin pt-br Servidor IMAP padrão +standard pop3 server emailadmin pt-br Servidor POP3 padrão +standard smtp-server emailadmin pt-br Servidor SMTP padrão +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin pt-br O servidor IMAP não parece suportar o método de autenticação selecionado. Por favor contacte o administrador do seu sistema. +this php has no imap support compiled in!! emailadmin pt-br Este PHP não tem suporte a IMAP compilado nele! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin pt-br Para usar uma conexão TLS, você deve estar rodando PHP versão 5.1.0 ou maior. +unexpected response from server to authenticate command. emailadmin pt-br Resposta inesperada do servidor para o comando AUTHENTICATE. +unexpected response from server to digest-md5 response. emailadmin pt-br Resposta inesperada do servidor para a resposta Digest-MD5. +unexpected response from server to login command. emailadmin pt-br Resposta inesperada do servidor para o comando LOGIN. +unknown imap response from the server. server responded: %s emailadmin pt-br Resposta desconhecida do servidor IMAP. Resposta do servidor: %s +unsupported action '%1' !!! emailadmin pt-br Ação não suportada: '%1' !!! +update current email address: emailadmin pt-br Atualizar e-mail atual: +use ldap defaults emailadmin pt-br usar padrões LDAP +use smtp auth emailadmin pt-br usar SMTP Autenticado +use tls authentication emailadmin pt-br Usar autenticação TLS +use tls encryption emailadmin pt-br Usar encriptação TLS +user can edit forwarding address emailadmin pt-br usuário pode editar endereço de encaminhamento +username (standard) emailadmin pt-br nome do usuário (padrão) +username@domainname (virtual mail manager) emailadmin pt-br nomedousuario@nomedodominio (Gerenciador Virtual Mail) +users can define their own emailaccounts emailadmin pt-br Os usuários podem definir sua próprias contas de correio +virtual mail manager emailadmin pt-br Gerenciador Virtual Mail diff --git a/emailadmin/setup/phpgw_pt.lang b/emailadmin/setup/phpgw_pt.lang new file mode 100644 index 0000000000..b5db4062e7 --- /dev/null +++ b/emailadmin/setup/phpgw_pt.lang @@ -0,0 +1,85 @@ +add profile emailadmin pt Adicionar perfil +admin dn emailadmin pt DN do administrador +admin password emailadmin pt Senha do administrador +admin passwort emailadmin pt Senha do administrador +admin username emailadmin pt Nome do utilizador do administrador +advanced options emailadmin pt Opções avançadas +alternate email address emailadmin pt Endereço de correio electrónico alternativo +any application emailadmin pt Qualquer aplicação +any group emailadmin pt Qualquer grupo +can be used by application emailadmin pt Pode ser utilizado pela aplicação +can be used by group emailadmin pt Pode ser utilizado pelo grupo +cyrus imap server emailadmin pt Servidor IMAP Cyrus +cyrus imap server administration emailadmin pt Administração do servidor IMAP Cyrus +default emailadmin pt Por omissão +deliver extern emailadmin pt Entrega externa +do you really want to delete this profile emailadmin pt Deseja relamente eliminar este perfil +domainname emailadmin pt Nome de domínio +edit email settings emailadmin pt Editar configurações do correio electrónico +email account active emailadmin pt Conta de correio electrónico activa +email address emailadmin pt Endereço de correio electrónico +enable cyrus imap server administration emailadmin pt Activar administração do servidor IMAP Cyrus +enable sieve emailadmin pt Activar Sieve +encryption settings emailadmin pt Definições de cifragem +enter your default mail domain (from: user@domain) emailadmin pt Insira o seu domínio de correio electrónico por omissão (de: utilizador@domínio) +forward also to emailadmin pt Reencaminhar também para +forward email's to emailadmin pt Reencaminhar mensagens para +forward only emailadmin pt Reencaminhar apenas +global options emailadmin pt Opções gerais +imap admin password admin pt Senha do administrador IMAP +imap admin user admin pt Utilizador do administrador IMAP +imap c-client version < 2001 emailadmin pt Versão C-Client IMAP < 2001 +imap server hostname or ip address emailadmin pt Nome do servidor ou endereço IP do servidor IMAP +imap server logintyp emailadmin pt Tipo de acesso do servidor IMAP +imap server port emailadmin pt Porto do servidor IMAP +imap/pop3 server name emailadmin pt Nome do servidor IMAP/POP3 +in mbyte emailadmin pt em MBytes +ldap basedn emailadmin pt Base DN LDAP +ldap server emailadmin pt Servidor LDAP +ldap server accounts dn emailadmin pt DN das contas de servidor LDAP +ldap server admin dn emailadmin pt DN do administrador de servidor LDAP +ldap server admin password emailadmin pt Senha do administrador de servidor LDAP +ldap server hostname or ip address emailadmin pt Nome do servidor ou endereço IP do servidor LDAP +ldap settings emailadmin pt Configurações do LDAP +leave empty for no quota emailadmin pt Deixar vazio para quota sem limites +mail settings admin pt Configurações do correio electrónico +name of organisation emailadmin pt Nome da empresa +no alternate email address emailadmin pt Sem endereço de correio electrónico alternativo +no forwarding email address emailadmin pt Sem endereço de correio electrónico para reencaminhamento +order emailadmin pt Ordem +organisation emailadmin pt Empresa +pop3 server hostname or ip address emailadmin pt Nome do servidor ou endereço IP do servidor POP3 +pop3 server port emailadmin pt Porto de servidor POP3 +postfix with ldap emailadmin pt Postfix com LDAP +profile access rights emailadmin pt Perfil de direitos de acesso +profile list emailadmin pt Lista de perfis +profile name emailadmin pt Nome do perfil +qmaildotmode emailadmin pt Quota do correio electrónico no modo Idot +qouta size in mbyte emailadmin pt Quota em MBytes +quota settings emailadmin pt Configurações da quota +remove emailadmin pt Remover +select type of imap/pop3 server emailadmin pt Seleccionar tipo de servidor IMAP/POP3 +select type of smtp server emailadmin pt Seleccionar tipo de servidor SMTP +server settings emailadmin pt Definições do servidor +sieve server hostname or ip address emailadmin pt Nome do servidor ou endereço IP do servidor Sieve +sieve server port emailadmin pt Porto do servidor Sieve +sieve settings emailadmin pt Configurações do SIeve +smtp authentication emailadmin pt Autenticação SMTP +smtp options emailadmin pt Opções do SMTP +smtp server name emailadmin pt Nome do servidor SMTP +smtp settings emailadmin pt Definições do SMTP +smtp-server hostname or ip address emailadmin pt Nome do servidor ou endereço IP do servidor SMTP +smtp-server port emailadmin pt Porto do servidor SMTP +standard emailadmin pt Por omissão +standard imap server emailadmin pt Servidor IMAP por omissão +standard pop3 server emailadmin pt Servidor POP3 por omissão +standard smtp-server emailadmin pt Servidor SMTP por omissão +use ldap defaults emailadmin pt Utilizar definições por omissão do LDAP +use smtp auth emailadmin pt Utilizar autenticação SMTP +use tls authentication emailadmin pt Utilizar autenticação TLS +use tls encryption emailadmin pt Utilizar cifra TLS +user can edit forwarding address emailadmin pt O utilizador pode editar endereços reencaminhados +username (standard) emailadmin pt Nome de utilizador (por omissão) +username@domainname (virtual mail manager) emailadmin pt utilizador@dominio (Gestor virtual de correio electrónico) +users can define their own emailaccounts emailadmin pt Os utilizadores podem definir as suas contas de correio electrónico +virtual mail manager emailadmin pt Gestor virtual de correio electrónico diff --git a/emailadmin/setup/phpgw_sk.lang b/emailadmin/setup/phpgw_sk.lang new file mode 100644 index 0000000000..f3acdaf38a --- /dev/null +++ b/emailadmin/setup/phpgw_sk.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin sk Úèet '%1' sa nena¹iel !!! +add new email address: emailadmin sk Prida» novú emailovú adresu: +add profile emailadmin sk Prida» profil +admin dn emailadmin sk správcov dn +admin password emailadmin sk heslo správcu +admin username emailadmin sk pou¾ívateµské meno správcu +advanced options emailadmin sk Roz¹írené mo¾nosti +alternate email address emailadmin sk alternatívna emailová adresa +any application emailadmin sk ktorákoµvek aplikácia +any group emailadmin sk ktorákoµvek skupina +bad login name or password. emailadmin sk Chybné prihlasovacie meno alebo heslo. +bad or malformed request. server responded: %s emailadmin sk Chybná alebo po¹kodená po¾iadavka. Odpoveï servera: %s +bad request: %s emailadmin sk Chybná po¾iadavka: %s +can be used by application emailadmin sk mô¾e by» pou¾ité aplikáciou +can be used by group emailadmin sk mô¾e by» pou¾ité skupinou +connection dropped by imap server. emailadmin sk Spojenie preru¹ené IMAP serverom. +could not complete request. reason given: %s emailadmin sk Nedá sa dokonèi» po¾iadavku. Dôvod: %s +could not open secure connection to the imap server. %s : %s. emailadmin sk Nepodarilo sa nadviaza» zabezpeèené pripojenie k IMAP serveru. %s : %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin sk CRAM-MD5 alebo DIGEST-MD5 vy¾aduje, aby bol nain¹talovaný balík Auth_SASL. +cyrus imap server emailadmin sk Cyrus IMAP Server +cyrus imap server administration emailadmin sk administrácia Cyrus IMAP Servera +default emailadmin sk ¹tandardný +deliver extern emailadmin sk doruèi» extern +do you really want to delete this profile emailadmin sk Naozaj chcete zmaza» tento Profil +domainname emailadmin sk názov domény +edit email settings emailadmin sk upravi» nastavenia emailu +email account active emailadmin sk emailový úèet aktívny +email address emailadmin sk emailová adresa +email settings common sk Nastavenia Email-u +emailadmin emailadmin sk EMailAdmin +enable cyrus imap server administration emailadmin sk zapnú» administráciu Cyrus IMAP Servera +enable sieve emailadmin sk zapnú» Sieve +encryption settings emailadmin sk nastavenia kryptovania +enter your default mail domain (from: user@domain) emailadmin sk Zadajte va¹u predvolenú doménu (z tvaru: user@domain| +error connecting to imap server. %s : %s. emailadmin sk Chyba poèas pripájania k IMAP serveru. %s : %s. +error connecting to imap server: [%s] %s. emailadmin sk Chyba poèas pripájania k IMAP serveru: [%s] %s. +forward also to emailadmin sk preposla» taktie¾ (komu) +forward email's to emailadmin sk preposla» emaily (kam) +forward only emailadmin sk preposla» iba +global options emailadmin sk Globálne nastavenia +if using ssl or tls, you must have the php openssl extension loaded. emailadmin sk Ak pou¾ívate SSL alebo TLS, musíte ma» nahraté roz¹írenie PHP openssl. +imap admin password admin sk heslo správcu IMAP +imap admin user admin sk pou¾ívateµ pre správu IMAP +imap c-client version < 2001 emailadmin sk IMAP C-klient verzia < 2001 +imap server closed the connection. emailadmin sk IMAP server ukonèil spojenie. +imap server closed the connection. server responded: %s emailadmin sk IMAP server ukonèil spojenie. Odpoveï servera: %s +imap server hostname or ip address emailadmin sk názov (hostname) alebo IP adresa IMAP servera +imap server logintyp emailadmin sk typ prihlásenia IMAP servera +imap server port emailadmin sk port IMAP servera +imap/pop3 server name emailadmin sk názov IMAP/POP3 servera +in mbyte emailadmin sk v Megabajtoch +ldap basedn emailadmin sk LDAP basedn +ldap server emailadmin sk LDAP server +ldap server accounts dn emailadmin sk DN úètov LDAP servera +ldap server admin dn emailadmin sk DN správcu LDAP servera +ldap server admin password emailadmin sk heslo správcu LDAP servera +ldap server hostname or ip address emailadmin sk názov (hostname) alebo IP adresa LDAP servera +ldap settings emailadmin sk nastavenia LDAP +leave empty for no quota emailadmin sk ak nechcete kvóty, ponechajte prázdne +mail settings admin sk nastavenia Po¹ty +name of organisation emailadmin sk Názov organizácie +no alternate email address emailadmin sk ¾iadna alternatívna emailová adresa +no encryption emailadmin sk bez ¹ifrovania +no forwarding email address emailadmin sk ¾iadna emailová adresa pre preposielanie +no message returned. emailadmin sk ®iadne správy sa nevrátili. +no supported imap authentication method could be found. emailadmin sk Nena¹iel som ¾iadnu podporovanú metódu IMAP autentifikácie. +order emailadmin sk Poradie +organisation emailadmin sk organizácia +plesk can't rename users --> request ignored emailadmin sk Plesk pou¾ívatelia sa nedajú premenova» --> po¾iadavka ignorovaná +plesk imap server (courier) emailadmin sk Plesk IMAP Server (Courier) +plesk mail script '%1' not found !!! emailadmin sk Plesk mail script '%1' sa nena¹lo !!! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin sk Plesk vy¾aduje, aby heslá mali aspoò 5 znakov a neobsahovali názov úètu --> heslo NEBOLO nastavené!!! +plesk smtp-server (qmail) emailadmin sk Plesk SMTP-Server (qmail) +pop3 server hostname or ip address emailadmin sk názov (hostname) alebo IP adresa POP3 servera +pop3 server port emailadmin sk port POP3 servera +postfix with ldap emailadmin sk Postfix + LDAP +profile access rights emailadmin sk prístupové práva profilu +profile list emailadmin sk Zoznam profilov +profile name emailadmin sk Názov profilu +qmaildotmode emailadmin sk qmail bodkový re¾im +qouta size in mbyte emailadmin sk veµkos» kvóty v Megabajtoch +quota settings emailadmin sk nastavenia kvóty +remove emailadmin sk odstráni» +select type of imap/pop3 server emailadmin sk Vyberte typ IMAP/POP3 servera +select type of smtp server emailadmin sk Vyberte typ SMTP servera +server settings emailadmin sk nastavenia servera +sieve server hostname or ip address emailadmin sk názov (hostname) alebo IP Sieve servera +sieve server port emailadmin sk port Sieve servera +sieve settings emailadmin sk nastavenia Sieve +smtp authentication emailadmin sk smtp autentifikácia +smtp options emailadmin sk smtp voµby +smtp server name emailadmin sk názov SMTP servera +smtp settings emailadmin sk smtp nastavenia +smtp-server hostname or ip address emailadmin sk názov (hostname) alebo IP adresa SMTP servera +smtp-server port emailadmin sk port SMTP servera +standard emailadmin sk ©tandard +standard imap server emailadmin sk ©tandardný IMAP server +standard pop3 server emailadmin sk ©tandardný POP3 server +standard smtp-server emailadmin sk ©tandardný SMTP server +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin sk Tento IMAP server, zdá sa, nepodporuje zvolenú autentifikaènú metódu. Prosím kontaktujte systémového administrátora. +this php has no imap support compiled in!! emailadmin sk Toto PHP nemá zakompilovanú podporu pre IMAP !! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin sk Ak chcete pou¾íva» pripojenie TLS, musíte fungova» na verzii PHP 5.1.0 alebo vy¹¹ej. +unexpected response from server to authenticate command. emailadmin sk Neoèakávaná odpoveï od servera na príkaz AUTENTICATE. +unexpected response from server to digest-md5 response. emailadmin sk Neoèakávaná odpoveï od servera na Digest-MD5 odpoveï. +unexpected response from server to login command. emailadmin sk Neoèakávaná odpoveï od servera na príkaz LOGIN. +unknown imap response from the server. server responded: %s emailadmin sk Neznáma IMAP odpoveï od servera. Server odpovedal: %s +unsupported action '%1' !!! emailadmin sk Nepodporovaná akcia '%1' !!! +update current email address: emailadmin sk Aktualizova» súèasnú Emailovú adresu: +use ldap defaults emailadmin sk pou¾i» predvolené hodnoty LDAP +use smtp auth emailadmin sk Pou¾i» SMTP autentifikáciu +use tls authentication emailadmin sk Pou¾i» TLS autentifikáciu +use tls encryption emailadmin sk Pou¾i» TLS kryptovanie +user can edit forwarding address emailadmin sk pou¾ívateµ mô¾e upravi» adresu preposielania +username (standard) emailadmin sk pou¾ívateµské meno (¹tandardné) +username@domainname (virtual mail manager) emailadmin sk pou¾ívateµ@doména (Virtuálny Mail ManaGeR) +users can define their own emailaccounts emailadmin sk Pou¾ívatelia mô¾u definova» ich vlastné emailové úèty +virtual mail manager emailadmin sk Virtuálny MAIL ManaGeR diff --git a/emailadmin/setup/phpgw_sl.lang b/emailadmin/setup/phpgw_sl.lang new file mode 100644 index 0000000000..4d1e3f00d7 --- /dev/null +++ b/emailadmin/setup/phpgw_sl.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin sl RaÄun '%1' ni bil najden! +add new email address: emailadmin sl Dodaj nov e-naslov: +add profile emailadmin sl Dodaj profil +admin dn emailadmin sl Oskrbnikov dn +admin password emailadmin sl Oskrbnikovo geslo +admin username emailadmin sl Oskrbnikovo uporabniÅ¡ko ime +advanced options emailadmin sl Napredne izbire +alternate email address emailadmin sl Alternativen E-naslov +any application emailadmin sl Katerakoli aplikacija +any group emailadmin sl Katerakoli skupina +bad login name or password. emailadmin sl NapaÄno uporabniÅ¡ko ime ali geslo. +bad or malformed request. server responded: %s emailadmin sl NapaÄna ali napaÄno oblikovana zahteva. Odgovor strežnika: %s +bad request: %s emailadmin sl NapaÄna zahteva: %s +can be used by application emailadmin sl Je lahko uporabljen iz aplikacije +can be used by group emailadmin sl Je lahko uporabljen iz skupine +connection dropped by imap server. emailadmin sl Strežnik IMAP je prekinil povezavo. +could not complete request. reason given: %s emailadmin sl Ne morem dokonÄati zahteve. Podan vzrok: %s +could not open secure connection to the imap server. %s : %s. emailadmin sl Ne morem odpreti varne povezave s strežnikom IMAP. %s : %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin sl CRAM-MD5 ali DIGEST-MD5 zahteva, da je nameÅ¡Äen paket Auth_SASL. +cyrus imap server emailadmin sl Cyrus IMAP strežnik +cyrus imap server administration emailadmin sl Upravljanje Cyrus IMAP strežnika +default emailadmin sl Privzeto +deliver extern emailadmin sl Zunanja dostava +do you really want to delete this profile emailadmin sl Ali res želite izbrisati ta profil? +domainname emailadmin sl Ime domene +edit email settings emailadmin sl Uredi nastavitve E-poÅ¡te +email account active emailadmin sl Nabiralnik E-poÅ¡te je aktiven +email address emailadmin sl E-naslov +email settings common sl Nastavitve E-poÅ¡te +emailadmin emailadmin sl EMailAdmin +enable cyrus imap server administration emailadmin sl OmogoÄi upravljanje Cyrus IMAP strežnika +enable sieve emailadmin sl OmogoÄi Sieve +encryption settings emailadmin sl Nastavitve Å¡ifriranja +enter your default mail domain (from: user@domain) emailadmin sl Vnesite privzeto domeno (oblika: uporabnik@domena) +error connecting to imap server. %s : %s. emailadmin sl Napaka pri povezavi s strežnikom IMAP. %s: %s. +error connecting to imap server: [%s] %s. emailadmin sl Napaka pri povezavi s strežnikom IMAP: [%s] %s. +forward also to emailadmin sl Posreduj tudi +forward email's to emailadmin sl Posreduj sporoÄila k +forward only emailadmin sl Samo posreduj +global options emailadmin sl Globalne možnosti +if using ssl or tls, you must have the php openssl extension loaded. emailadmin sl ÄŒe uporabljate SSL ali TLS, morate imeti naloženo razÅ¡iritev PHP openssl +imap admin password admin sl Geslo oskrbnika IMAPa +imap admin user admin sl UporabniÅ¡ko ime oskrbnika IMAP-a +imap c-client version < 2001 emailadmin sl IMAP C-klient razliÄica pred 2001 +imap server closed the connection. emailadmin sl Strežnik IMAP je prekinil povezavo. +imap server closed the connection. server responded: %s emailadmin sl Strežnik IMAP je prekinil povezavo. Odgovor strežnika: %s +imap server hostname or ip address emailadmin sl Ime ali IP IMAP strežnika +imap server logintyp emailadmin sl NaÄin prijave na IMAP strežnik +imap server port emailadmin sl Vrata IMAP strežnika +imap/pop3 server name emailadmin sl Ime IMAP/POP3 strežnika +in mbyte emailadmin sl v MB +ldap basedn emailadmin sl Osnovni DN LDAP +ldap server emailadmin sl LDAP strežnik +ldap server accounts dn emailadmin sl DN raÄunov LDAP strežnika +ldap server admin dn emailadmin sl Oskrbnikov DN LDAP strežnika +ldap server admin password emailadmin sl Geslo oskrbnika LDAP strežnika +ldap server hostname or ip address emailadmin sl Ime ali IP strežnika LDAP +ldap settings emailadmin sl LDAP nastavitve +leave empty for no quota emailadmin sl Pustite prazno za neomejeno +mail settings admin sl Nastavitve E-poÅ¡te +name of organisation emailadmin sl Ime organizacije +no alternate email address emailadmin sl Ni alternativnega E-naslova +no encryption emailadmin sl Brez Å¡ifriranja +no forwarding email address emailadmin sl Ni E-naslova za posredovanje +no message returned. emailadmin sl Ni vrnjenega sporoÄila. +no supported imap authentication method could be found. emailadmin sl Ni najdena metoda avtentikacije IMAP. +order emailadmin sl Vrstni red +organisation emailadmin sl Organizacija +plesk can't rename users --> request ignored emailadmin sl Plesk ne more preimenovati uporabnikov --> zahteva presliÅ¡ana +plesk imap server (courier) emailadmin sl Strežnik Plesk IMAP (Courier) +plesk mail script '%1' not found !!! emailadmin sl PoÅ¡tni skript Plesk '%1' ni bil najden! +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin sl Plesk zahteva geslo, dolga najmanj 5 znakov in ne sme vsebovati imena raÄuna --> geslo ni bilo nastavljeno! +plesk smtp-server (qmail) emailadmin sl Strežnik Plesk IMAP (Qmail) +pop3 server hostname or ip address emailadmin sl Ime ali IP POP3 strežnika +pop3 server port emailadmin sl Vrata POP3 strežnika +postfix with ldap emailadmin sl KonÄnica pri LDAP +profile access rights emailadmin sl Pravice dostopa do profila +profile list emailadmin sl Seznam profilov +profile name emailadmin sl Ime profila +qmaildotmode emailadmin sl NaÄin za qmaildot +qouta size in mbyte emailadmin sl Kvota v MB +quota settings emailadmin sl Nastavitvev kvote +remove emailadmin sl Odstrani +select type of imap/pop3 server emailadmin sl Izberite tip IMAP/POP3 strežnika +select type of smtp server emailadmin sl Izberite tip SMTP strežnika +server settings emailadmin sl Nastavitve strežnika +sieve server hostname or ip address emailadmin sl IP ali naslov strežnika za sito (Sieve) +sieve server port emailadmin sl Vrata strežnika za sito (Sieve) +sieve settings emailadmin sl Nastavitve sita (Sieve) +smtp authentication emailadmin sl SMTP avtentikacija +smtp options emailadmin sl SMTP možnosti +smtp server name emailadmin sl ime SMTP strežnika +smtp settings emailadmin sl SMTP nastavitve +smtp-server hostname or ip address emailadmin sl Ime ali IP SMTP strežnika +smtp-server port emailadmin sl Vrata SMTP strežnika +standard emailadmin sl Standarden +standard imap server emailadmin sl Standardni IMAP strežnik +standard pop3 server emailadmin sl Standardni POP3 strežnik +standard smtp-server emailadmin sl Standardni SMTP strežnik +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin sl Strežnik IMAP ne podpira izbrane metode avtentikacije. Kontaktirajte sistemskega upravitelja. +this php has no imap support compiled in!! emailadmin sl Ta PHP ne vsebuje podpore za IMAP! +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin sl ÄŒe želite uporabljati povezavo TLS, morate imeti nameÅ¡Äeno razliÄico PHP 5.1.0 ali viÅ¡jo. +unexpected response from server to authenticate command. emailadmin sl NepriÄakovan odgovor strežnika na ukaz AUTHENTICATE. +unexpected response from server to digest-md5 response. emailadmin sl NepriÄakovan odgovor strežnika na odgovor Digest-MD5. +unexpected response from server to login command. emailadmin sl NepriÄakovan odgovor strežnika na ukaz LOGIN. +unknown imap response from the server. server responded: %s emailadmin sl Neznan odgovor IMAP s strai strežnika. Odgovor strežnika: %s +unsupported action '%1' !!! emailadmin sl Nepodprto dejanje '%1'! +update current email address: emailadmin sl Posodobi trenutni e-naslov: +use ldap defaults emailadmin sl Uporabi privzeto za LDAP +use smtp auth emailadmin sl Uporabi SMTP avtentikacijo +use tls authentication emailadmin sl Uporabi TLS avtentikacijo +use tls encryption emailadmin sl Uporabi TLS enkripcijo +user can edit forwarding address emailadmin sl Uporabnik lahko doloÄa posredovalni naslov +username (standard) emailadmin sl Uporabnik (standardno) +username@domainname (virtual mail manager) emailadmin sl uporabnik@domena (Virtual MAIL ManaGeR) +users can define their own emailaccounts emailadmin sl Uporabniki lahko doloÄajo lastne E-poÅ¡tne predale +virtual mail manager emailadmin sl Virtualni upravljalec E-poÅ¡te diff --git a/emailadmin/setup/phpgw_sv.lang b/emailadmin/setup/phpgw_sv.lang new file mode 100644 index 0000000000..ace6286f9a --- /dev/null +++ b/emailadmin/setup/phpgw_sv.lang @@ -0,0 +1,68 @@ +add profile emailadmin sv Skapa profil +admin dn emailadmin sv Admin dn +admin password emailadmin sv Admin lösenord +admin username emailadmin sv Admin användare +advanced options emailadmin sv Avanserade alternativ +alternate email address emailadmin sv Alternerande e-post adress +cyrus imap server emailadmin sv Cyrus IMAP Server +cyrus imap server administration emailadmin sv Cyrus IMAP server administration +default emailadmin sv Standard +deliver extern emailadmin sv Leverera extern +do you really want to delete this profile emailadmin sv Vill du verkligen radera profilen? +domainname emailadmin sv Domän namn +edit email settings emailadmin sv Redigera e-post alternativ +email account active emailadmin sv Aktivt e-post konto +email address emailadmin sv E-post adress +enable cyrus imap server administration emailadmin sv Aktivera Cyrus IMAP server administration +enable sieve emailadmin sv Aktivera Sieve +enter your default mail domain (from: user@domain) emailadmin sv Standard e-post domän (från: user@domain) +forward also to emailadmin sv Vidarebefodra även till +forward email's to emailadmin sv Vidarebefodra e-post till +forward only emailadmin sv Vidarebefodra endast +imap admin password admin sv IMAP admin lösenord +imap admin user admin sv IMAP admin användare +imap c-client version < 2001 emailadmin sv IMAP C-Client version < 2001 +imap server hostname or ip address emailadmin sv IMAP server hostnamn eller IP adress +imap server logintyp emailadmin sv IMAP server inloggnings typ +imap server port emailadmin sv IMAP server port +imap/pop3 server name emailadmin sv IMAP/POP3 server namn +in mbyte emailadmin sv i MByte +ldap basedn emailadmin sv LDAP basedn +ldap server emailadmin sv LDAP server +ldap server accounts dn emailadmin sv LDAP server konton DN +ldap server admin dn emailadmin sv LDAP server admin DN +ldap server admin password emailadmin sv LDAP server admin lösenord +ldap server hostname or ip address emailadmin sv LDAP server hostnamn eller IP adress +ldap settings emailadmin sv LDAP alternativ +leave empty for no quota emailadmin sv Lämna tomt för ingen kvot +mail settings admin sv E-post alternativ +name of organisation emailadmin sv Organisations namn +no alternate email address emailadmin sv Ingen alternerande e-post adress +no forwarding email address emailadmin sv Ingen e-post vidarebefodrings adress +pop3 server hostname or ip address emailadmin sv POP3 server hostnamn eller IP adress +pop3 server port emailadmin sv POP3 server port +postfix with ldap emailadmin sv Postfix med LDAP +profile list emailadmin sv Profil lista +profile name emailadmin sv Profil namn +qmaildotmode emailadmin sv qmaildotmode +qouta size in mbyte emailadmin sv Kvot storlek i Mb +quota settings emailadmin sv Kvot alternativ +remove emailadmin sv Radera +select type of imap/pop3 server emailadmin sv Välj typ av IMAP/POP3 server +select type of smtp server emailadmin sv Välj typ av SMTP Server +sieve server hostname or ip address emailadmin sv Sieve server hostnamn eller IP adress +sieve server port emailadmin sv Sieve server port +sieve settings emailadmin sv Sieve alternativ +smtp server name emailadmin sv SMTP server namn +smtp-server hostname or ip address emailadmin sv SMTP server hostnamn eller IP adress +smtp-server port emailadmin sv SMTP server port +standard emailadmin sv Standard +standard imap server emailadmin sv Standard IMAP server +standard pop3 server emailadmin sv Standard POP3 server +standard smtp-server emailadmin sv Standard SMTP server +use ldap defaults emailadmin sv använd LDAP standarder +use smtp auth emailadmin sv Använd SMTP autentisering +use tls authentication emailadmin sv Använd TLS autentisering +use tls encryption emailadmin sv Använd TLS kryptering +users can define their own emailaccounts emailadmin sv Användare kan definiera egna epost konton? +virtual mail manager emailadmin sv Virtuell E-post administration diff --git a/emailadmin/setup/phpgw_zh-tw.lang b/emailadmin/setup/phpgw_zh-tw.lang new file mode 100644 index 0000000000..9359b707bc --- /dev/null +++ b/emailadmin/setup/phpgw_zh-tw.lang @@ -0,0 +1,117 @@ +account '%1' not found !!! emailadmin zh-tw 找ä¸åˆ°å¸³è™Ÿ '%1'ï¼ +add new email address: emailadmin zh-tw 新增信箱: +add profile emailadmin zh-tw 新增資料 +admin dn emailadmin zh-tw ç®¡ç† dn +admin password emailadmin zh-tw 管ç†å¯†ç¢¼ +admin username emailadmin zh-tw 管ç†å¸³è™Ÿ +advanced options emailadmin zh-tw 進階é¸é … +alternate email address emailadmin zh-tw 替代郵件ä½å€ +any application emailadmin zh-tw 任何模組 +any group emailadmin zh-tw 任何群組 +bad login name or password. emailadmin zh-tw 帳號或密碼有誤。 +bad or malformed request. server responded: %s emailadmin zh-tw 錯誤的請求,伺æœå™¨å›žæ‡‰ï¼š %s +bad request: %s emailadmin zh-tw 錯誤的請求: %s +can be used by application emailadmin zh-tw å¯ä»¥å–用資料的模組 +can be used by group emailadmin zh-tw å¯ä»¥å–用資料的群組 +connection dropped by imap server. emailadmin zh-tw 連線被 IMAP 伺æœå™¨ä¸­æ–·äº† +could not complete request. reason given: %s emailadmin zh-tw 無法完æˆè«‹æ±‚,ç†ç”±ï¼š %s +could not open secure connection to the imap server. %s : %s. emailadmin zh-tw 無法開啟安全連線到 IMAP 伺æœå™¨ã€‚%s : %s. +cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin zh-tw CRAM-MD5 或 DIGEST-MD5 需è¦å…ˆå®‰è£ Auth_SASL æ‰èƒ½ä½¿ç”¨ã€‚ +cyrus imap server emailadmin zh-tw Cyrus IMAP伺æœå™¨ +cyrus imap server administration emailadmin zh-tw Cyrus IMAP伺æœå™¨ç®¡ç† +default emailadmin zh-tw é è¨­ +deliver extern emailadmin zh-tw 傳é€åˆ°å¤–部 +do you really want to delete this profile emailadmin zh-tw 您確定è¦åˆªé™¤é€™å€‹è³‡æ–™ +domainname emailadmin zh-tw 網域å稱 +edit email settings emailadmin zh-tw 編輯郵件設定 +email account active emailadmin zh-tw 郵件帳號啟用 +email address emailadmin zh-tw 郵件ä½å€ +email settings common zh-tw 郵件設定 +emailadmin emailadmin zh-tw éƒµä»¶ç®¡ç† +enable cyrus imap server administration emailadmin zh-tw 啟用Cyrus IMAP伺æœå™¨ç®¡ç† +enable sieve emailadmin zh-tw 啟用Sieve +encryption settings emailadmin zh-tw 加密設定 +enter your default mail domain (from: user@domain) emailadmin zh-tw 輸入您的é è¨­éƒµä»¶ç¶²åŸŸ(å°è€é¼ å¾Œé¢æ‰€æœ‰å­—:帳號@網域) +error connecting to imap server. %s : %s. emailadmin zh-tw 連線到 IMAP 伺æœå™¨æ™‚發生錯誤。 %s : %s +error connecting to imap server: [%s] %s. emailadmin zh-tw 連線到 IMAP 伺æœå™¨æ™‚發生錯誤。 [%s] %s +forward also to emailadmin zh-tw åŒæ™‚轉寄到 +forward email's to emailadmin zh-tw 轉寄信件到 +forward only emailadmin zh-tw 轉寄 +global options emailadmin zh-tw 全域é¸é … +if using ssl or tls, you must have the php openssl extension loaded. emailadmin zh-tw 如果使用 SSL 或 TLS,您必須先載入 PHP openssl 外掛。 +imap admin password admin zh-tw IMAP管ç†è€…密碼 +imap admin user admin zh-tw IMAP管ç†è€…帳號 +imap c-client version < 2001 emailadmin zh-tw IMAP C-終端的版本å°æ–¼2001 +imap server closed the connection. emailadmin zh-tw IMAP伺æœå™¨é—œé–‰é€£ç·š +imap server closed the connection. server responded: %s emailadmin zh-tw IMAP伺æœå™¨é—œé–‰é€£ç·šï¼Œä¼ºæœå™¨å›žæ‡‰ï¼š %s +imap server hostname or ip address emailadmin zh-tw IMAP伺æœå™¨çš„主機å稱或是IPä½å€ +imap server logintyp emailadmin zh-tw IMAP伺æœå™¨ç™»å…¥é¡žåž‹ +imap server port emailadmin zh-tw IMAP伺æœå™¨é€£æŽ¥åŸ  +imap/pop3 server name emailadmin zh-tw IMAP/POP3伺æœå™¨å稱 +in mbyte emailadmin zh-tw 以MB顯示 +ldap basedn emailadmin zh-tw LDAP basedn +ldap server emailadmin zh-tw LDAP 伺æœå™¨ +ldap server accounts dn emailadmin zh-tw LDAP 伺æœå™¨å¸³è™Ÿ DN +ldap server admin dn emailadmin zh-tw LDAP 伺æœå™¨ç®¡ç†è€… DN +ldap server admin password emailadmin zh-tw LDAP 伺æœå™¨ç®¡ç†è€…密碼 +ldap server hostname or ip address emailadmin zh-tw LDAP 伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +ldap settings emailadmin zh-tw LDAP 設定 +leave empty for no quota emailadmin zh-tw ä¸å¡«å…¥ä»»ä½•è³‡æ–™è¡¨ç¤ºç„¡é™åˆ¶ +mail settings admin zh-tw 郵件設定 +name of organisation emailadmin zh-tw 組織å稱 +no alternate email address emailadmin zh-tw 沒有å¯æ›¿æ›çš„郵件ä½å€ +no encryption emailadmin zh-tw 沒有加密 +no forwarding email address emailadmin zh-tw 沒有轉寄郵件ä½å€ +no message returned. emailadmin zh-tw 沒有訊æ¯å›žæ‡‰ã€‚ +no supported imap authentication method could be found. emailadmin zh-tw 找ä¸åˆ°å¯ä»¥æ”¯æ´çš„ IMAP èªè­‰æ–¹å¼ã€‚ +order emailadmin zh-tw é †åº +organisation emailadmin zh-tw 組織 +plesk can't rename users --> request ignored emailadmin zh-tw Plesk 無法修改使用者å稱 --> 忽略 +plesk imap server (courier) emailadmin zh-tw Plesk IMAP 伺æœå™¨(Courier) +plesk mail script '%1' not found !!! emailadmin zh-tw 找ä¸åˆ° Plesk 郵件指令 '%1' ï¼ +plesk requires passwords to have at least 5 characters and not contain the account-name --> password not set!!! emailadmin zh-tw Plesk è¦æ±‚密碼至少必須有 5 個字元而且ä¸èƒ½åŒ…å«å¸³è™Ÿå稱 --> å¯†ç¢¼æ²’æœ‰è¨­å®šï¼ +plesk smtp-server (qmail) emailadmin zh-tw Plesk SMTP伺æœå™¨ (Qmail) +pop3 server hostname or ip address emailadmin zh-tw POP3伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +pop3 server port emailadmin zh-tw POP3伺æœå™¨é€£æŽ¥åŸ  +postfix with ldap emailadmin zh-tw 使用LDAP與 Postfix +profile access rights emailadmin zh-tw å­˜å–è³‡æ–™æ¬Šé™ +profile list emailadmin zh-tw 資料清單 +profile name emailadmin zh-tw 資料å稱 +qmaildotmode emailadmin zh-tw qmaildotmode +qouta size in mbyte emailadmin zh-tw é…é¡(MB) +quota settings emailadmin zh-tw é…é¡è¨­å®š +remove emailadmin zh-tw 移除 +select type of imap/pop3 server emailadmin zh-tw é¸æ“‡IMAP/POP3伺æœå™¨çš„æ ¼å¼ +select type of smtp server emailadmin zh-tw é¸æ“‡SMTP伺æœå™¨çš„æ ¼å¼ +server settings emailadmin zh-tw 伺æœå™¨è¨­å®š +sieve server hostname or ip address emailadmin zh-tw Sieve伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +sieve server port emailadmin zh-tw Sieve伺æœå™¨é€£æŽ¥åŸ  +sieve settings emailadmin zh-tw Sieve設定 +smtp authentication emailadmin zh-tw SMTP èªè­‰ +smtp options emailadmin zh-tw SMTP é¸é … +smtp server name emailadmin zh-tw SMTP伺æœå™¨å稱 +smtp settings emailadmin zh-tw SMTP 設定 +smtp-server hostname or ip address emailadmin zh-tw SMTP伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +smtp-server port emailadmin zh-tw SMTP伺æœå™¨é€£æŽ¥åŸ  +standard emailadmin zh-tw 標準 +standard imap server emailadmin zh-tw 標準IMAP伺æœå™¨ +standard pop3 server emailadmin zh-tw 標準POP3伺æœå™¨ +standard smtp-server emailadmin zh-tw 標準SMTP伺æœå™¨ +the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin zh-tw IMAP 伺æœå™¨ä¸æ”¯æ´æŒ‡å®šçš„èªè­‰æ–¹å¼ï¼Œè«‹è¯çµ¡æ‚¨çš„系統管ç†å“¡ã€‚ +this php has no imap support compiled in!! emailadmin zh-tw 您的PHP並未編譯為支æ´IMAP的狀態 +to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin zh-tw è¦ä½¿ç”¨ TLS 連線,您必須執行在 PHP 5.1.0 或是更新版本。 +unexpected response from server to authenticate command. emailadmin zh-tw AUTHENTICATE 指令讓伺æœå™¨å‚³å›žä¸å¦‚é æœŸçš„回應。 +unexpected response from server to digest-md5 response. emailadmin zh-tw 伺æœå™¨å‚³å›žä¸å¦‚é æœŸçš„ Digest-MD5 回應。 +unexpected response from server to login command. emailadmin zh-tw 伺æœå™¨å‚³å›žä¸å¦‚é æœŸçš„ LOGIN 指令。 +unknown imap response from the server. server responded: %s emailadmin zh-tw ä¸çŸ¥åçš„ IMAP 伺æœå™¨å›žæ‡‰ï¼Œå›žæ‡‰å…§å®¹ï¼š %s +unsupported action '%1' !!! emailadmin zh-tw ä¸æ”¯æ´ '%1' 這個æ“ä½œï¼ +update current email address: emailadmin zh-tw æ›´æ–°ç›®å‰ä¿¡ç®±ï¼š +use ldap defaults emailadmin zh-tw 使用LDAPé è¨­å€¼ +use smtp auth emailadmin zh-tw 使用SMTPèªè­‰ +use tls authentication emailadmin zh-tw 使用TLSèªè­‰ +use tls encryption emailadmin zh-tw 使用TLS加密 +user can edit forwarding address emailadmin zh-tw 使用者å¯ä»¥ç·¨è¼¯è‡ªå‹•è½‰å¯„ä¿¡ç®± +username (standard) emailadmin zh-tw 帳號(標準) +username@domainname (virtual mail manager) emailadmin zh-tw 帳號@網域(虛擬郵件管ç†ï¼‰ +users can define their own emailaccounts emailadmin zh-tw 使用者å¯ä»¥è‡ªè¡Œå®šç¾©éƒµä»¶å¸³è™Ÿ +virtual mail manager emailadmin zh-tw 虛擬郵件管ç†è€… diff --git a/emailadmin/setup/phpgw_zh.lang b/emailadmin/setup/phpgw_zh.lang new file mode 100644 index 0000000000..ec1b67f439 --- /dev/null +++ b/emailadmin/setup/phpgw_zh.lang @@ -0,0 +1,68 @@ +add profile emailadmin zt 新增基本資料 +admin dn emailadmin zt ç®¡ç† dn +admin password emailadmin zt 管ç†å¯†ç¢¼ +admin username emailadmin zt 管ç†å¸³è™Ÿ +advanced options emailadmin zt 進階é¸é … +alternate email address emailadmin zt 替代郵件ä½å€ +cyrus imap server emailadmin zt Cyrus IMAP伺æœå™¨ +cyrus imap server administration emailadmin zt Cyrus IMAP伺æœå™¨ç®¡ç† +default emailadmin zt é è¨­ +deliver extern emailadmin zt 傳é€åˆ°å¤–部 +do you really want to delete this profile emailadmin zt 您確定è¦åˆªé™¤é€™å€‹è³‡æ–™ +domainname emailadmin zt 網域å稱 +edit email settings emailadmin zt 編輯郵件設定 +email account active emailadmin zt 郵件帳號啟用 +email address emailadmin zt 郵件ä½å€ +enable cyrus imap server administration emailadmin zt 啟用Cyrus IMAP伺æœå™¨ç®¡ç† +enable sieve emailadmin zt 啟用Sieve +enter your default mail domain (from: user@domain) emailadmin zt 輸入您的é è¨­éƒµä»¶ç¶²åŸŸ(å°è€é¼ å¾Œé¢æ‰€æœ‰å­—:帳號@網域) +forward also to emailadmin zt åŒæ™‚轉寄到 +forward email's to emailadmin zt 轉寄信件到 +forward only emailadmin zt 轉寄 +imap admin password admin zt IMAP管ç†è€…密碼 +imap admin user admin zt IMAP管ç†è€…帳號 +imap c-client version < 2001 emailadmin zt IMAP C-終端的版本å°æ–¼2001 +imap server hostname or ip address emailadmin zt IMAP伺æœå™¨çš„主機å稱或是IPä½å€ +imap server logintyp emailadmin zt IMAP伺æœå™¨ç™»å…¥é¡žåž‹ +imap server port emailadmin zt IMAP伺æœå™¨é€£æŽ¥åŸ  +imap/pop3 server name emailadmin zt IMAP/POP3伺æœå™¨å稱 +in mbyte emailadmin zt 以MB顯示 +ldap basedn emailadmin zt LDAP basedn +ldap server emailadmin zt LDAP 伺æœå™¨ +ldap server accounts dn emailadmin zt LDAP 伺æœå™¨å¸³è™Ÿ DN +ldap server admin dn emailadmin zt LDAP 伺æœå™¨ç®¡ç†è€… DN +ldap server admin password emailadmin zt LDAP 伺æœå™¨ç®¡ç†è€…密碼 +ldap server hostname or ip address emailadmin zt LDAP 伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +ldap settings emailadmin zt LDAP 設定 +leave empty for no quota emailadmin zt ä¸å¡«å…¥ä»»ä½•è³‡æ–™è¡¨ç¤ºç„¡é™åˆ¶ +mail settings admin zt 郵件設定 +name of organisation emailadmin zt 組織å稱 +no alternate email address emailadmin zt 沒有å¯æ›¿æ›çš„郵件ä½å€ +no forwarding email address emailadmin zt 沒有轉寄郵件ä½å€ +pop3 server hostname or ip address emailadmin zt POP3伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +pop3 server port emailadmin zt POP3伺æœå™¨é€£æŽ¥åŸ  +postfix with ldap emailadmin zt 使用LDAP與 Postfix +profile list emailadmin zt 資料清單 +profile name emailadmin zt 資料å稱 +qmaildotmode emailadmin zt qmaildotmode +qouta size in mbyte emailadmin zt é…é¡(MB) +quota settings emailadmin zt é…é¡è¨­å®š +remove emailadmin zt 移除 +select type of imap/pop3 server emailadmin zt é¸æ“‡IMAP/POP3伺æœå™¨çš„æ ¼å¼ +select type of smtp server emailadmin zt é¸æ“‡SMTP伺æœå™¨çš„æ ¼å¼ +sieve server hostname or ip address emailadmin zt Sieve伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +sieve server port emailadmin zt Sieve伺æœå™¨é€£æŽ¥åŸ  +sieve settings emailadmin zt Sieve設定 +smtp server name emailadmin zt SMTP伺æœå™¨å稱 +smtp-server hostname or ip address emailadmin zt SMTP伺æœå™¨ä¸»æ©Ÿå稱或是IPä½å€ +smtp-server port emailadmin zt SMTP伺æœå™¨é€£æŽ¥åŸ  +standard emailadmin zt 標準 +standard imap server emailadmin zt 標準IMAP伺æœå™¨ +standard pop3 server emailadmin zt 標準POP3伺æœå™¨ +standard smtp-server emailadmin zt 標準SMTP伺æœå™¨ +use ldap defaults emailadmin zt 使用LDAPé è¨­å€¼ +use smtp auth emailadmin zt 使用SMTPèªè­‰ +use tls authentication emailadmin zt 使用TLSèªè­‰ +use tls encryption emailadmin zt 使用TLS加密 +users can define their own emailaccounts emailadmin zt 使用者å¯ä»¥è‡ªè¡Œå®šç¾©éƒµä»¶å¸³è™Ÿ +virtual mail manager emailadmin zt 虛擬郵件管ç†è€… diff --git a/emailadmin/setup/setup.inc.php b/emailadmin/setup/setup.inc.php new file mode 100644 index 0000000000..fc1f5140da --- /dev/null +++ b/emailadmin/setup/setup.inc.php @@ -0,0 +1,67 @@ + 'Lars Kneschke', + 'email' => 'lkneschke@linux-at-work.de' + ); + + $setup_info['emailadmin']['tables'][] = 'egw_emailadmin'; + + /* The hooks this app includes, needed for hooks registration */ + #$setup_info['emailadmin']['hooks'][] = 'preferences'; + $setup_info['emailadmin']['hooks'][] = 'admin'; + + /* Dependencies for this app to work */ + $setup_info['emailadmin']['depends'][] = array( + 'appname' => 'phpgwapi', + 'versions' => Array('1.0.0','1.0.1','1.2','1.3','1.4') + ); + $setup_info['felamimail']['depends'][] = array( + 'appname' => 'egw-pear', + 'versions' => Array('1.4.000') + ); + // installation checks for felamimail + $setup_info['emailadmin']['check_install'] = array( + '' => array( + 'func' => 'pear_check', + 'from' => 'EMailAdmin', + ), + 'Auth_SASL' => array( + 'func' => 'pear_check', + 'from' => 'EMailAdmin', + ), + 'Net_IMAP' => array( + 'func' => 'pear_check', + 'from' => 'FeLaMiMail', + ), + 'imap' => array( + 'func' => 'extension_check', + 'from' => 'EMailAdmin', + ), + ); + + diff --git a/emailadmin/setup/tables_current.inc.php b/emailadmin/setup/tables_current.inc.php new file mode 100644 index 0000000000..746fc29124 --- /dev/null +++ b/emailadmin/setup/tables_current.inc.php @@ -0,0 +1,59 @@ + array( + 'fd' => array( + 'ea_profile_id' => array('type' => 'auto','nullable' => False), + 'ea_smtp_server' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_type' => array('type' => 'int','precision' => '4'), + 'ea_smtp_port' => array('type' => 'int','precision' => '4'), + 'ea_smtp_auth' => array('type' => 'varchar','precision' => '3'), + 'ea_editforwardingaddress' => array('type' => 'varchar','precision' => '3'), + 'ea_smtp_ldap_server' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_ldap_basedn' => array('type' => 'varchar','precision' => '200'), + 'ea_smtp_ldap_admindn' => array('type' => 'varchar','precision' => '200'), + 'ea_smtp_ldap_adminpw' => array('type' => 'varchar','precision' => '30'), + 'ea_smtp_ldap_use_default' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_server' => array('type' => 'varchar','precision' => '80'), + 'ea_imap_type' => array('type' => 'int','precision' => '4'), + 'ea_imap_port' => array('type' => 'int','precision' => '4'), + 'ea_imap_login_type' => array('type' => 'varchar','precision' => '20'), + 'ea_imap_tsl_auth' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_tsl_encryption' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_enable_cyrus' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_admin_user' => array('type' => 'varchar','precision' => '40'), + 'ea_imap_admin_pw' => array('type' => 'varchar','precision' => '40'), + 'ea_imap_enable_sieve' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_sieve_server' => array('type' => 'varchar','precision' => '80'), + 'ea_imap_sieve_port' => array('type' => 'int','precision' => '4'), + 'ea_description' => array('type' => 'varchar','precision' => '200'), + 'ea_default_domain' => array('type' => 'varchar','precision' => '100'), + 'ea_organisation_name' => array('type' => 'varchar','precision' => '100'), + 'ea_user_defined_accounts' => array('type' => 'varchar','precision' => '3'), + 'ea_imapoldcclient' => array('type' => 'varchar','precision' => '3'), + 'ea_order' => array('type' => 'int','precision' => '4'), + 'ea_appname' => array('type' => 'varchar','precision' => '80'), + 'ea_group' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_auth_username' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_auth_password' => array('type' => 'varchar','precision' => '80') + ), + 'pk' => array('ea_profile_id'), + 'fk' => array(), + 'ix' => array('ea_appname','ea_group'), + 'uc' => array() + ) + ); +?> diff --git a/emailadmin/setup/tables_update.inc.php b/emailadmin/setup/tables_update.inc.php new file mode 100644 index 0000000000..4124cf4fc1 --- /dev/null +++ b/emailadmin/setup/tables_update.inc.php @@ -0,0 +1,198 @@ +oProc->AddColumn('phpgw_emailadmin','smtpType', array('type' => 'int', 'precision' => 4)); + + return $setup_info['emailadmin']['currentver'] = '0.0.4'; + } + + $test[] = '0.0.4'; + function emailadmin_upgrade0_0_4() + { + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','defaultDomain', array('type' => 'varchar', 'precision' => 100)); + + return $setup_info['emailadmin']['currentver'] = '0.0.5'; + } + + $test[] = '0.0.5'; + function emailadmin_upgrade0_0_5() + { + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','organisationName', array('type' => 'varchar', 'precision' => 100)); + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','userDefinedAccounts', array('type' => 'varchar', 'precision' => 3)); + + return $setup_info['emailadmin']['currentver'] = '0.0.6'; + } + + + + $test[] = '0.0.6'; + function emailadmin_upgrade0_0_6() + { + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','oldimapcclient',array( + 'type' => 'varchar', + 'precision' => '3' + )); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '0.0.007'; + } + + + $test[] = '0.0.007'; + function emailadmin_upgrade0_0_007() + { + $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_emailadmin','oldimapcclient','imapoldcclient'); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '0.0.008'; + } + + + $test[] = '0.0.008'; + function emailadmin_upgrade0_0_008() + { + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.0'; + } + + $test[] = '1.0.0'; + function emailadmin_upgrade1_0_0() + { + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','editforwardingaddress',array( + 'type' => 'varchar', + 'precision' => '3' + )); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.1'; + } + + $test[] = '1.0.1'; + function emailadmin_upgrade1_0_1() + { + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','ea_order', array('type' => 'int', 'precision' => 4)); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.2'; + } + + $test[] = '1.0.2'; + function emailadmin_upgrade1_0_2() + { + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','ea_appname', array('type' => 'varchar','precision' => '80')); + $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_emailadmin','ea_group', array('type' => 'varchar','precision' => '80')); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.0.3'; + } + + $test[] = '1.0.3'; + function emailadmin_upgrade1_0_3() + { + $GLOBALS['egw_setup']->oProc->RenameTable('phpgw_emailadmin','egw_emailadmin'); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.2'; + } + + $test[] = '1.2'; + function emailadmin_upgrade1_2() + { + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','profileID','ea_profile_id'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpServer','ea_smtp_server'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpType','ea_smtp_type'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpPort','ea_smtp_port'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpAuth','ea_smtp_auth'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','editforwardingaddress','ea_editforwardingaddress'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPServer','ea_smtp_ldap_server'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPBaseDN','ea_smtp_ldap_basedn'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPAdminDN','ea_smtp_ldap_admindn'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPAdminPW','ea_smtp_ldap_adminpw'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','smtpLDAPUseDefault','ea_smtp_ldap_use_default'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapServer','ea_imap_server'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapType','ea_imap_type'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapPort','ea_imap_port'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapLoginType','ea_imap_login_type'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapTLSAuthentication','ea_imap_tsl_auth'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapTLSEncryption','ea_imap_tsl_encryption'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapEnableCyrusAdmin','ea_imap_enable_cyrus'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapAdminUsername','ea_imap_admin_user'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapAdminPW','ea_imap_admin_pw'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapEnableSieve','ea_imap_enable_sieve'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapSieveServer','ea_imap_sieve_server'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapSievePort','ea_imap_sieve_port'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','description','ea_description'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','defaultDomain','ea_default_domain'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','organisationName','ea_organisation_name'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','userDefinedAccounts','ea_user_defined_accounts'); + $GLOBALS['egw_setup']->oProc->RenameColumn('egw_emailadmin','imapoldcclient','ea_imapoldcclient'); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.2.001'; + } + + + $test[] = '1.2.001'; + function emailadmin_upgrade1_2_001() + { + /* done by RefreshTable() anyway + $GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_smtp_auth_username',array( + 'type' => 'varchar', + 'precision' => '80' + ));*/ + /* done by RefreshTable() anyway + $GLOBALS['egw_setup']->oProc->AddColumn('egw_emailadmin','ea_smtp_auth_password',array( + 'type' => 'varchar', + 'precision' => '80' + ));*/ + $GLOBALS['egw_setup']->oProc->RefreshTable('egw_emailadmin',array( + 'fd' => array( + 'ea_profile_id' => array('type' => 'auto','nullable' => False), + 'ea_smtp_server' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_type' => array('type' => 'int','precision' => '4'), + 'ea_smtp_port' => array('type' => 'int','precision' => '4'), + 'ea_smtp_auth' => array('type' => 'varchar','precision' => '3'), + 'ea_editforwardingaddress' => array('type' => 'varchar','precision' => '3'), + 'ea_smtp_ldap_server' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_ldap_basedn' => array('type' => 'varchar','precision' => '200'), + 'ea_smtp_ldap_admindn' => array('type' => 'varchar','precision' => '200'), + 'ea_smtp_ldap_adminpw' => array('type' => 'varchar','precision' => '30'), + 'ea_smtp_ldap_use_default' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_server' => array('type' => 'varchar','precision' => '80'), + 'ea_imap_type' => array('type' => 'int','precision' => '4'), + 'ea_imap_port' => array('type' => 'int','precision' => '4'), + 'ea_imap_login_type' => array('type' => 'varchar','precision' => '20'), + 'ea_imap_tsl_auth' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_tsl_encryption' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_enable_cyrus' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_admin_user' => array('type' => 'varchar','precision' => '40'), + 'ea_imap_admin_pw' => array('type' => 'varchar','precision' => '40'), + 'ea_imap_enable_sieve' => array('type' => 'varchar','precision' => '3'), + 'ea_imap_sieve_server' => array('type' => 'varchar','precision' => '80'), + 'ea_imap_sieve_port' => array('type' => 'int','precision' => '4'), + 'ea_description' => array('type' => 'varchar','precision' => '200'), + 'ea_default_domain' => array('type' => 'varchar','precision' => '100'), + 'ea_organisation_name' => array('type' => 'varchar','precision' => '100'), + 'ea_user_defined_accounts' => array('type' => 'varchar','precision' => '3'), + 'ea_imapoldcclient' => array('type' => 'varchar','precision' => '3'), + 'ea_order' => array('type' => 'int','precision' => '4'), + 'ea_appname' => array('type' => 'varchar','precision' => '80'), + 'ea_group' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_auth_username' => array('type' => 'varchar','precision' => '80'), + 'ea_smtp_auth_password' => array('type' => 'varchar','precision' => '80') + ), + 'pk' => array('ea_profile_id'), + 'fk' => array(), + 'ix' => array('ea_appname','ea_group'), + 'uc' => array() + )); + + return $GLOBALS['setup_info']['emailadmin']['currentver'] = '1.2.002'; + } +?> diff --git a/emailadmin/templates/default/config.tpl b/emailadmin/templates/default/config.tpl new file mode 100644 index 0000000000..10b25fdd98 --- /dev/null +++ b/emailadmin/templates/default/config.tpl @@ -0,0 +1,42 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 {title}
 
 {lang_Mail_settings}
{lang_IMAP_admin_user}:
{lang_IMAP_admin_password}:
+  +
+ + +
+
+ diff --git a/emailadmin/templates/default/defaultpage.tpl b/emailadmin/templates/default/defaultpage.tpl new file mode 100644 index 0000000000..6d284a2d07 --- /dev/null +++ b/emailadmin/templates/default/defaultpage.tpl @@ -0,0 +1,64 @@ + +
+ + + + + +
+ + {menu_rows} + + + + {activation_rows} + + + +
+   +
+ {lang_done} +
+
+
+ + + + +
+ Data +
+
+
+
+ + + + + + {menu_description} + + + + + + + + {menu_description} + + + + + + + + {lang_activate} + + + + +   + + + diff --git a/emailadmin/templates/default/domainnames.tpl b/emailadmin/templates/default/domainnames.tpl new file mode 100644 index 0000000000..527440e63d --- /dev/null +++ b/emailadmin/templates/default/domainnames.tpl @@ -0,0 +1,136 @@ + +
+ + + + + +
+ + {menu_rows} + + + + {activation_rows} + + + +
+   +
+ {lang_done} +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Domains we receive email for +
+ {rcpt_selectbox} + + + +
+   +
+ +
+ {lang_add_to_local} +
+ + +
+   +
+ Domains which email we handle local +
+ {locals_selectbox} + + + +
+   +
+ +
+ + +
+
+ +
+ + + + + +
{menu_description} + + + + + + + + {menu_description} + + + + + + + + {lang_activate} + + + + +   + + + diff --git a/emailadmin/templates/default/editprofile.tpl b/emailadmin/templates/default/editprofile.tpl new file mode 100755 index 0000000000..583879b9ec --- /dev/null +++ b/emailadmin/templates/default/editprofile.tpl @@ -0,0 +1,803 @@ + +
+
+
+ + + + + + + +
GlobalSMTPPOP3/IMAP
+

+ + + + +
+ + + + + +
+ {lang_profile_name} + + +
+

+

{lang_organisation} + + + + + + + + + +
+ {lang_default_domain}: + + +
+ {lang_organisation_name}: + + +
+
+

+

{lang_profile_access_rights} + + + + + + + + + +
+ {lang_can_be_used_by_application}: + + {application_select_box} +
+ {lang_can_be_used_by_group}: + + {group_select_box} +
+
+

+

{lang_global_options} + + + + + +
+ {lang_user_defined_accounts}: + + +
+
+
+ + + + +
+ + + + + +
+ {lang_Select_type_of_SMTP_Server} + + {smtptype} +
+

+ + + +

+
{lang_smtp_settings} + + + + + + + + + + +
{lang_SMTP_server_hostname_or_IP_address}:
{lang_SMTP_server_port}:
+
+

+

{lang_smtp_auth} + + + + + + + + + + + + + +
{lang_Use_SMTP_auth}: + +
{lang_username}: + +
{lang_password}: + +
+
+
+ + + + +
+
{lang_smtp_settings} + + + + + + + + + + +
{lang_SMTP_server_hostname_or_IP_address}:
{lang_SMTP_server_port}:
+
+

+

{lang_smtp_auth} + + + + + + + + + + + + + +
{lang_Use_SMTP_auth}: + +
{lang_username}: + +
{lang_password}: + +
+
+

+

{lang_smtp_options} + + + + + +
{lang_user_can_edit_forwarding_address}: + +
+
+ +
+ + + +
+
{lang_smtp_settings} + + + + + + + + + + +
{lang_SMTP_server_hostname_or_IP_address}:
{lang_SMTP_server_port}:
+
+

+

{lang_smtp_auth} + + + + + + + + + + + + + +
{lang_Use_SMTP_auth}: + +
{lang_username}: + +
{lang_password}: + +
+
+
+ + + +
+
{lang_smtp_settings} + + + + + + + + + + +
{lang_SMTP_server_hostname_or_IP_address}:
{lang_SMTP_server_port}:
+
+

+

{lang_smtp_auth} + + + + + + + + + + + + + +
{lang_Use_SMTP_auth}: + +
{lang_username}: + +
{lang_password}: + +
+
+

+

{lang_smtp_options} + + + + + +
{lang_user_can_edit_forwarding_address}: + +
+
+
+ + + +
+
{lang_smtp_settings} + + + + + + + + + + +
{lang_SMTP_server_hostname_or_IP_address}:
{lang_SMTP_server_port}:
+
+

+

{lang_smtp_auth} + + + + + + + + + + + + + +
{lang_Use_SMTP_auth}: + +
{lang_username}: + +
{lang_password}: + +
+
+

+

{lang_smtp_options} + + + + + +
{lang_user_can_edit_forwarding_address}: + +
+
+
+ +
+ + + +
+ + + + + +
+ {lang_select_type_of_imap/pop3_server} + + {imaptype} +
+

+ + + +

+
{lang_server_settings} + + + + + + + + + + + + + + + + +
{lang_pop3_server_hostname_or_IP_address}:
{lang_pop3_server_port}:
{lang_imap_server_logintyp}: + +
+
+

+

{lang_encryption_settings} + + + + + + + + + + + + +
{lang_encrypted_connection}: + STARTTLS + TLS + SSL + {lang_no_encryption} +
{lang_do_not_validate_certificate}: + +
+
+
+ + + + +
+
{lang_server_settings} + + + + + + + + + + + + + + + + +
{lang_imap_server_hostname_or_IP_address}:
{lang_imap_server_port}:
{lang_imap_server_logintyp}: + +
+
+

+

{lang_encryption_settings} + + + + + + + + + + + +
{lang_encrypted_connection}: + + STARTTLS + TLS + SSL + {lang_no_encryption} +
{lang_do_not_validate_certificate}: + +
+
+
+ + + + +
+
{lang_server_settings} + + + + + + + + + + + + + + + + +
{lang_imap_server_hostname_or_IP_address}:
{lang_imap_server_port}:
{lang_imap_server_logintyp}: + +
+
+

+

{lang_encryption_settings} + + + + + + + + + + + + +
{lang_encrypted_connection}: + + STARTTLS + TLS + SSL + {lang_no_encryption} +
{lang_do_not_validate_certificate}: + +
+
+

+

{lang_sieve_settings} + + + + + + + + + +
{lang_enable_sieve}: + +
{lang_sieve_server_port}:
+
+

+

{lang_cyrus_imap_administration} + + + + + + + + + + + + + + +
{lang_enable_cyrus_imap_administration}: + +
{lang_admin_username}:
{lang_admin_password}:
+
+
+ + + +
+
{lang_server_settings} + + + + + + + + + + + + + + + + +
{lang_imap_server_hostname_or_IP_address}:
{lang_imap_server_port}:
{lang_imap_server_logintyp}: + +
+
+

+

{lang_encryption_settings} + + + + + + + + + + + +
{lang_encrypted_connection}: + + STARTTLS + TLS + SSL + {lang_no_encryption} +
{lang_do_not_validate_certificate}: + +
+
+

+

{lang_sieve_settings} + + + + + + + + + +
{lang_enable_sieve}: + +
{lang_sieve_server_port}:
+
+
+ + + +
+
{lang_server_settings} + + + + + + + + + + + + + + + + +
{lang_imap_server_hostname_or_IP_address}:
{lang_imap_server_port}:
{lang_imap_server_logintyp}: + +
+
+

+

{lang_encryption_settings} + + + + + + + + + + + + +
{lang_encrypted_connection}: + + STARTTLS + TLS + SSL + {lang_no_encryption} +
{lang_do_not_validate_certificate}: + +
+
+
+ + + +
+
{lang_server_settings} + + + + + + + + + + + + + + + + +
{lang_imap_server_hostname_or_IP_address}:
{lang_imap_server_port}:
{lang_imap_server_logintyp}: + +
+
+

+

{lang_encryption_settings} + + + + + + + + + + + +
{lang_encrypted_connection}: + + STARTTLS + TLS + SSL + {lang_no_encryption} +
{lang_do_not_validate_certificate}: + +
+
+

+

{lang_sieve_settings} + + + + + + + + + +
{lang_enable_sieve}: + +
{lang_sieve_server_port}:
+
+
+ +
+ + + +
+

still something todo ...

+

Come back later!!

+
+ +

+ + + + + +
+ {lang_back} + + {lang_save} +
+
+
+
+ + diff --git a/emailadmin/templates/default/edituserdata.tpl b/emailadmin/templates/default/edituserdata.tpl new file mode 100644 index 0000000000..15e409690f --- /dev/null +++ b/emailadmin/templates/default/edituserdata.tpl @@ -0,0 +1,111 @@ + + +
+
+ + + + + +
+ {rows} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ {lang_email_config} + + {lang_emailaccount_active} + +
{lang_emailAddress} + +
{lang_mailAlternateAddress} + {selectbox_mailAlternateAddress} + +
+
+ +
{lang_mailRoutingAddress} + {selectbox_mailRoutingAddress} + +
+
+ +
+ {lang_forward_only} + + +
+   +
+ {lang_quota_settings} +
{lang_qoutainmbyte} + ({lang_0forunlimited}) +
+   +
+ + + + +
+ +
+
+
+
+ + + + +   {row_text} + + diff --git a/emailadmin/templates/default/images/navbar.png b/emailadmin/templates/default/images/navbar.png new file mode 100644 index 0000000000000000000000000000000000000000..2c2183563581f64d81a86acdab90d5d55f2812c9 GIT binary patch literal 2051 zcmV+e2>kbnP)t-6Qx$8qNr(_s!E%LR&kZ8 z5=|6HAEHRTsCj53^`Sge0-+K@s}M*{2;$OEO1UKz<4eJqt!?mLyzBMu?C$K&?wmfX zcYPs18YNO6I?_n{ojr5@zwbZa`DO42gmeOYP1``JD)kg z!GotssboAP2;$3vz}lLc{9eD`EmBIrIiRW<0s)UWG7{c?CxB0N3l1MX6Ci~B2*8sb zkHg;B=y#jVGB^h~=ir<}*LA3>4nhddo*hb#k0;uKub%lBNj{l7{H7FwF9S4eYlu0wvBUi*VH&2wY4=i zNfPH}%Q=T(%*L6F23_aXH8|%ua^%BXiA1Jh$Br%ho(^2Na9K7Ce2WnJ6IqsO>*~Bd zyWL7E*)7bLb5!F}$$+L6z?e9jB_U{NsPQBc>Sh4%-x1)_r7J5b6anjra&^OLJ&j{LgsrF<657J#F16u3g0Stp5 zV2pJVLZItK7>0q_BAc~vA<+DBAQFxubbdc1Erit%cEjolfKZA;Hi@zRGdQ<*2Ra^m zi3kFFW-b8L_2SN0EIvsog(wP;BoVn>9;uXysi_oHH3wZUeyniWevW)z$H2KG&?in| z@tQBAq-T(fT*cJH5VF$|)C8BHrOAx*fBGf-KE=Cj+aDjOI30P|!gsgCq%%Bx%N_GE8_Pf_UG4+_$726aP9rullp8Da1m< zphW{lPQl_uE@gB~eFeZ*tGghdFZ?_lp6qIFu6I`oth@k+$s|Kjr0Vv{WO7I*&Rv`sA>*o6N5=0NJoZet`tGJ z1+C4?v8r6gn-d<77fr!B*exc&FaQ()nV~31;2h}aXe7su_5W}l zKt8YkZfq>_tjFW5n=4u=K0*itfzBBx)k3VTtHXvTwgba^(b&=o#!E9jeij^zBC1WI z(dCDtNLaMU?|bgKKdhq_fK8h^Bl&z`SkpAjZ@B=a1d_zS7y+ep<|Lq$fH4ZjDE!UK zkz!3KK?Jb}0c!xT)C1NAa9a@L<6)@IRq*&~!5G1c6#=u&ru=kX=XvU>XTzMM+vTz= zbL|&J0hAIDGJBR|RAWIDVfHOU@4>&J&S!$;Y5+C6p&JyVBctd&U%*3KzJtNRDBr*T zT;k%z(BBh@?9b*s4UZl@M@3NxZP>7~5g;%O4oV3`k=^rgT`1@{`N37#Jx!>y#gUJX zVBnuOu%!JySOaaiaxKq~{^e+tG3mFes{elH&hI4vfX-cH^X7F%v1sg%Mw3Rxe#So8 zJ4+}OLr!$Rd}YC_4k5ku3LY_Xa4HO1LtRfG-e0N(H9Vz^z*vh6ZjT5-lK^2GSW|#TVMvws&+rIrrMz0J^(3 zjH#+Nn#&ackWU0KFc5-l@jwtL3OZ0M0XN4JNKI!D4kuA80lE&@9ah@ewf@@3^N-}YZFm&b(*!}_jWC!>cBUD(yv7usmD$VWXcMX)G=lm4A?Ay+W}Zj z1}W+}FQAaSz7=P)`PcjVN1vFSOqs7;n@DJyen3^V*L!*%y*_u|;9zg*aIfzdl<2~S zja}>O>YPqlmZdGyjd!+geYkk{ijZx=V8_z6YuBxAXsBImv6x+oBG61mGm^>a`1R}mzW&iiXD-F# hBUb^W|7Sj6{{t9+t8k5SKfV9}002ovPDHLkV1je!*De46 literal 0 HcmV?d00001 diff --git a/emailadmin/templates/default/ldapsettings.tpl b/emailadmin/templates/default/ldapsettings.tpl new file mode 100644 index 0000000000..3e432cbd87 --- /dev/null +++ b/emailadmin/templates/default/ldapsettings.tpl @@ -0,0 +1,87 @@ + +
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ {lang_server_name} + + +
+ {lang_server_description} + + +
+ {lang_ldap_server} + + +
+ {lang_ldap_basedn} + + +
+ {lang_ldap_server_admin} + + +
+ {lang_ldap_server_password} + + +
+ {lang_back} + + + +
+
+
+
+ + + + + +
{menu_description} + + + + + + + + {menu_description} + + + diff --git a/emailadmin/templates/default/listprofiles.tpl b/emailadmin/templates/default/listprofiles.tpl new file mode 100755 index 0000000000..bb6bf06b65 --- /dev/null +++ b/emailadmin/templates/default/listprofiles.tpl @@ -0,0 +1,35 @@ + +
+ + + + + + + + + + + + + + + + +
+   + +   + + {lang_add_profile} +
+ {server_next_match} +
+   +
+ +
+
+
+ + diff --git a/emailadmin/templates/default/listservers.tpl b/emailadmin/templates/default/listservers.tpl new file mode 100755 index 0000000000..d09b3e8c2b --- /dev/null +++ b/emailadmin/templates/default/listservers.tpl @@ -0,0 +1,25 @@ + +
+ + + + + + + + + + +
+   + +{lang_server_list} + + {lang_add_server} +
+ {server_next_match} +
+
+
+ + diff --git a/emailadmin/templates/default/nextMatch.tpl b/emailadmin/templates/default/nextMatch.tpl new file mode 100644 index 0000000000..0bd2bfaee3 --- /dev/null +++ b/emailadmin/templates/default/nextMatch.tpl @@ -0,0 +1,25 @@ + + + + {left_next_matchs} + + {right_next_matchs} + +
{description}
+ + + + + + {header_row_data} + + + + + + + {row_data} + + + +
\ No newline at end of file diff --git a/emailadmin/templates/default/options.tpl b/emailadmin/templates/default/options.tpl new file mode 100644 index 0000000000..c979d5d1a9 --- /dev/null +++ b/emailadmin/templates/default/options.tpl @@ -0,0 +1,138 @@ + +
+ + + + + +
+ + {menu_rows} + + + + {activation_rows} + + + +
+   +
+ {lang_done} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ldaplocaldelivery +
+ {desc_ldaplocaldelivery} +
+ +
+   +
+ ldapdefaultdotmode +
+ {desc_ldapdefaultdotmode} +
+ +
+   +
+ ldapbasedn +
+ {desc_ldapbasedn} +
+ +
+   +
+ dirmaker +
+ ldapcluster +
+
+
+
+ + + + + +
{menu_description} + + + + + + + + {menu_description} + + + + + + + + {lang_activate} + + + + +   + + + diff --git a/emailadmin/templates/default/smtprouting.tpl b/emailadmin/templates/default/smtprouting.tpl new file mode 100644 index 0000000000..a2c56ac857 --- /dev/null +++ b/emailadmin/templates/default/smtprouting.tpl @@ -0,0 +1,112 @@ + +
+ + + + + +
+ + {menu_rows} + + + + {activation_rows} + + + +
+   +
+ {lang_done} +
+
+ + + + +
+
+ + + + + + + + {smtproute_rows} + + + + + + +
+ {lang_domain_name} + + {lang_remote_server} + + {lang_remote_port} + + {lang_delete} +
+ + + + + + + + +
+
+
+
+
+ + + + + +
{menu_description} + + + + + + + + {menu_description} + + + + + + + + {lang_activate} + + + + +   + + + + + + + + {domain_name} + + + {remote_server} + + + {remote_port} + + + {lang_delete} + + + diff --git a/emailadmin/templates/jerryr/images/navbar-over.png b/emailadmin/templates/jerryr/images/navbar-over.png new file mode 100644 index 0000000000000000000000000000000000000000..2c2183563581f64d81a86acdab90d5d55f2812c9 GIT binary patch literal 2051 zcmV+e2>kbnP)t-6Qx$8qNr(_s!E%LR&kZ8 z5=|6HAEHRTsCj53^`Sge0-+K@s}M*{2;$OEO1UKz<4eJqt!?mLyzBMu?C$K&?wmfX zcYPs18YNO6I?_n{ojr5@zwbZa`DO42gmeOYP1``JD)kg z!GotssboAP2;$3vz}lLc{9eD`EmBIrIiRW<0s)UWG7{c?CxB0N3l1MX6Ci~B2*8sb zkHg;B=y#jVGB^h~=ir<}*LA3>4nhddo*hb#k0;uKub%lBNj{l7{H7FwF9S4eYlu0wvBUi*VH&2wY4=i zNfPH}%Q=T(%*L6F23_aXH8|%ua^%BXiA1Jh$Br%ho(^2Na9K7Ce2WnJ6IqsO>*~Bd zyWL7E*)7bLb5!F}$$+L6z?e9jB_U{NsPQBc>Sh4%-x1)_r7J5b6anjra&^OLJ&j{LgsrF<657J#F16u3g0Stp5 zV2pJVLZItK7>0q_BAc~vA<+DBAQFxubbdc1Erit%cEjolfKZA;Hi@zRGdQ<*2Ra^m zi3kFFW-b8L_2SN0EIvsog(wP;BoVn>9;uXysi_oHH3wZUeyniWevW)z$H2KG&?in| z@tQBAq-T(fT*cJH5VF$|)C8BHrOAx*fBGf-KE=Cj+aDjOI30P|!gsgCq%%Bx%N_GE8_Pf_UG4+_$726aP9rullp8Da1m< zphW{lPQl_uE@gB~eFeZ*tGghdFZ?_lp6qIFu6I`oth@k+$s|Kjr0Vv{WO7I*&Rv`sA>*o6N5=0NJoZet`tGJ z1+C4?v8r6gn-d<77fr!B*exc&FaQ()nV~31;2h}aXe7su_5W}l zKt8YkZfq>_tjFW5n=4u=K0*itfzBBx)k3VTtHXvTwgba^(b&=o#!E9jeij^zBC1WI z(dCDtNLaMU?|bgKKdhq_fK8h^Bl&z`SkpAjZ@B=a1d_zS7y+ep<|Lq$fH4ZjDE!UK zkz!3KK?Jb}0c!xT)C1NAa9a@L<6)@IRq*&~!5G1c6#=u&ru=kX=XvU>XTzMM+vTz= zbL|&J0hAIDGJBR|RAWIDVfHOU@4>&J&S!$;Y5+C6p&JyVBctd&U%*3KzJtNRDBr*T zT;k%z(BBh@?9b*s4UZl@M@3NxZP>7~5g;%O4oV3`k=^rgT`1@{`N37#Jx!>y#gUJX zVBnuOu%!JySOaaiaxKq~{^e+tG3mFes{elH&hI4vfX-cH^X7F%v1sg%Mw3Rxe#So8 zJ4+}OLr!$Rd}YC_4k5ku3LY_Xa4HO1LtRfG-e0N(H9Vz^z*vh6ZjT5-lK^2GSW|#TVMvws&+rIrrMz0J^(3 zjH#+Nn#&ackWU0KFc5-l@jwtL3OZ0M0XN4JNKI!D4kuA80lE&@9ah@ewf@@3^N-}YZFm&b(*!}_jWC!>cBUD(yv7usmD$VWXcMX)G=lm4A?Ay+W}Zj z1}W+}FQAaSz7=P)`PcjVN1vFSOqs7;n@DJyen3^V*L!*%y*_u|;9zg*aIfzdl<2~S zja}>O>YPqlmZdGyjd!+geYkk{ijZx=V8_z6YuBxAXsBImv6x+oBG61mGm^>a`1R}mzW&iiXD-F# hBUb^W|7Sj6{{t9+t8k5SKfV9}002ovPDHLkV1je!*De46 literal 0 HcmV?d00001 diff --git a/emailadmin/templates/jerryr/images/navbar.png b/emailadmin/templates/jerryr/images/navbar.png new file mode 100644 index 0000000000000000000000000000000000000000..ed3f908018708567cdf0f883f38f1b5e49aaead1 GIT binary patch literal 1110 zcmV-c1gZOpP)kdg00002VoOIv0RM-N z%)bBt010qNS#tmY3ljhU3ljkVnw%H_000McNliru)(i;=1rjk-Nt*xw1LsLZK~zY` z)s5=ovV1Xq%gZEr;G>ENPf zKCAZWq2`8K6+lwDrx8G?X7+XZ{?)HBH_EUHE&xxlgWhaMf z=Ab-e_xb&>&98o5iA%}|qowRyp z4{;PgGl$fjf;=X+vedPpC|AkRg%?4FaR%8dw4M?`$$uK3RnW1KVUc;3$d~oqWSO6d zv7J0IqAU_1$S`&O{wDym_W98p*(L*l13M-e7RaGs!-fqB++vKa{BHe$6gM%s&HYB? z2+x29%kRfJ?yD`S3LF>|Std;qiH=H?3=tH-WF8m0XyFDvoE?Wf14#usE+!VtvYrd< zcxj;#2RRIM;>3tCONc#eB8x(n?Ot0iC;;Y(xnkwi(NJ+vOOPPd)U%mR_R)m_=m;d+ zg#Id}$@S7$=0Jn{jt7B;K(Q_tjX2pw6E1XY*fE&mAw1l&1uiH6U9siKEGr%qY^W$! zRZ$5d02fZ2RN-WrD*Pz4Io)qrGw486c6*J|yN-fDSo#8ij-PMwQ-gs?n4fr#3Hfzm z>Zh7apj1M>SjM7FUlk&`r`f>V`V+m^z;c2t*W!#ilgHloc zq(B`8K9ba<@t|l8|9J9P0#*T#{U|(h_bsZ(IGaebM3iyjERm+Y^O60fud9H)H<$j( z-WBjGRcPcX5@C@TMGDj?9WQ$7%K)(aVK`NpKFv3&Gf{s*$BvCzOctTK>e$>Eoka&huW)z(65}MjRajgL+rTPDB}CU!ibnR)QqL*~P)@S6)s8 zdk=mwR&=