send mail function

This commit is contained in:
MorganGeek
2021-06-07 09:57:04 +02:00
parent a9c4b9b782
commit db6430d3df
3 changed files with 96 additions and 0 deletions

24
dot_scripts/mail.tpl Normal file
View File

@ -0,0 +1,24 @@
From: "#FROM_NAME" <#FROM_MAIL>
To: "#TO_NAME" <#TO_MAIL>
Subject: Convert
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="MULTIPART-MIXED-BOUNDARY"
--MULTIPART-MIXED-BOUNDARY
Content-Type: multipart/alternative; boundary="MULTIPART-ALTERNATE-BOUNDARY"
--MULTIPART-ALTERNATE-BOUNDARY
Content-Type: text/plain; charset="UTF-8"
Hello #TO_NAME
--MULTIPART-ALTERNATE-BOUNDARY
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hello #TO_NAME</div>
--MULTIPART-ALTERNATE-BOUNDARY--
--MULTIPART-MIXED-BOUNDARY
Content-Type: application/octet-stream; name="#ATTACHMENT_NAME"
Content-Disposition: attachment; filename="#ATTACHMENT_NAME"
Content-Transfer-Encoding: base64

33
dot_scripts/sendmail.sh Executable file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
source "$HOME/.scripts/secrets.sh"
function file_to_mail() {
local source_file="$1"
local attachment_name=$(basename "$1")
local target_file="$source_file-encoded"
base64 "$source_file" >"$target_file"
local target_file_content
target_file_content=$(\cat "$target_file")
local mail_template="$HOME/Code/dotfiles/dot_scripts/mail.tpl"
local mail_from="$PRINCIPAL_ACCOUNT_EMAIL"
local mail_to=${2:-"$mail_from"}
local name_from="$PRINCIPAL_ACCOUNT_FULLNAME"
local name_to="$name_from"
\cat "$mail_template" |
sed "s/#FROM_NAME/$name_from/g" |
sed "s/#FROM_MAIL/$mail_from/g" |
sed "s/#TO_NAME/$name_to/g" |
sed "s/#TO_MAIL/$mail_to/g" |
sed "s/#ATTACHMENT_NAME/$attachment_name/g" >/tmp/mailwithattachement.txt
# sed "s/#ATTACHMENT_CONTENT/$target_file_content/g" >/tmp/mailwithattachement.txt
# sed "s/#ATTACHMENT_CONTENT/$target_file_content/g" >/tmp/mailwithattachement.txt
echo "\n$target_file_content\n" >>/tmp/mailwithattachement.txt
echo "\n--MULTIPART-MIXED-BOUNDARY--" >>/tmp/mailwithattachement.txt
curl -v --ssl-reqd --url 'smtps://smtp.gmail.com:465' --user "$GMAIL_APP_USER:$GMAIL_APP_PASSWORD" --mail-from "$mail_from" --mail-rcpt "$mail_to" --upload-file /tmp/mailwithattachement.txt
}