Compare commits

..

1 commit

Author SHA1 Message Date
Brad Koehn
f3a377e276
Merge 712e34572b into 03beef8006 2025-01-22 18:03:54 +00:00
4 changed files with 30 additions and 8 deletions

View file

@ -5,6 +5,30 @@ const nodemailer = require("nodemailer");
class SMTPMonitorType extends MonitorType { class SMTPMonitorType extends MonitorType {
name = "smtp"; name = "smtp";
/**
* @param {*} smtpSecurity the user's SMTP security setting
* @returns {boolean} True if this should test SMTPS
*/
isSMTPS(smtpSecurity) {
return smtpSecurity === "secure";
}
/**
* @param {*} smtpSecurity the user's SMTP security setting
* @returns {boolean} True if this should not attempt STARTTLS, even if it is available
*/
isIgnoreTLS(smtpSecurity) {
return smtpSecurity === "nostarttls";
}
/**
* @param {*} smtpSecurity the user's SMTP security setting
* @returns {boolean} True if this should always test STARTTLS
*/
isRequireTLS(smtpSecurity) {
return smtpSecurity === "starttls";
}
/** /**
* @inheritdoc * @inheritdoc
*/ */
@ -12,9 +36,9 @@ class SMTPMonitorType extends MonitorType {
let options = { let options = {
port: monitor.port || 25, port: monitor.port || 25,
host: monitor.hostname, host: monitor.hostname,
secure: monitor.smtpSecurity === "secure", // use SMTPS (not STARTTLS) secure: this.isSMTPS(monitor.smtpSecurity), // use SMTPS (not STARTTLS)
ignoreTLS: monitor.smtpSecurity === "nostarttls", // don't use STARTTLS even if it's available ignoreTLS: this.isIgnoreTLS(monitor.smtpSecurity), // don't use STARTTLS even if it's available
requireTLS: monitor.smtpSecurity === "starttls", // use STARTTLS or fail requireTLS: this.isRequireTLS(monitor.smtpSecurity), // use STARTTLS or fail
}; };
let transporter = nodemailer.createTransport(options); let transporter = nodemailer.createTransport(options);
try { try {

View file

@ -72,7 +72,6 @@ class GoogleChat extends NotificationProvider {
// construct json data // construct json data
let data = { let data = {
fallbackText: chatHeader["title"],
cardsV2: [ cardsV2: [
{ {
card: { card: {

View file

@ -1051,6 +1051,5 @@
"RabbitMQ Password": "RabbitMQ Password", "RabbitMQ Password": "RabbitMQ Password",
"rabbitmqHelpText": "To use the monitor, you will need to enable the Management Plugin in your RabbitMQ setup. For more information, please consult the {rabitmq_documentation}.", "rabbitmqHelpText": "To use the monitor, you will need to enable the Management Plugin in your RabbitMQ setup. For more information, please consult the {rabitmq_documentation}.",
"SendGrid API Key": "SendGrid API Key", "SendGrid API Key": "SendGrid API Key",
"Separate multiple email addresses with commas": "Separate multiple email addresses with commas", "Separate multiple email addresses with commas": "Separate multiple email addresses with commas"
"smtpHelpText": "Specify the TLS settings of the SMTP server you wish to monitor: SMTPS, STARTTLS, or ignore TLS"
} }

View file

@ -332,14 +332,14 @@
</select> </select>
</div> </div>
<i18n-t v-if="monitor.type === 'smtp'" keypath="smtpHelpText" tag="div" class="my-3"> <div v-if="monitor.type === 'smtp'" class="my-3">
<label for="smtp_security" class="form-label">{{ $t("SMTP Security") }}</label> <label for="smtp_security" class="form-label">{{ $t("SMTP Security") }}</label>
<select id="smtp_security" v-model="monitor.smtpSecurity" class="form-select"> <select id="smtp_security" v-model="monitor.smtpSecurity" class="form-select">
<option value="secure">SMTPS</option> <option value="secure">SMTPS</option>
<option value="nostarttls">Ignore STARTTLS</option> <option value="nostarttls">Ignore STARTTLS</option>
<option value="starttls">Use STARTTLS</option> <option value="starttls">Use STARTTLS</option>
</select> </select>
</i18n-t> </div>
<!-- Json Query --> <!-- Json Query -->
<!-- For Json Query / SNMP --> <!-- For Json Query / SNMP -->