mirror of
https://github.com/dawidd6/action-send-mail.git
synced 2026-10-09 01:27:47 +07:00
Fix secure setting and fix smtp+starttls defaulting to the wrong port (#329)
* Auto-derive the secure setting from serverPort, after setting serverPort * Breaking: Add smtps scheme, fix smtp+starttls to default to port 587 * Use getBooleanInput for secure
This commit is contained in:
1 parent
0635835dfc
commit
c2c6302b92
3 files changed
+20
-13
No files matched your search
@@ -19,13 +19,14 @@ Some features:
|
||||
# Optional proxy, NO_PROXY is honored too:
|
||||
SMTP_PROXY: http://proxy.example.test:3128
|
||||
with:
|
||||
# Specify connection via URL (replaces server_address, server_port, secure,
|
||||
# Specify connection via URL (replaces server_address, server_port,
|
||||
# username and password)
|
||||
#
|
||||
# Format:
|
||||
#
|
||||
# * smtp://user:password@server:port
|
||||
# * smtp+starttls://user:password@server:port
|
||||
# * smtps://user:password@server:port (TLS, default port 465)
|
||||
# * smtp+starttls://user:password@server:port (STARTTLS required, default port 587)
|
||||
connection_url: ${{secrets.MAIL_CONNECTION}}
|
||||
|
||||
# Required mail server address if not connection_url:
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ branding:
|
||||
color: blue
|
||||
inputs:
|
||||
connection_url:
|
||||
description: Connection URL protocol://user:password@server:port, protocol can be smtp or smtp+starttls, replaces server_address, server_port, secure, username and password
|
||||
description: Connection URL protocol://user:password@server:port, protocol can be smtp, smtps (TLS, default port 465) or smtp+starttls (STARTTLS required, default port 587), replaces server_address, server_port, username and password
|
||||
server_address:
|
||||
description: SMTP server address
|
||||
server_port:
|
||||
|
||||
@@ -93,15 +93,13 @@ async function main() {
|
||||
try {
|
||||
let serverAddress = core.getInput("server_address");
|
||||
let serverPort = core.getInput("server_port");
|
||||
let secure = core.getInput("secure");
|
||||
const requireTLS = core.getInput("require_tls", { required: false });
|
||||
let secure = core.getInput("secure")
|
||||
? core.getBooleanInput("secure")
|
||||
: undefined;
|
||||
let requireTLS = core.getInput("require_tls", { required: false });
|
||||
let username = core.getInput("username");
|
||||
let password = core.getInput("password");
|
||||
|
||||
if (!secure) {
|
||||
secure = serverPort === "465" ? "true" : "false";
|
||||
}
|
||||
|
||||
const connectionUrl = core.getInput("connection_url");
|
||||
if (connectionUrl) {
|
||||
const url = new URL(connectionUrl);
|
||||
@@ -112,11 +110,15 @@ async function main() {
|
||||
);
|
||||
case "smtp:":
|
||||
serverPort = "25";
|
||||
secure = "false";
|
||||
break;
|
||||
case "smtps:":
|
||||
serverPort = "465";
|
||||
secure = true;
|
||||
break;
|
||||
case "smtp+starttls:":
|
||||
serverPort = "465";
|
||||
secure = "true";
|
||||
serverPort = "587";
|
||||
secure = false;
|
||||
requireTLS = "true";
|
||||
break;
|
||||
}
|
||||
if (url.hostname) {
|
||||
@@ -133,6 +135,10 @@ async function main() {
|
||||
}
|
||||
}
|
||||
|
||||
if (secure === undefined) {
|
||||
secure = serverPort === "465";
|
||||
}
|
||||
|
||||
const subject = core.getInput("subject", { required: true });
|
||||
const from = core.getInput("from", { required: true });
|
||||
const to = core.getInput("to", { required: false });
|
||||
@@ -196,7 +202,7 @@ async function main() {
|
||||
}
|
||||
: undefined,
|
||||
port: serverPort,
|
||||
secure: secure === "true",
|
||||
secure: secure,
|
||||
requireTLS: requireTLS === "true",
|
||||
tls:
|
||||
ignoreCert == "true"
|
||||
|
||||
Reference in new issue
Block a user