Wrapper scripts to various mail transfer agents added to .utils collection.

This commit is contained in:
Kovács Zoltán
2026-05-01 22:50:20 +02:00
parent a2f95b2ecb
commit 358211bcff
4 changed files with 44 additions and 0 deletions
BIN
View File
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
# Wrapper scripts to various mail transfer agents.
Only needed if your system does not provide the POSIX mailx compatible mail command. If sending email is prohibited from your environment use *mail.dummy* to avoid warnings from cron, etc.
To activate, choose a suitable one then place it somewhere in the path (~/bin or /usr/local/bin are recommended), name it mail and give it execute permission.
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
#
# Dummy file to met the dependencies. Does nothing.
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
#
# A simple wrapper script to s-nail. Needs a suitable smarthost.
# A copy of sent mail is saved in the /var/mail/$USER mbox file.
# It is recommended to rotate these files e.g via /etc/logrotate.d.
# See also https://manpages.ubuntu.com/manpages/focal/man1/s-nail.1.html
# SMTP settings - feel free to adjust.
#
# Sender's address is fixed - pay attention to the SPF DNS record!
FROM="no-reply@example.com"
# Default recipient(s), delimited by space.
TO="sysadmin@example.com webadmin@example.com"
SMTP_SERVER="mail.example.com"
# smtp (for tcp/25), smtps (for tcp/465), submission (for tcp/587).
SMTP_PROTO="submission"
# URL escaping required for special characters below.
SMTP_USER="no-reply%40example.com"
SMTP_PASS="topsecret"
# s-nail call.
#
if [ -x "$(which s-nail 2>/dev/null)" ]; then
# The recipient's address is the last argument.
recipient="${@: -1}"
set -- "${@: 1: $#-1}"
# Our scripts may send mails to the local user.
# In this case, we need replace the recipient address.
[[ "$recipient" = "$USER" ]] && recipient="$TO"
[[ "$recipient" = "$USER@$HOSTNAME" ]] && recipient="$TO"
if [ -n "$recipient" ]; then
"$(which s-nail)" -S from="$FROM" -S v15-compat \
-S smtp-auth="login" -S smtp-use-starttls \
-S mta="$SMTP_PROTO://$SMTP_USER:$SMTP_PASS@$SMTP_SERVER" \
-S record="/var/mail/$USER" \
"${@}" $recipient
fi
fi