*nix send-mail script added.

*nix send-mail script added. Scripts settings moved to config files
This commit is contained in:
Alexander I. Chebykin 2022-06-28 00:13:07 +03:00
parent b55f72f2e4
commit 486d9384cc
7 changed files with 96 additions and 26 deletions

View File

@ -47,16 +47,30 @@ In commands You can use fields ```<email>```, ```<subject>``` and ```<message>``
#### *nix
##### send-mail
**Usage:** ```send-mail recipient 'subject' 'message'```
Configuration file ```/etc/email.conf```
- ```Username:``` - Set e-mail user name here
- ```Password:``` - Set e-mail password here
- ```SMTP Server:``` - Set SMTP server address here
- ```Port:``` - Set SMTP port here
##### send-telegram
Next lines needs to be configured:
**Usage:** ```send-telegram 'message'```
- ```GROUP_ID=<group_id>``` - Set Telegram group ID here
- ```BOT_TOKEN=<bot_token>``` - Set Telegram token here
Configuration file ```/etc/telegram.conf```
- ```Group ID:``` - Set Telegram group ID here
- ```Bot token:``` - Set Telegram token here
#### Windows
##### send-mail.ps1
**Usage:** ```send-mail.ps1 recipient 'subject' 'message'```
Next lines needs to be configured:
- ```$EmailFrom = "yourmailadress@somedomain.com"``` - Set sender e-mail address here
@ -66,6 +80,8 @@ Next lines needs to be configured:
##### send-telegram.ps1
**Usage:** ```send-telegram.ps1 'message'```
- ```$Telegramtoken = "Your_Telegram_Token"``` - Set Telegram token here
- ```$Telegramchatid = "Your_Telegram_Chat_ID"``` - Set Telegram chat ID here

View File

@ -0,0 +1,4 @@
Username: user@domain.local
Password: str0ngP@$$word
SMTP Server: smtp.domain.local
Port: 465

View File

@ -0,0 +1,2 @@
Group ID: Telegram_Group_ID
Bot token: Telegram_Bot_Token

View File

@ -1,23 +0,0 @@
#!/bin/bash
GROUP_ID=<group_id>
BOT_TOKEN=<bot_token>
# this 3 checks (if) are not necessary but should be convenient
if [ "$1" == "-h" ]; then
echo "Usage: `basename $0` \"text message\""
exit 0
fi
if [ -z "$1" ]
then
echo "Add message text as second arguments"
exit 0
fi
if [ "$#" -ne 1 ]; then
echo "You can pass only one argument. For string with spaces put it on quotes"
exit 0
fi
curl -s --data "text=$1" --data "chat_id=$GROUP_ID" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage' > /dev/null

View File

@ -0,0 +1,42 @@
#!/bin/bash
rcpt=$1
subj=$2
message=$3
ARGS=$(xargs echo $(perl -anle 's/^[^:]+//g && s/:\s+//g && print' /etc/email.conf) < /dev/null)
set -- $ARGS "$@";
declare -A email;
email['user']=$1
email['pass']=$2
email['smtp']=$3
email['port']=$4
email_content='From: "Watchdog" <'"${email['user']}"'>
To: "Subscriber" <'"${rcpt}"'>
Subject: '"${subj}"'
Date: '"$(date)"'
'"${message}"'
-----
'"${HOSTNAME}"'
';
echo "$email_content" | curl -s \ # -vvv \
--url "smtps://${email['smtp']}:${email['port']}" \
--user "${email['user']}:${email['pass']}" \
--mail-from "${email['user']}" \
--mail-rcpt "${rcpt}" \
--upload-file - \
-T -
if [[ $? == 0 ]]; then
echo;
echo 'okay';
else
echo "curl error code $?";
man curl | grep "^ \+$? \+"
fi

View File

@ -0,0 +1,29 @@
#!/bin/bash
SCRIPT_NAME=$0
MESSAGE_TEXT=$1
if [ "$#" -ne 1 ]; then
echo "You can pass only one argument. For string with spaces put it on quotes"
exit 0
fi
ARGS=$(xargs echo $(perl -anle 's/^[^:]+//g && s/:\s+//g && print' /etc/email.conf) < /dev/null)
set -- $ARGS "$@";
GROUP_ID=$1
BOT_TOKEN=$2
# this 3 checks (if) are not necessary but should be convenient
if [ "${MESSAGE_TEXT}" == "-h" ]; then
echo "Usage: `basename ${SCRIPT_NAME}` \"text message\""
exit 0
fi
if [ -z "${MESSAGE_TEXT}" ]
then
echo "Add message text as second arguments"
exit 0
fi
curl -s --data "text=${MESSAGE_TEXT}" --data "chat_id=$GROUP_ID" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage' > /dev/null