Files
webgui/emhttp/plugins/dynamix/SmtpSettings.page
2025-08-01 07:40:50 +02:00

195 lines
7.6 KiB
Plaintext

Menu="Notifications:2"
Title="SMTP Settings"
Tag="envelope"
---
<?PHP
/* Copyright 2005-2023, Lime Technology
* Copyright 2012-2023, Bergware International.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*/
?>
<?
require_once "$docroot/webGui/include/Encryption.php";
$ssmtp['AuthPass'] = base64_decrypt(_var($ssmtp,'AuthPass'));
$incomplete = !_var($ssmtp,'root') || !_var($ssmtp,'server') || !_var($ssmtp,'port') || ((!_var($ssmtp,'AuthUser') || !_var($ssmtp,'AuthPass')) && _var($ssmtp,'AuthMethod')!='none');
?>
<script>
var counter,pid;
$(function() {
$('#testbutton').click(function(){
$('#testresult').html('_(Test running)_:<span class="orange">_(obtaining)_ <span id="testcounter"></span>...</span>');
counter = 20;
mailtest();
$.get('/webGui/include/SMTPtest.php',function(data){clearTimeout(pid); $('#testresult').html(data)});
});
tls(document.smtp_setup);
pwd(document.smtp_setup);
});
function mailcheck(form) {
var email = /^\S+@\S+\.\S+/;
if (!email.test(form.root.value)) {
swal({title:"_(Invalid email address)_",text:"_(Please enter a valid sending email address)_",type:"error",html:true,confirmButtonText:"_(Ok)_"});
return false;
}
return true;
}
function tls(form) {
form.TLSCert.disabled = form.UseTLSCert.selectedIndex==0;
}
function pwd(form) {
form.AuthUser.disabled = form.AuthMethod.selectedIndex==0;
form.AuthPass.disabled = form.AuthMethod.selectedIndex==0;
}
function mailtest() {
document.getElementById('testcounter').innerHTML = '('+counter+' sec)';
counter--;
if (counter>0) pid=setTimeout(mailtest,1000);
}
function disableTest() {
document.getElementById('testbutton').disabled = true;
}
function settings(form, data) {
var item = data.split(':');
form.server.value = item[0];
form.port.value = item[1];
form.UseTLS.value = item[2];
form.UseSTARTTLS.value = item[3];
form.AuthMethod.value = item[4];
disableTest();
}
</script>
<form markdown="1" name="smtp_setup" method="POST" action="/update.php" target="progressFrame" onsubmit="return mailcheck(this)" onchange="disableTest()">
<input type="hidden" name="#file" value="dynamix/dynamix.cfg">
<input type="hidden" name="#section" value="ssmtp">
<input type="hidden" name="#include" value="/webGui/include/update.ssmtp.php">
<input type="hidden" name="#command" value="/webGui/scripts/notify">
<input type="hidden" name="#arg[1]" value="smtp-init">
_(Preset service)_:
: <select name="service" size="1" onchange="settings(this.form,this.value)">
<?=mk_option(_var($ssmtp,'service'), "smtp.gmail.com:465:YES:NO:login", "Gmail")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.gmail.com:587:YES:YES:login", "Gmail with TLS")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.office365.com:587:YES:YES:login", "Outlook")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.office365.com:587:YES:YES:login", "Hotmail")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.office365.com:587:YES:YES:login", "Office365")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.mail.yahoo.com:465:YES:NO:login", "Yahoo")?>
<?=mk_option(_var($ssmtp,'service'), "plus.smtp.mail.yahoo.com:465:YES:NO:login", "Yahoo Plus")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.mail.yahoo.co.uk:465:YES:NO:login", "Yahoo UK")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.mail.yahoo.com.au:465:YES:NO:login", "Yahoo AU/NZ")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.o2.ie:25:NO:NO:login", "O2")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.o2.co.uk:25:NO:NO:login", "O2 UK")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.o2online.de:25:NO:NO:login", "O2 Online Deutschland")?>
<?=mk_option(_var($ssmtp,'service'), "securesmtp.t-online.de:587:YES:YES:login", "T-Online Deutschland")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.1and1.com:587:YES:YES:login", "1&1")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.1und1.de:587:YES:YES:login", "1&1 Deutschland")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.att.yahoo.com:465:YES:NO:login", "AT&T")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.ntlworld.com:465:YES:NO:login", "NTL")?>
<?=mk_option(_var($ssmtp,'service'), "mail.btopenworld.com:25:NO:NO:login", "BT Openworld")?>
<?=mk_option(_var($ssmtp,'service'), "mail.btinternet.com:25:NO:NO:login", "BT Internet")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.comcast.net:465:YES:NO:login", "Comcast")?>
<?=mk_option(_var($ssmtp,'service'), "outgoing.verizon.net:465:YES:NO:login", "Verizon")?>
<?=mk_option(_var($ssmtp,'service'), "outgoing.yahoo.verizon.net:587:NO:NO:login", "Verizon (Yahoo hosted)")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.mail.com:465:YES:NO:login", "Mail.com")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.gmx.com:465:YES:NO:login", "GMX.com")?>
<?=mk_option(_var($ssmtp,'service'), "smtp.zoho.com:465:YES:NO:login", "zoho Mail")?>
<?=mk_option(_var($ssmtp,'service'), "::NO:NO:none", _("Custom"))?>
</select>
:smtp_preset_service_help:
_(Sending email address)_:
: <input type="text" name="root" value="<?=htmlspecialchars(_var($ssmtp,'root'))?>">
:smtp_email_address_help:
_(Email recipients)_:
: <input type="text" name="RcptTo" value="<?=htmlspecialchars(_var($ssmtp,'RcptTo'))?>">
:smtp_recipients_help:
_(Priority in header)_:
: <select name="SetEmailPriority">
<?=mk_option(_var($ssmtp,'SetEmailPriority'), "False", _("No"))?>
<?=mk_option(_var($ssmtp,'SetEmailPriority'), "True", _("Yes"))?>
</select>
:smtp_priority_help:
_(Email subject prefix)_:
: <input type="text" name="Subject" value="<?=htmlspecialchars(_var($ssmtp,'Subject'))?>">
:smtp_subject_prefix_help:
_(Mail server)_:
: <input type="text" name="server" value="<?=htmlspecialchars(_var($ssmtp,'server'))?>">
:smtp_mail_server_help:
_(Mail server port)_:
: <input type="text" name="port" maxlength="5" value="<?=htmlspecialchars(_var($ssmtp,'port'))?>">
:smtp_mail_server_port_help:
_(Use SSL/TLS)_:
: <select name="UseTLS">
<?=mk_option(_var($ssmtp,'UseTLS'), "NO", _("No"))?>
<?=mk_option(_var($ssmtp,'UseTLS'), "YES", _("Yes"))?>
</select>
:smtp_use_ssl_tls_help:
_(Use STARTTLS)_:
: <select name="UseSTARTTLS">
<?=mk_option(_var($ssmtp,'UseSTARTTLS'), "NO", _("No"))?>
<?=mk_option(_var($ssmtp,'UseSTARTTLS'), "YES", _("Yes"))?>
</select>
:smtp_use_starttls_help:
_(Define a TLS certificate)_:
: <select name="UseTLSCert" onchange="tls(this.form)">
<?=mk_option(_var($ssmtp,'UseTLSCert'), "NO", _("No"))?>
<?=mk_option(_var($ssmtp,'UseTLSCert'), "YES", _("Yes"))?>
</select>
:smtp_define_tls_cert_help:
_(TLS certificate location)_:
: <input type="text" name="TLSCert" value="<?=htmlspecialchars(_var($ssmtp,'TLSCert'))?>">
:smtp_tls_cert_location_help:
_(Authentication method)_:
: <select name="AuthMethod" onchange="pwd(this.form)">
<?=mk_option(_var($ssmtp,'AuthMethod'), "none", _("None"))?>
<?=mk_option(_var($ssmtp,'AuthMethod'), "cram-md5", _("CRAM-MD5"))?>
<?=mk_option(_var($ssmtp,'AuthMethod'), "login", _("Login"))?>
</select>
:smtp_authentication_method_help:
_(Username)_:
: <input type="text" name="AuthUser" value="<?=htmlspecialchars(_var($ssmtp,'AuthUser'))?>">
_(Password)_:
: <input type="password" name="AuthPass" value="<?=htmlspecialchars(_var($ssmtp,'AuthPass'))?>">
:smtp_username_password_help:
&nbsp;
: <span class="inline-block">
<input type="submit" name="#apply" value="_(Apply)_" disabled>
<input type="button" value="_(Done)_" onclick="done()">
<span id="testresult"><input type="button" id="testbutton" value="_(Test)_"<?if ($incomplete):?> disabled<?endif;?>></span>
</span>
</form>