Как отправить простой HTML-файл из скрипта bash с помощью команды curl, используя SMTP API SendGrid? - PullRequest
1 голос
/ 11 декабря 2019

Я новичок в скриптах bash. Я потратил часы на поиск решения ..

#!/bin/bash

# EMAIL_TO, FROM_EMAIL, etc variables are initialized here
# ...
# ...

maildata='{"personalizations": [{"to": [{"email": "'${EMAIL_TO}'"}]}],"from": {"email": "'${FROM_EMAIL}'",
    "name": "'${FROM_NAME}'"},"subject": "'${SUBJECT}'","content": [{"type": "text/html", "value": "'${bodyHTML}'"}]}'

curl    --url https://api.sendgrid.com/v3/mail/send \
        --header 'Authorization: Bearer '$SENDGRID_API_KEY \
        --header 'Content-Type: application/json' \
        --data "'$maildata'"

Вышеприведенный фрагмент отлично работает, когда здесь, внутри скрипта, задан bodyHTML. Но я хочу, чтобы внешний html файл отправлялся таким образом.

Итак, вопрос: как я могу отправить, например, «mail.html» по вышеуказанной схеме? (Как установить переменную bodyHTML? Какие команды использовать? bodyHTML = $ (cat "mail.html") # приводит к сообщению об ошибке при выполнении строки curl)

Проблема, похоже, связана с bodyHTML (инициализированным из файла или внутри скрипта), содержащим двойные кавычки. Как в, например. Но что с этим делать ...? Возможно, мне нужно сначала сериализовать HTML как JSON внутри скрипта ..? Как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...