pothi.mikrotik-lte-scripts/scripts/sms-forward-email.rsc
2022-11-08 21:23:21 +05:30

50 lines
1.5 KiB
Text

# SMS Forward and Email
# Requirements:
# policy: read, write, policy, test
# active internet
# adminEmail - to forward the full details of the received SMS
# adminPh - to forward only the received SMS message
# ToDo: Shorten the timestamp.
# Source: https://forum.mikrotik.com/viewtopic.php?f=9&t=61068#p312202
# Note: The SMS is removed from the inbox after sent by Email and forwarded
# even if email and forward fail! So, test it often!
:global adminEmail
:if ([:typeof $adminEmail] = "nothing" || $adminEmail = "") do={
:log error "adminEmail is not defined or nil."; :error "Error: Check the log"; }
:global adminPh
:if ([:typeof $adminPh] = "nothing" || $adminPh = "") do={
:log error "adminPh is not defined or nil."; :error "Error: Check the log"; }
:local smsForwardPh $adminPh
:local smsPhone
:local smsMessage
:local smsTimeStamp
/tool sms inbox
:foreach i in=[find] do={
:set smsPhone [get $i phone]
:set smsMessage [get $i message]
:set smsTimeStamp [get $i timestamp]
:log info "\nSMS Received From: $smsPhone on $smsTimeStamp Message: $smsMessage"
# Forward the SMS to $smsForwardPh
:do {
/tool sms send lte1 phone-number=$smsForwardPh message=$smsMessage
} on-error={ /tool e-mail send to="$adminEmail" subject="Sending SMS Failed" body="Check the log" }
:delay 2s
# Send Email to $adminEmail
/tool e-mail send to="$adminEmail" body="$smsMessage" \
subject="SMS from $smsPhone at $smsTimeStamp"
:delay 3s
remove $i
}