Как я могу отправить HTML письмо с Curl? - PullRequest
0 голосов
/ 08 января 2020

Я использую конечную точку sendgrid API v3 для отправки электронного письма. Я могу успешно отправить электронное письмо, например:

curl --request POST \
  --url https://api.sendgrid.com/v3/mail/send \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sendeexampexample@example.com"},"subject": "Hello, World!","content": [{"type": "text/plain", "value": "test!"}]}'

Однако я хотел бы заменить тело сообщения на HTML, я изменил тип содержимого на text / html, и он работает очень небольшая строка html, однако новые строки разбивают ее и не удается отправить, и я получаю сообщение об ошибке:

{"errors":[{"message":"Bad Request","field":null,"help":null}]}

В идеале я хотел бы сохранить тело HTML в качестве переменной и отправить электронное письмо как this:

$messagebody="<b> test</b>"
  curl --request POST \
      --url https://api.sendgrid.com/v3/mail/send \
      --header 'Authorization: Bearer YOUR_API_KEY' \
      --header 'Content-Type: application/json' \
      --data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sendeexampexample@example.com"},"subject": "Hello, World!","content": [{"type": "text/plain", "value": "$messagebody!"}]}'

Но я получаю электронное письмо, содержащее '$ messagebody', а не содержимое переменной, как я могу отправить html электронное письмо?

...