
Ссылка на статью в формате MarkDown для Curl, кодировка RU.UTF-8
Отправка письма в терминале через Яндекс
Адрес страницы: https://nixscript.ru/bash-mail
По сути есть описания в сети, как это делать, но Яндекс не стоит на месте, постоянно борется со спамерами и недобросовестными рекламщиками, за что им респект и уважуха. Но эта борьба заставляет и добросовестных заниматься научным тыком.
Так вот. Стоит задача отправки письма из терминала без лишних наворотов. А именно, почтовый сервер не нужен. Лишний. А письма отправлять надо. И для решения проблемы подойдёт CURL. К тому же у меня есть почта для домена. Если кто-то знает как делать то же самое имея простой адрес на яндексе, без почты для домена, напишите мне, чтобы я мог рассказать об этом миру.
Что нам нужно?
PddToken берём здесь.
Ну и CURL должен быть установлен.
Теперь создаём текстовый документ по следующему шаблону:
From: "Автор Письма" email@address.tld
To: "Получатель Письма" recipient@address.tld
Cc: "Тот Кто В Копии" copy_reciever@address.tld,
"Другой получатель копии" other_reciever@address.tld
Subject: Здесь тема сообщения
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: ru
Здравствуйте!
Решил немного поспамить, так что вы попали :-D
---
С уважением,
Ваш Спаммер!
Имейте ввиду, я категорически против рассылки спама! В примере про спам написано для веселья, а не для инструкции к действию. :-)
И так, письмо у нас готово, теперь надо слепить команду, которая будет длинной и не простой:
curl -H 'PddToken: WHPDSNPN7RS7PY5U5Z3BCKHGX4VD4WWATJFPXTWQMBZRPHEGFLQW'\
--mail-from "<email@address.tld>"\
--mail-rcpt "<recipient@address.tld>"\
--mail-rcpt "<copy_reciever@address.tld>"\
--mail-rcpt "<other_reciever@address.tld>"\
--ssl-reqd --url 'smtps://smtp.yandex.ru:465'\
--upload-file mail.txt --user 'user@yandex.ru:PASSWORD' --insecure
Не пытайтесь использовать PddToken из примера. Это не токен. Это рандомный путь моих пальцев по клавиатуре :-)
Теперь сравните адреса в письме и в команде. То что в письме попадает в строки To и Cc, в команде попадает в опцию --mail-rcpt. На каждый адрес свой экземпляр опции. Если в письме будет, а в команде нет, отправится только туда, куда указано в команде, хотя в письме будут указаны все адреса.
Насчёт необходимости опции --user не уверен, ведь токен привязан к пользователю, но убирать не стал. Не криминалю, поэтому не мешает.
При желании можно всё запихнуть в скрипт.
Автор: Grigruss 16.08.2018 vk@nixscript
Статья написана в формате MarkDown и сконвертирована в HTML с помощью скрипта Parsedown.