mirror of
https://github.com/webmin/webmin.git
synced 2026-02-08 08:19:57 +00:00
71 lines
1.7 KiB
Perl
Executable File
71 lines
1.7 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Save mail server settings
|
|
|
|
require './webmin-lib.pl';
|
|
&ReadParse();
|
|
&error_setup($text{'sendmail_err'});
|
|
&foreign_require("mailboxes");
|
|
&lock_file($mailboxes::module_config_file);
|
|
%mconfig = &foreign_config("mailboxes");
|
|
|
|
# Save smtp server
|
|
if ($in{'mode'} == 0) {
|
|
delete($mconfig{'send_mode'});
|
|
}
|
|
elsif ($in{'mode'} == 1) {
|
|
$mconfig{'send_mode'} = '127.0.0.1';
|
|
delete($mconfig{'smtp_port'});
|
|
$mconfig{'smtp_ssl'} = 0;
|
|
}
|
|
else {
|
|
&to_ipaddress($in{'smtp'}) || &to_ip6address($in{'smtp'}) ||
|
|
&error($text{'sendmail_esmtp'});
|
|
$mconfig{'send_mode'} = $in{'smtp'};
|
|
if ($in{'port_def'}) {
|
|
delete($mconfig{'smtp_port'});
|
|
}
|
|
else {
|
|
$in{'port'} =~ /^\d+$/ || &error($text{'sendmail_eport'});
|
|
$mconfig{'smtp_port'} = $in{'port'};
|
|
}
|
|
$mconfig{'smtp_ssl'} = $in{'ssl'};
|
|
}
|
|
|
|
# Save login and password
|
|
if ($in{'login_def'}) {
|
|
delete($mconfig{'smtp_user'});
|
|
delete($mconfig{'smtp_pass'});
|
|
}
|
|
else {
|
|
$in{'login_user'} =~ /^\S+$/ || &error($text{'sendmail_elogin'});
|
|
eval "use Authen::SASL";
|
|
if ($@) {
|
|
# Perl module missing
|
|
&error(&text('sendmail_esasl',
|
|
"/cpan/download.cgi?source=3&cpan=Authen::SASL&".
|
|
"mode=2&return=/$module_name/&returndesc=".
|
|
&urlize($text{'index_return'}),
|
|
"Authen::SASL"));
|
|
}
|
|
$mconfig{'smtp_user'} = $in{'login_user'};
|
|
$mconfig{'smtp_pass'} = $in{'login_pass'};
|
|
}
|
|
|
|
# Save auth method
|
|
$mconfig{'smtp_auth'} = $in{'auth'};
|
|
|
|
# Save from address
|
|
if ($in{'from_def'}) {
|
|
delete($mconfig{'webmin_from'});
|
|
}
|
|
else {
|
|
$in{'from'} =~ /^\S+$/ || &error($text{'sendmail_efrom'});
|
|
$mconfig{'webmin_from'} = $in{'from'};
|
|
}
|
|
|
|
&save_module_config(\%mconfig, "mailboxes");
|
|
&unlock_file($mailboxes::module_config_file);
|
|
&webmin_log("sendmail");
|
|
&redirect("edit_sendmail.cgi");
|
|
|