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:
|
# Optional proxy, NO_PROXY is honored too:
|
||||||
SMTP_PROXY: http://proxy.example.test:3128
|
SMTP_PROXY: http://proxy.example.test:3128
|
||||||
with:
|
with:
|
||||||
# Specify connection via URL (replaces server_address, server_port, secure,
|
# Specify connection via URL (replaces server_address, server_port,
|
||||||
# username and password)
|
# username and password)
|
||||||
#
|
#
|
||||||
# Format:
|
# Format:
|
||||||
#
|
#
|
||||||
# * smtp://user:password@server:port
|
# * 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}}
|
connection_url: ${{secrets.MAIL_CONNECTION}}
|
||||||
|
|
||||||
# Required mail server address if not connection_url:
|
# Required mail server address if not connection_url:
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ branding:
|
|||||||
color: blue
|
color: blue
|
||||||
inputs:
|
inputs:
|
||||||
connection_url:
|
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:
|
server_address:
|
||||||
description: SMTP server address
|
description: SMTP server address
|
||||||
server_port:
|
server_port:
|
||||||
|
|||||||
@@ -93,15 +93,13 @@ async function main() {
|
|||||||
try {
|
try {
|
||||||
let serverAddress = core.getInput("server_address");
|
let serverAddress = core.getInput("server_address");
|
||||||
let serverPort = core.getInput("server_port");
|
let serverPort = core.getInput("server_port");
|
||||||
let secure = core.getInput("secure");
|
let secure = core.getInput("secure")
|
||||||
const requireTLS = core.getInput("require_tls", { required: false });
|
? core.getBooleanInput("secure")
|
||||||
|
: undefined;
|
||||||
|
let requireTLS = core.getInput("require_tls", { required: false });
|
||||||
let username = core.getInput("username");
|
let username = core.getInput("username");
|
||||||
let password = core.getInput("password");
|
let password = core.getInput("password");
|
||||||
|
|
||||||
if (!secure) {
|
|
||||||
secure = serverPort === "465" ? "true" : "false";
|
|
||||||
}
|
|
||||||
|
|
||||||
const connectionUrl = core.getInput("connection_url");
|
const connectionUrl = core.getInput("connection_url");
|
||||||
if (connectionUrl) {
|
if (connectionUrl) {
|
||||||
const url = new URL(connectionUrl);
|
const url = new URL(connectionUrl);
|
||||||
@@ -112,11 +110,15 @@ async function main() {
|
|||||||
);
|
);
|
||||||
case "smtp:":
|
case "smtp:":
|
||||||
serverPort = "25";
|
serverPort = "25";
|
||||||
secure = "false";
|
break;
|
||||||
|
case "smtps:":
|
||||||
|
serverPort = "465";
|
||||||
|
secure = true;
|
||||||
break;
|
break;
|
||||||
case "smtp+starttls:":
|
case "smtp+starttls:":
|
||||||
serverPort = "465";
|
serverPort = "587";
|
||||||
secure = "true";
|
secure = false;
|
||||||
|
requireTLS = "true";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (url.hostname) {
|
if (url.hostname) {
|
||||||
@@ -133,6 +135,10 @@ async function main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (secure === undefined) {
|
||||||
|
secure = serverPort === "465";
|
||||||
|
}
|
||||||
|
|
||||||
const subject = core.getInput("subject", { required: true });
|
const subject = core.getInput("subject", { required: true });
|
||||||
const from = core.getInput("from", { required: true });
|
const from = core.getInput("from", { required: true });
|
||||||
const to = core.getInput("to", { required: false });
|
const to = core.getInput("to", { required: false });
|
||||||
@@ -196,7 +202,7 @@ async function main() {
|
|||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
port: serverPort,
|
port: serverPort,
|
||||||
secure: secure === "true",
|
secure: secure,
|
||||||
requireTLS: requireTLS === "true",
|
requireTLS: requireTLS === "true",
|
||||||
tls:
|
tls:
|
||||||
ignoreCert == "true"
|
ignoreCert == "true"
|
||||||
|
|||||||
Reference in new issue
Block a user