Продвинутая отправка почты из консоли

Есть множество статей как отправить почту из консоли терминала Linux. Но в основной своей массе, это всё касается уже настроенного почтового сервера. А если нужно отправить почту используя настройки SMTP с авторизацией, указанием кодировки и вложением в виде файла? Их есть у меня (с). Ниже пример:

echo "Test text" | mail -e 'set content_type=text/html' -v -S sendcharsets=utf-8,iso-8859-1 -s "Результат тестирование" -S smtp="асываo.ru:587" -S ssl-verify=ignore -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="vlg1-Noreply@interrao.ru" -S smtp-auth-password='ываывываы' -S from=noreply@ывывсывс.ru ывсывсыв@сывасывсыв.ru </var/tmp/res.html

Этот пример вышлет письмо в кодировке UTF-8, со вложенным файлом res.html. Авторизация по логину-паролю, с шифрованием start SSL.

как отправить почту из консоли терминала Linux

Другие статьи на эту тему тут

SSL certificate problem при клонировании git

При клонировании при помощи git репозитария, возникла ошибка «SSL certificate problem». Обычно это означает что корневой сертификат не является доверенным. В моём случае, всё хорошо, просто тов. Касперский лезет туда куда не нужно бы лезть — а именно для того чтобы перехватывать трафик пропускает весь трафик на порту 433 через себя, подсовывая свой корневой сертификат. Отключить сиё в виду определенных причин я не могу, потоэтому придётся научить git игнорировать ошибки проверки сертификата. Сделать это можно двумя способами: длинным и коротким:

git config --global http.sslVerify false

Ну а далее, как обычно:

git clone https://git.xn--укацукацук.xn--p1ai/donpadlo/3dmodels.git

Git чуть ругнётся, но клон сделает:

SSL certificate problem

Еще кое-что о git можно почитать тут

Как скачать из консоли файл с яндекс.диска

Редко, но бывают ситуации, что под рукой только консоль терминала, а нужно скачать файл размещенный на яндек.диске (скачать с яндекс диска из консоли). Для решения такой ситуации есть утилита wldhx.yadisk-direct. Установим её:

pip3 install wldhx.yadisk-direct

После установки, закачка (скачать с яндекс диска из консоли) сводится к одной команде:

curl -L $(yadisk-direct https://disk.yandex.ru/d/JswxXZvффvJpPA) -o kop.rar
скачать с яндекс диска из консоли

Другие интересные решения для работы в консоли здесь. Ссылка на оригинальный репозитарий здесь

Update 26/08/2025: иногда установленный скрипт не находится без пути. Полезно посмотреть где оно при помощи:

whereis yadisk-direct

Red OS 7.3 настройка ssmtp

Часто бывает, что настраивать полноценный почтовый сервер на виртуалке нет ни необходимости ни желания, а почту отправлять…желание есть. Для этого и служит ssmtp. Фактически он подменяет в системе почтовую систему, и отправляет почту используя чужие почтовые сервера — например mail. yandex, gmail и т.д. Естественно понадобится учетная запись на этой почтовой системе, и открытый доступ для получения/отправки почты из вне. Далее установка и настройка ssmtp применительно к mail.yandex.ru

Установка ssmtp:

dnf install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/s/ssmtp-2.64-14.el7.x86_64.rpm

Далее откроем /etc/ssmtp/ssmtp.conf и приведем в соответствии с вашими учетными данными:

hostname=localhost
FromLineOverride=YES
AuthUser=моя_почта@yandex.ru
AuthPass=мой_пароль
smtp.yandex.ru:465
rewriteDomain=yandex.ru
UseTLS=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
DEBUG=YES

Так-же в /etc/ssmtp/revaliases нужно создать алиас вида:

root:моя_почта@yandex.ru:smtp.yandex.ru:465

И создать символическую ссылку, подменяющую sendmail:

ln -s /usr/sbin/ssmtp /usr/sbin/sendmail

На этом и всё. Попробовать отправить письмо можно прямо из консоли:

echo "Test text" | mail -s "Test title" -r моя_почта@yandex.ru donpadlo@gmail.com

MySQL: выгрузка результата запроса в файл

Одним из способов является — воспользоваться встроенным функционалом MySQL. Например так мы выгрузим результат запроса в файл формата csv:

select  
	b_form_result.ID, 
	b_form_result.DATE_CREATE, 
	b_form_result.STATUS_ID, 
	b_form_result.FORM_ID, 
	b_form_result_answer.USER_TEXT, 
	b_form_result_answer.ANSWER_TEXT_SEARCH, 
	b_form_result_answer.ANSWER_TEXT, 
	concat("https://wfcwerfe.ru/upload/",SUBDIR,"/",b_file.FILE_NAME) 
from    
	b_form_result  
	left join b_form_result_answer on b_form_result_answer.RESULT_ID=b_form_result.ID 
	left join b_file on b_file.ID=b_form_result_answer.USER_FILE_ID 
where 
	b_form_result.TIMESTAMP_X>"2023-12-06 16:37:26" 
	INTO OUTFILE '/tmp/res.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
1 6 7 8 9 10 60