[pmg-devel] [PATCH] Close #2438: api: add lmtp support
Julian Zehnter
pmg-devel at j-z.it
Mon Dec 9 21:42:31 CET 2019
Signed-off-by: Julian Zehnter <pmg-devel at j-z.it>
---
src/PMG/API2/Transport.pm | 21 ++++++++++++++++++---
src/PMG/Config.pm | 9 ++++++++-
src/templates/main.cf.in | 4 ++--
src/templates/main.cf.in.demo | 4 ++--
4 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/src/PMG/API2/Transport.pm b/src/PMG/API2/Transport.pm
index 98ab414..36b2720 100644
--- a/src/PMG/API2/Transport.pm
+++ b/src/PMG/API2/Transport.pm
@@ -33,6 +33,7 @@ __PACKAGE__->register_method ({
properties => {
domain => { type => 'string' },
host => { type => 'string' },
+ protocol => { type => 'string' },
port => { type => 'integer' },
use_mx => { type => 'boolean' },
comment => { type => 'string'},
@@ -73,8 +74,14 @@ __PACKAGE__->register_method ({
description => "Target host (name or IP address).",
type => 'string', format => 'address',
},
+ protocol => {
+ description => "Transport protocol.",
+ type => 'string',
+ default => 'smtp',
+ optional => 1,
+ },
port => {
- description => "SMTP port.",
+ description => "Transport port.",
type => 'integer',
minimum => 1,
maximum => 65535,
@@ -108,6 +115,7 @@ __PACKAGE__->register_method ({
$tmap->{$param->{domain}} = {
domain => $param->{domain},
host => $param->{host},
+ protocol => $param->{protocol} // smtp,
port => $param->{port} // 25,
use_mx => $param->{use_mx} // 1,
comment => $param->{comment} // '',
@@ -144,6 +152,7 @@ __PACKAGE__->register_method ({
properties => {
domain => { type => 'string'},
host => { type => 'string'},
+ protocol => { type => 'string'},
port => { type => 'integer'},
use_mx => { type => 'boolean'},
comment => { type => 'string'},
@@ -181,8 +190,14 @@ __PACKAGE__->register_method ({
type => 'string', format => 'address',
optional => 1,
},
+ protocol => {
+ description => "Transport protocol.",
+ type => 'string',
+ default => 'smtp',
+ optional => 1,
+ },
port => {
- description => "SMTP port.",
+ description => "Transport port.",
type => 'integer',
minimum => 1,
maximum => 65535,
@@ -216,7 +231,7 @@ __PACKAGE__->register_method ({
die "no options specified\n" if !scalar(keys %$param);
- for my $prop (qw(host port use_mx comment)) {
+ for my $prop (qw(host protocol port use_mx comment)) {
$data->{$prop} = $param->{$prop} if defined($param->{$prop});
}
diff --git a/src/PMG/Config.pm b/src/PMG/Config.pm
index 6e0a37c..7f3c2bd 100755
--- a/src/PMG/Config.pm
+++ b/src/PMG/Config.pm
@@ -480,8 +480,14 @@ sub properties {
description => "The default mail delivery transport (incoming mails).",
type => 'string', format => 'address',
},
+ replayprotocol => {
+ description => "Transport protocol for relay host.",
+ type => 'string',
+ enum => [qw(smtp lmtp)],
+ default => 'smtp',
+ },
relayport => {
- description => "SMTP port number for relay host.",
+ description => "Transport port number for relay host.",
type => 'integer',
minimum => 1,
maximum => 65535,
@@ -647,6 +653,7 @@ sub options {
smarthost => { optional => 1 },
smarthostport => { optional => 1 },
relay => { optional => 1 },
+ replayprotocol => { optional => 1 },
relayport => { optional => 1 },
relaynomx => { optional => 1 },
dwarning => { optional => 1 },
diff --git a/src/templates/main.cf.in b/src/templates/main.cf.in
index 7bf9afa..2bad66a 100644
--- a/src/templates/main.cf.in
+++ b/src/templates/main.cf.in
@@ -35,9 +35,9 @@ transport_maps = hash:/etc/pmg/transport
[% IF pmg.mail.relay %]
[% IF pmg.mail.relaynomx %]
-relay_transport = smtp:[[% pmg.mail.relay %]]:[% pmg.mail.relayport %]
+relay_transport = [% pmg.mail.protocol %]:[[% pmg.mail.relay %]]:[% pmg.mail.relayport %]
[% ELSE %]
-relay_transport = smtp:[% pmg.mail.relay %]:[% pmg.mail.relayport %]
+relay_transport = [% pmg.mail.protocol %]:[% pmg.mail.relay %]:[% pmg.mail.relayport %]
[% END %]
[% END %]
diff --git a/src/templates/main.cf.in.demo b/src/templates/main.cf.in.demo
index 2c346ec..2c47785 100644
--- a/src/templates/main.cf.in.demo
+++ b/src/templates/main.cf.in.demo
@@ -35,9 +35,9 @@ transport_maps = hash:/etc/pmg/transport
[% IF pmg.mail.relay %]
[% IF pmg.mail.relaynomx %]
-relay_transport = smtp:[[% pmg.mail.relay %]]:[% pmg.mail.relayport %]
+relay_transport = [% pmg.mail.protocol %]:[[% pmg.mail.relay %]]:[% pmg.mail.relayport %]
[% ELSE %]
-relay_transport = smtp:[% pmg.mail.relay %]:[% pmg.mail.relayport %]
+relay_transport = [% pmg.mail.protocol %]:[% pmg.mail.relay %]:[% pmg.mail.relayport %]
[% END %]
[% END %]
--
2.23.0.windows.1
More information about the pmg-devel
mailing list