diff options
5 files changed, 689 insertions, 0 deletions
diff --git a/applications/luci-app-email/Makefile b/applications/luci-app-email/Makefile new file mode 100644 index 0000000000..c9060bc23a --- /dev/null +++ b/applications/luci-app-email/Makefile @@ -0,0 +1,12 @@ +# See /LICENSE for more information. +# This is free software, licensed under the Apache License, Version 2.0 . +# +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI app for email server configuration (EmailRelay) +LUCI_DEPENDS:=+luci-base +emailrelay +PKG_MAINTAINER:=Sergey Ponomarev <stokito@gmail.com> + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js b/applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js new file mode 100644 index 0000000000..71e98e61ad --- /dev/null +++ b/applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js @@ -0,0 +1,293 @@ +'use strict'; +'require view'; +'require form'; + +return view.extend({ + render: function () { + var docsRefAttrs = 'target="_blank" rel="noreferrer" href="https://emailrelay.sourceforge.net/'; + var m, s, o; + + m = new form.Map('emailrelay', _('Email Server Configuration'), + _('E-MailRelay Server Configuration.') + '<br />' + + _('For further information <a %s>check the documentation</a>') + .format('href="https://openwrt.org/docs/guide-user/services/email/emailrelay" target="_blank" rel="noreferrer"') + ); + + s = m.section(form.GridSection, 'emailrelay', _('Instance config')); + s.anonymous = false; + s.addremove = true; + s.nodescriptions = true; + + + o = s.tab('smtp_server', _('SMTP Server')); + o = s.tab('smtp_client', _('SMTP Client')); + o = s.tab('pop_server', _('POP3')); + o = s.tab('advanced', _('Advanced Settings')); + + o = s.taboption('smtp_server', form.Flag, 'enabled', _('Enabled')); + o.rmempty = false; + + o = s.taboption('smtp_server', form.ListValue, 'mode', _('Mode'), + _('See <a %s>Running E-MailRelay</a>') + .format(docsRefAttrs + '#userguide_md_Running_E_MailRelay"') + ); + o.value('server', _('Server: receive incoming mail')); + o.value('proxy', _('Proxy: submission outgoing mail, store and forward to smarthost SMTP server')); + o.value('cmdline', _('Manual command line options (deprecated)')); + o.default = 'server'; + o.rmempty = false; + + o = s.taboption('smtp_server', form.Value, 'port', _('SMTP Port'), + _('SMTP Port to listen for incoming emails.') + '<br />' + + _('Incoming mail by default received on <em>25</em> port.') + '<br />' + + _('Outcoming mail by usually received on <em>587</em> or <em>465</em> (TLS only) ' + + 'but the <em>25</em> is also used often.') + ); + o.datatype = 'port'; + o.default = '25'; + + o = s.taboption('smtp_server', form.Flag, 'remote_clients', _('Allow remote clients'), + _('Allow connections from the public internet.') + '<br />' + + _('<b>You may receive spam so be careful</b>.') + '<br />' + + _('Enable ports in firewall.') + '<br />' + + _('See <a %s>--remote-clients</a>') + .format(docsRefAttrs + '#__remote_clients"') + ); + o.modalonly = true; + o.default = '0'; + + o = s.taboption('smtp_server', form.Flag, 'anonymous', _('Anonymous'), + _('Reduce the amount of information leaked to remote clients.') + '<br />' + + _('See <a %s>--anonymous</a>') + .format(docsRefAttrs + '#__anonymous"') + ); + o.modalonly = true; + o.default = '0'; + + o = s.taboption('smtp_server', form.Value, 'domain', _('Domain'), + _('Specifies the server\'s domain name that is used in SMTP EHLO.') + '<br />' + + _('By default, the local hostname is used.') + '<br />' + + _('See <a %s>--domain</a>') + .format(docsRefAttrs + '#__domain"') + ); + o.datatype = 'hostname'; + o.optional = true; + o.rmempty = false; + o.depends('anonymous', '0'); + + o = s.taboption('smtp_server', form.FileUpload, 'server_auth', _('Auth file'), + _('Server/proxy authorization file.') + '<br />' + + _('See <a %s>Authentication</a>') + .format(docsRefAttrs + '#reference_md_Authentication"') + ); + o.datatype = 'file'; + o.root_directory = '/'; + o.default = '/etc/emailrelay.auth'; + o.optional = true; + o.rmempty = true; + o.modalonly = true; + + o = s.taboption('smtp_server', form.Flag, 'server_tls', _('Enable TLS for server'), + _('Use TLS encryption for SMTP and POP connections.') + '<br />' + + _('Configure <a %s>acme.sh to issue a TLS cert</a>.') + .format('href="https://openwrt.org/docs/guide-user/services/tls/acmesh" target="_blank" rel="noreferrer"') + '<br />' + + _('See <a %s>TLS encryption</a>') + .format(docsRefAttrs + '#reference_md_TLS_encryption"') + ); + o.default = '0'; + o.optional = true; + o.rmempty = true; + o.modalonly = true; + + o = s.taboption('smtp_server', form.FileUpload, 'server_tls_key', _('TLS private key'), + _('Path to TLS private key.') + '<br />' + + _('E.g. ') + '<code>/etc/ssl/acme/example.com.key</code>' + ); + o.datatype = 'file'; + o.root_directory = '/'; + o.optional = true; + o.rmempty = true; + o.modalonly = true; + o.depends('server_tls', '1'); + + o = s.taboption('smtp_server', form.FileUpload, 'server_tls_certificate', _('TLS certificate'), + _('Path to TLS cert.') + '<br />' + + _('E.g. ') + '<code>/etc/ssl/acme/example.com.fullchain.crt</code>' + ); + o.datatype = 'file'; + o.root_directory = '/'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('server_tls', '1'); + + o = s.taboption('smtp_server', form.Value, 'server_tls_verify', _('CA certificate'), + _('Verify an SMTP and POP client\'s certificates ' + + 'against trusted CA certificates in the specified file or directory.') + '<br />' + + _('In many use cases this should be your self-signed root certificate.') + '<br />' + + _('Use <code><default></code> to use the system trusted CAs.') + ); + o.datatype = 'or(file, directory, "<default>")'; + o.default = '<default>'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('server_tls', '1'); + + o = s.taboption('smtp_server', form.Value, 'spool_dir', _('Mail storage directory'), + _('The directory used for holding received mail messages.') + '<br />' + + _('<b>Note:</b> The <code>/var/</code> is a small in-memory folder and you\'ll lose mail in reboot.') + '<br />' + + _('Instead, use a mounted disk with enough of space.') + ); + o.datatype = 'directory'; + o.default = '/var/spool/emailrelay'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + + + o = s.taboption('smtp_client', form.Value, 'smarthost', _('Smarthost'), + _('The SMTP server to forward emails') + ); + o.datatype = 'host'; + o.optional = false; + o.rmempty = false; + o.depends('mode', 'proxy'); + + o = s.taboption('smtp_client', form.FileUpload, 'client_auth', _('Client authorization file'), + _('A file that contains credentials for SMTP smarthost client.') + '<br />' + + _('See <a %s>Authentication</a>') + .format(docsRefAttrs + '#reference_md_Authentication"') + ); + o.datatype = 'file'; + o.root_directory = '/'; + o.default = '/etc/emailrelay.auth'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('mode', 'proxy'); + + o = s.taboption('smtp_client', form.Flag, 'client_tls', _('Enable SMTP client TLS'), + _('Use TLS encryption for SMTP proxy client.') + '<br />' + + _('See example for <a %s>Gmail</a>') + .format(docsRefAttrs + '#userguide_md_Google_mail"') + ); + o.default = '0'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('mode', 'proxy'); + + o = s.taboption('smtp_client', form.FileUpload, 'client_tls_key', _('TLS private key'), + _('Path to TLS private key.') + ); + o.datatype = 'file'; + o.root_directory = '/'; + o.optional = true; + o.rmempty = true; + o.modalonly = true; + o.depends('client_tls', '1'); + + o = s.taboption('smtp_client', form.FileUpload, 'client_tls_certificate', _('TLS certificate'), + _('Path to TLS cert.') + ); + o.datatype = 'file'; + o.root_directory = '/'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('client_tls', '1'); + + o = s.taboption('smtp_client', form.Value, 'client_tls_verify', _('CA certificate'), + _('Verify an SMTP server\'s certificate ' + + 'against trusted CA certificates in the specified file or directory.') + '<br />' + + _('Use <code><default></code> to use the system trusted CAs.') + ); + o.datatype = 'or(file, directory, "<default>")'; + o.default = '<default>'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('client_tls', '1'); + + + o = s.taboption('pop_server', form.Flag, 'pop', _('Enable POP3'), + _('The POP3 used to fetch a mail.') + '<br />' + + _('See <a %s>Running as a POP server</a>') + .format(docsRefAttrs + '#userguide_md_Running_as_a_POP_server"') + ); + o.default = '0'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('mode', 'server'); + + o = s.taboption('pop_server', form.FileUpload, 'pop_auth', _('POP Auth file'), + _('A file containing POP accounts and their credentials.') + ); + o.datatype = 'file'; + o.root_directory = '/'; + o.default = '/etc/emailrelay.auth'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('pop', '1'); + + o = s.taboption('pop_server', form.Flag, 'pop_by_name', _('POP by name'), + _('Modifies the spool directory used by the POP server to be a sub-directory ' + + 'with the same name as the POP authentication user-id.') + ); + o.default = '1'; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.depends('pop', '1'); + + + o = s.taboption('advanced', form.Value, 'dnsbl', _('DNSBL'), + _('<a %s>DNS Block List (DNSBL)</a> used to block connections from known spammers.') + .format('href="https://en.wikipedia.org/wiki/DNSBL" target="_blank" rel="noreferrer"') + '<br />' + + _('Starts with the transport DNS server\'s address:port, a timeout in milliseconds, a rejection threshold and list of DNSBL servers.') + '<br />' + + _('E.g. ') + '<code>127.0.0.1:53,5000,1,zen.spamhaus.org,bl.mailspike.net</code><br />' + + _('If the threshold number of servers deny the incoming connection\'s network address then it\'s dropped.') + '<br />' + + _('A threshold of zero is useful for testing and means only to log a result code but allow a connection.') + '<br />' + + _('See <a %s>Connection blocking</a>') + .format(docsRefAttrs + '#reference_md_Connection_blocking"') + ); + o.datatype = 'string'; + o.optional = true; + o.rmempty = true; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'address_verifier', _('Address verifier'), + _('Runs the specified external program to verify a message recipient\'s email address.') + '<br />' + + _('See <a %s>Address verification</a>') + .format(docsRefAttrs + '#reference_md_Address_verification"') + ); + // o.default = "allow:/etc/emailrelay.auth"; + o.optional = true; + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'filter', _('Filter'), + _('Runs the specified external filter program whenever a mail message is stored.') + '<br />' + + _('See <a %s>--filter</a>') + .format(docsRefAttrs + '#__filter"') + ); + o.optional = true; + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'extra_cmdline', _('Extra command line options'), + _('Specify additional arguments that should be passed to the EmailRelay.') + '<br />' + + _('See <a %s>Command line reference</a>') + .format(docsRefAttrs + '#reference_md_Reference"') + ); + o.optional = true; + o.rmempty = false; + o.modalonly = true; + o.modalonly = true; + + return m.render(); + }, +}); diff --git a/applications/luci-app-email/po/templates/email.pot b/applications/luci-app-email/po/templates/email.pot new file mode 100644 index 0000000000..d66420b28f --- /dev/null +++ b/applications/luci-app-email/po/templates/email.pot @@ -0,0 +1,357 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:248 +msgid "" +"<a %s>DNS Block List (DNSBL)</a> used to block connections from known " +"spammers." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:139 +msgid "" +"<b>Note:</b> The <code>/var/</code> is a small in-memory folder and you'll " +"lose mail in reboot." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:51 +msgid "<b>You may receive spam so be careful</b>." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:226 +msgid "A file containing POP accounts and their credentials." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:158 +msgid "A file that contains credentials for SMTP smarthost client." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:253 +msgid "" +"A threshold of zero is useful for testing and means only to log a result " +"code but allow a connection." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:262 +msgid "Address verifier" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:25 +msgid "Advanced Settings" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:50 +msgid "Allow connections from the public internet." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:49 +msgid "Allow remote clients" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:59 +msgid "Anonymous" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:78 +msgid "Auth file" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:69 +msgid "By default, the local hostname is used." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:124 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:201 +msgid "CA certificate" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:157 +msgid "Client authorization file" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:92 +msgid "Configure <a %s>acme.sh to issue a TLS cert</a>." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:247 +msgid "DNSBL" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:67 +msgid "Domain" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:11 +msgid "E-MailRelay Server Configuration." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:104 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:115 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:251 +msgid "E.g." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:10 +msgid "Email Server Configuration" +msgstr "" + +#: applications/luci-app-email/root/usr/share/luci/menu.d/luci-app-email.json:3 +msgid "Email server" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:214 +msgid "Enable POP3" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:170 +msgid "Enable SMTP client TLS" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:90 +msgid "Enable TLS for server" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:52 +msgid "Enable ports in firewall." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:27 +msgid "Enabled" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:281 +msgid "Extra command line options" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:272 +msgid "Filter" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:12 +msgid "For further information <a %s>check the documentation</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:252 +msgid "" +"If the threshold number of servers deny the incoming connection's network " +"address then it's dropped." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:127 +msgid "In many use cases this should be your self-signed root certificate." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:42 +msgid "Incoming mail by default received on <em>25</em> port." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:16 +msgid "Instance config" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:140 +msgid "Instead, use a mounted disk with enough of space." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:137 +msgid "Mail storage directory" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:36 +msgid "Manual command line options (deprecated)" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:30 +msgid "Mode" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:237 +msgid "" +"Modifies the spool directory used by the POP server to be a sub-directory " +"with the same name as the POP authentication user-id." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:43 +msgid "" +"Outcoming mail by usually received on <em>587</em> or <em>465</em> (TLS " +"only) but the <em>25</em> is also used often." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:225 +msgid "POP Auth file" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:236 +msgid "POP by name" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:24 +msgid "POP3" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:114 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:192 +msgid "Path to TLS cert." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:103 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:182 +msgid "Path to TLS private key." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:35 +msgid "" +"Proxy: submission outgoing mail, store and forward to smarthost SMTP server" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:60 +msgid "Reduce the amount of information leaked to remote clients." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:273 +msgid "" +"Runs the specified external filter program whenever a mail message is stored." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:263 +msgid "" +"Runs the specified external program to verify a message recipient's email " +"address." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:23 +msgid "SMTP Client" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:40 +msgid "SMTP Port" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:41 +msgid "SMTP Port to listen for incoming emails." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:22 +msgid "SMTP Server" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:61 +msgid "See <a %s>--anonymous</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:70 +msgid "See <a %s>--domain</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:274 +msgid "See <a %s>--filter</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:53 +msgid "See <a %s>--remote-clients</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:264 +msgid "See <a %s>Address verification</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:80 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:159 +msgid "See <a %s>Authentication</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:283 +msgid "See <a %s>Command line reference</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:254 +msgid "See <a %s>Connection blocking</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:31 +msgid "See <a %s>Running E-MailRelay</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:216 +msgid "See <a %s>Running as a POP server</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:94 +msgid "See <a %s>TLS encryption</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:172 +msgid "See example for <a %s>Gmail</a>" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:79 +msgid "Server/proxy authorization file." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:34 +msgid "Server: receive incoming mail" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:149 +msgid "Smarthost" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:68 +msgid "Specifies the server's domain name that is used in SMTP EHLO." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:282 +msgid "Specify additional arguments that should be passed to the EmailRelay." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:250 +msgid "" +"Starts with the transport DNS server's address:port, a timeout in " +"milliseconds, a rejection threshold and list of DNSBL servers." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:113 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:191 +msgid "TLS certificate" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:102 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:181 +msgid "TLS private key" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:215 +msgid "The POP3 used to fetch a mail." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:150 +msgid "The SMTP server to forward emails" +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:138 +msgid "The directory used for holding received mail messages." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:128 +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:204 +msgid "Use <code><default></code> to use the system trusted CAs." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:91 +msgid "Use TLS encryption for SMTP and POP connections." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:171 +msgid "Use TLS encryption for SMTP proxy client." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:125 +msgid "" +"Verify an SMTP and POP client's certificates against trusted CA certificates " +"in the specified file or directory." +msgstr "" + +#: applications/luci-app-email/htdocs/luci-static/resources/view/email/emailrelay.js:202 +msgid "" +"Verify an SMTP server's certificate against trusted CA certificates in the " +"specified file or directory." +msgstr "" diff --git a/applications/luci-app-email/root/usr/share/luci/menu.d/luci-app-email.json b/applications/luci-app-email/root/usr/share/luci/menu.d/luci-app-email.json new file mode 100644 index 0000000000..eee57860a9 --- /dev/null +++ b/applications/luci-app-email/root/usr/share/luci/menu.d/luci-app-email.json @@ -0,0 +1,13 @@ +{ + "admin/services/email": { + "title": "Email server", + "order": 50, + "action": { + "type": "view", + "path": "email/emailrelay" + }, + "depends": { + "acl": [ "luci-app-email" ] + } + } +} diff --git a/applications/luci-app-email/root/usr/share/rpcd/acl.d/luci-app-email.json b/applications/luci-app-email/root/usr/share/rpcd/acl.d/luci-app-email.json new file mode 100644 index 0000000000..1a3147e45c --- /dev/null +++ b/applications/luci-app-email/root/usr/share/rpcd/acl.d/luci-app-email.json @@ -0,0 +1,14 @@ +{ + "luci-app-email": { + "read": { + "uci": [ + "emailrelay" + ] + }, + "write": { + "uci": [ + "emailrelay" + ] + } + } +} |