Marius Cramer
2014-10-11 b98be2e5bcd1abfb98a544fdad66696007925b38
Merge branch 'master' into 'master'

Outgoing email copy

added ability to have outgoing email cc'd to another email address

See merge request !127
8 files modified
1 files added
47 ■■■■■ changed files
install/lib/installer_base.lib.php 3 ●●●●● patch | view | raw | blame | history
install/sql/ispconfig3.sql 1 ●●●● patch | view | raw | blame | history
install/tpl/debian_postfix.conf.master 3 ●●●● patch | view | raw | blame | history
install/tpl/fedora_postfix.conf.master 3 ●●●● patch | view | raw | blame | history
install/tpl/mysql-virtual_outgoing_bcc.cf 8 ●●●●● patch | view | raw | blame | history
install/tpl/opensuse_postfix.conf.master 3 ●●●● patch | view | raw | blame | history
interface/web/mail/form/mail_user.tform.php 19 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/en_mail_user.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/mail/templates/mail_user_mailbox_edit.htm 4 ●●●● patch | view | raw | blame | history
install/lib/installer_base.lib.php
@@ -682,6 +682,9 @@
        //* mysql-virtual_relayrecipientmaps.cf
        $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf');
        //* mysql-virtual_outgoing_bcc.cf
        $this->process_postfix_config('mysql-virtual_outgoing_bcc.cf');
        //* postfix-dkim
        $full_file_name=$config_dir.'/tag_as_originating.re';
install/sql/ispconfig3.sql
@@ -903,6 +903,7 @@
  `maildir` varchar(255) NOT NULL default '',
  `quota` bigint(20) NOT NULL default '-1',
  `cc` varchar(255) NOT NULL default '',
  `sender_cc` varchar(255) NOT NULL default '',
  `homedir` varchar(255) NOT NULL default '',
  `autoresponder` enum('n','y') NOT NULL default 'n',
  `autoresponder_start_date` datetime NOT NULL default '0000-00-00 00:00:00',
install/tpl/debian_postfix.conf.master
@@ -7,6 +7,7 @@
virtual_mailbox_base = {vmail_mailbox_base}
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uids.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gids.cf
sender_bcc_maps = proxy:mysql:{config_dir}/mysql-virtual_outgoing_bcc.cf
inet_protocols=all
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
@@ -19,7 +20,7 @@
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf
relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
smtpd_client_message_rate_limit = 100
install/tpl/fedora_postfix.conf.master
@@ -5,6 +5,7 @@
virtual_mailbox_base = {vmail_mailbox_base}
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uids.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gids.cf
sender_bcc_maps = proxy:mysql:{config_dir}/mysql-virtual_outgoing_bcc.cf
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
@@ -16,7 +17,7 @@
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf
relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
smtpd_client_message_rate_limit = 100
install/tpl/mysql-virtual_outgoing_bcc.cf
New file
@@ -0,0 +1,8 @@
user = {mysql_server_ispconfig_user}
password = {mysql_server_ispconfig_password}
dbname = {mysql_server_database}
table = mail_user
select_field = sender_cc
where_field = email
additional_conditions = and postfix = 'y' and disabledeliver = 'n' and disables$
hosts = 127.0.0.1
install/tpl/opensuse_postfix.conf.master
@@ -5,6 +5,7 @@
virtual_mailbox_base = {vmail_mailbox_base}
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uids.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gids.cf
sender_bcc_maps = proxy:mysql:{config_dir}/mysql-virtual_outgoing_bcc.cf
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
@@ -16,7 +17,7 @@
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf
relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
smtpd_client_message_rate_limit = 100
interface/web/mail/form/mail_user.tform.php
@@ -176,6 +176,25 @@
            'width'  => '30',
            'maxlength' => '255'
        ),
        'sender_cc' => array (
            'datatype' => 'VARCHAR',
            'formtype' => 'TEXT',
            'filters'   => array( 0 => array( 'event' => 'SAVE',
                    'type' => 'IDNTOASCII'),
                1 => array( 'event' => 'SHOW',
                    'type' => 'IDNTOUTF8'),
                2 => array( 'event' => 'SAVE',
                    'type' => 'TOLOWER')
            ),
            'validators' => array (  0 => array ( 'type' => 'REGEX',
                    'regex'=>'/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,}$/i',
                    'errmsg'=> 'sender_cc_error_isemail'),
            ),
            'default' => '',
            'value'  => '',
            'width'  => '30',
            'maxlength' => '255'
        ),
        'maildir' => array (
            'datatype' => 'VARCHAR',
            'formtype' => 'TEXT',
interface/web/mail/lib/lang/en_mail_user.lng
@@ -37,7 +37,9 @@
$wb["name_optional_txt"] = '(Optional)';
$wb['autoresponder_active'] = 'Enable the autoresponder';
$wb['cc_txt'] = 'Send copy to';
$wb['sender_cc_txt'] = 'Send outgoing copy to';
$wb['cc_error_isemail'] = 'The -Send copy to- field does not contain a valid email address';
$wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
$wb['domain_txt'] = 'Domain';
$wb['now_txt']='Now';
$wb['login_error_unique'] = 'Login is already taken.';
@@ -56,4 +58,5 @@
$wb['monthly_backup_txt'] = 'Monthly';
$wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.';
$wb['cc_note_txt'] = '(Separate multiple email addresses with commas)';
$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
?>
interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -45,6 +45,10 @@
                <input name="cc" id="cc" value="{tmpl_var name='cc'}" size="30" maxlength="255" type="text" class="textInput" /> &nbsp; {tmpl_var name='name_optional_txt'} {tmpl_var name='cc_note_txt'}
            </div>
            <div class="ctrlHolder">
                <label for="sender_name">{tmpl_var name='sender_cc_txt'}</label>
                <input name="sender_cc" id="sender_cc" value="{tmpl_var name='sender_cc'}" size="30" maxlength="255" type="text" class="textInput" /> &nbsp; {tmpl_var name='name_optional_txt'} {tmpl_var name='sender_cc_note_txt'}
            </div>
            <div class="ctrlHolder">
                <label for="policy">{tmpl_var name='policy_txt'}</label>
                <select name="policy" id="policy" class="selectInput">
                    {tmpl_var name='policy'}