BCC mapping page
This commit is contained in:
parent
4e133f79ba
commit
a55ba7798d
@ -48,3 +48,5 @@ Maps in MySQL and LDAP databases can be viewed and edited in the same way that t
|
|||||||
Fixed a bug that prevented comments and manual map editing, and added back support for PCRE and BTREE maps.
|
Fixed a bug that prevented comments and manual map editing, and added back support for PCRE and BTREE maps.
|
||||||
Added a button for manually editing the aliases file.
|
Added a button for manually editing the aliases file.
|
||||||
Added more SMTP relaying restrictions.
|
Added more SMTP relaying restrictions.
|
||||||
|
---- Changes since 1.390 ----
|
||||||
|
Outgoing email from selected addresses and domains can now be BCCd automatically using the new BCC Mapping page.
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
require 'postfix-lib.pl';
|
require 'postfix-lib.pl';
|
||||||
@acl_pages = ("resource", "address_rewriting", "aliases", "general",
|
@acl_pages = ("resource", "address_rewriting", "aliases", "general",
|
||||||
"canonical", "virtual", "transport", "relocated", "header","body",
|
"canonical", "virtual", "transport", "relocated", "header","body",
|
||||||
|
"bcc",
|
||||||
"local_delivery", "smtpd", "sasl","smtp", "rate", "debug", "ldap",
|
"local_delivery", "smtpd", "sasl","smtp", "rate", "debug", "ldap",
|
||||||
"master", "startstop", "mailq", "postfinger", "manual");
|
"master", "startstop", "mailq", "postfinger", "manual");
|
||||||
|
|
||||||
|
38
postfix/bcc.cgi
Executable file
38
postfix/bcc.cgi
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
require './postfix-lib.pl';
|
||||||
|
|
||||||
|
$access{'bcc'} || &error($text{'bcc_ecannot'});
|
||||||
|
&ui_print_header(undef, $text{'bcc_title'}, "", "bcc");
|
||||||
|
|
||||||
|
|
||||||
|
# alias general options
|
||||||
|
|
||||||
|
print "<form action=save_opts_bcc.cgi>\n";
|
||||||
|
print "<table border width=100%>\n";
|
||||||
|
print "<tr $tb> <td><b>$text{'bcc_title'}</b></td></tr>\n";
|
||||||
|
print "<tr $cb> <td><table width=100%>\n";
|
||||||
|
|
||||||
|
$none = $text{'opts_none'};
|
||||||
|
|
||||||
|
print "<tr>\n";
|
||||||
|
&option_mapfield("sender_bcc_maps", 60, $none);
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
print "</table></td></tr></table><p>\n";
|
||||||
|
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
|
||||||
|
print "<hr>\n";
|
||||||
|
print "<br>\n";
|
||||||
|
|
||||||
|
|
||||||
|
if (&get_current_value("sender_bcc_maps") eq "")
|
||||||
|
{
|
||||||
|
print ($text{'no_map'}."<br><br>");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
&generate_map_edit("sender_bcc_maps", $text{'map_click'}." ".
|
||||||
|
"<font size=\"-1\">".&hlink("$text{'help_map_format'}", "virtual")."</font>\n<br>\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
&ui_print_footer("", $text{'index_return'});
|
@ -28,3 +28,4 @@ master=1
|
|||||||
manual=1
|
manual=1
|
||||||
dir=/
|
dir=/
|
||||||
sasl=1
|
sasl=1
|
||||||
|
bcc=1
|
||||||
|
13
postfix/help/bcc.html
Normal file
13
postfix/help/bcc.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<header>BCC Mapping</header>
|
||||||
|
|
||||||
|
This table allows you to have outgoing email sent via your Postfix server
|
||||||
|
automatically BCCd to another email address. Typically this is used to logging
|
||||||
|
to contents of all outgoing messages, or for bandwidth accounting. <p>
|
||||||
|
|
||||||
|
Each entry in the map has a sender's email address on the left-hand side, and
|
||||||
|
an address to BCC to on the right. Alternately, the left-hand part can be a
|
||||||
|
domain name prefixed by <tt>@</tt>, such as <tt>@example.com</tt>, which will
|
||||||
|
match all sender addresses in that domain. <p>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
|
BIN
postfix/images/bcc.gif
Executable file
BIN
postfix/images/bcc.gif
Executable file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
@ -94,7 +94,7 @@ if ($config{'index_check'} && ($err = &check_postfix())) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@onames = ( "general", "address_rewriting", "aliases", "canonical", "virtual", "transport", "relocated", "header", "body",
|
@onames = ( "general", "address_rewriting", "aliases", "canonical", "virtual", "transport", "relocated", "header", "body", "bcc",
|
||||||
"local_delivery", "resource",
|
"local_delivery", "resource",
|
||||||
"smtpd", "smtp", "sasl",
|
"smtpd", "smtp", "sasl",
|
||||||
"rate", "debug", $postfix_version > 2 ? ( ) : ( "ldap" ),
|
"rate", "debug", $postfix_version > 2 ? ( ) : ( "ldap" ),
|
||||||
|
@ -433,6 +433,7 @@ acl_boxes=Can read users' email?
|
|||||||
acl_postfinger=Can check postfix configuration?
|
acl_postfinger=Can check postfix configuration?
|
||||||
acl_manual=Can edit config file?
|
acl_manual=Can edit config file?
|
||||||
acl_dir=Allowed directory for map files
|
acl_dir=Allowed directory for map files
|
||||||
|
acl_bcc=Can edit BCC mapping?
|
||||||
|
|
||||||
boxes_title=User Mailboxes
|
boxes_title=User Mailboxes
|
||||||
boxes_user=User
|
boxes_user=User
|
||||||
@ -694,7 +695,8 @@ log_misc=Changed general options
|
|||||||
log_opts=Changed address rewriting and masquerading
|
log_opts=Changed address rewriting and masquerading
|
||||||
log_aliases=Changed aliases options
|
log_aliases=Changed aliases options
|
||||||
log_canonical=Changing canonical mapping options
|
log_canonical=Changing canonical mapping options
|
||||||
log_virtual=Change virtual domain options
|
log_virtual=Changed virtual domain options
|
||||||
|
log_bcc=Changed BCC map options
|
||||||
log_transport=Changed transport mapping options
|
log_transport=Changed transport mapping options
|
||||||
log_relocated=Changed relocate mapping options
|
log_relocated=Changed relocate mapping options
|
||||||
log_header=Changed header check options
|
log_header=Changed header check options
|
||||||
@ -859,3 +861,7 @@ ldap_edelete=LDAP delete of $1 failed : $2
|
|||||||
ldap_equery=LDAP search of $1 failed : $2
|
ldap_equery=LDAP search of $1 failed : $2
|
||||||
ldap_erename=LDAP rename of $1 to $2 failed : $3
|
ldap_erename=LDAP rename of $1 to $2 failed : $3
|
||||||
ldap_emodify=LDAP modify of $1 failed : $2
|
ldap_emodify=LDAP modify of $1 failed : $2
|
||||||
|
|
||||||
|
bcc_title=BCC Mapping
|
||||||
|
bcc_ecannot=You are not allowed to edit BCC mappings
|
||||||
|
opts_sender_bcc_maps=BCC mapping lookup tables
|
||||||
|
@ -16,8 +16,8 @@ print &ui_hidden("mapname", $in{'mapname'});
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
foreach $tv (@maps) {
|
foreach $tv (@maps) {
|
||||||
print &ui_hidden_table_start(&text('chooser_header', $i+1),
|
print &ui_hidden_table_start(&text('chooser_header', $i+1),
|
||||||
"width=100%", 2, "section$i", $tv->[0],
|
"width=100%", 2, "section$i",
|
||||||
[ "width=30%" ]);
|
$tv->[0] || $i == 0, [ "width=30%" ]);
|
||||||
|
|
||||||
# Work out type
|
# Work out type
|
||||||
$t = $tv->[0] eq "" ? "" :
|
$t = $tv->[0] eq "" ? "" :
|
||||||
|
@ -628,6 +628,12 @@ sub regenerate_virtual_table
|
|||||||
®enerate_any_table($virtual_maps);
|
®enerate_any_table($virtual_maps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# regenerate_bcc_table()
|
||||||
|
sub regenerate_bcc_table
|
||||||
|
{
|
||||||
|
®enerate_any_table("sender_bcc_maps");
|
||||||
|
}
|
||||||
|
|
||||||
# regenerate_header_table()
|
# regenerate_header_table()
|
||||||
sub regenerate_header_table
|
sub regenerate_header_table
|
||||||
{
|
{
|
||||||
@ -1581,6 +1587,7 @@ elsif ($map_name =~ /virtual/) { &redirect("virtual.cgi"); }
|
|||||||
elsif ($map_name =~ /relocated/) { &redirect("relocated.cgi"); }
|
elsif ($map_name =~ /relocated/) { &redirect("relocated.cgi"); }
|
||||||
elsif ($map_name =~ /header/) { &redirect("header.cgi"); }
|
elsif ($map_name =~ /header/) { &redirect("header.cgi"); }
|
||||||
elsif ($map_name =~ /body/) { &redirect("body.cgi"); }
|
elsif ($map_name =~ /body/) { &redirect("body.cgi"); }
|
||||||
|
elsif ($map_name =~ /sender_bcc/) { &redirect("bcc.cgi"); }
|
||||||
elsif ($map_name =~ /sender_access/) { &redirect("edit_access.cgi?name=smtpd_client_restrictions:check_sender_access&title=Check+sender+access+mapping+table"); }
|
elsif ($map_name =~ /sender_access/) { &redirect("edit_access.cgi?name=smtpd_client_restrictions:check_sender_access&title=Check+sender+access+mapping+table"); }
|
||||||
else { &redirect(""); }
|
else { &redirect(""); }
|
||||||
}
|
}
|
||||||
@ -1593,6 +1600,7 @@ if ($map_name =~ /relocated/) { ®enerate_relocated_table(); }
|
|||||||
if ($map_name =~ /virtual/) { ®enerate_virtual_table(); }
|
if ($map_name =~ /virtual/) { ®enerate_virtual_table(); }
|
||||||
if ($map_name =~ /transport/) { ®enerate_transport_table(); }
|
if ($map_name =~ /transport/) { ®enerate_transport_table(); }
|
||||||
if ($map_name =~ /sender_access/) { ®enerate_any_table($map_name); }
|
if ($map_name =~ /sender_access/) { ®enerate_any_table($map_name); }
|
||||||
|
if ($map_name =~ /sender_bcc/) { ®enerate_bcc_table(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
# mailq_table(&qfiles)
|
# mailq_table(&qfiles)
|
||||||
|
28
postfix/save_opts_bcc.cgi
Executable file
28
postfix/save_opts_bcc.cgi
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
require './postfix-lib.pl';
|
||||||
|
|
||||||
|
&ReadParse();
|
||||||
|
|
||||||
|
$access{'bcc'} || &error($text{'bcc_ecannot'});
|
||||||
|
|
||||||
|
&error_setup($text{'opts_err'});
|
||||||
|
|
||||||
|
|
||||||
|
&lock_postfix_files();
|
||||||
|
&before_save();
|
||||||
|
&save_options(\%in);
|
||||||
|
&ensure_map("sender_bcc_maps");
|
||||||
|
&after_save();
|
||||||
|
&unlock_postfix_files();
|
||||||
|
|
||||||
|
|
||||||
|
®enerate_bcc_table();
|
||||||
|
|
||||||
|
&reload_postfix();
|
||||||
|
|
||||||
|
&webmin_log("bcc");
|
||||||
|
&redirect("");
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user