logo

nixscript

Keep it simple, stupid !

Ссылка на статью в формате 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.

Вверх 🡑