Многие для отправки писем из консоли ставят дополнительные утилиты вроде
mailx или mutt. Но часто этого не нужно - все умеет curl.▪️ Простейшая отправка письма
curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--user "admin@networkadmin.ru:MySecurePass" \
--upload-file ~/letter.txt
Пример letter.txt:
From: "Admin" <admin@networkadmin.ru>
To: "User" <user@domain.ru>
Subject: Test mail from curl
Hello from curl!
Заголовки (From, Subject и др.) задаются прямо в файле, и можно указывать любые значения.
▪️ Как спрятать пароль
Хранить пароль в команде небезопасно. Вместо этого используем ~/.netrc:
machine smtp.networkadmin.ru login admin@networkadmin.ru password MySecurePass
machine smtp.another.ru login user@another.ru password StrongPass123
Теперь команда проще и безопаснее:
curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--netrc \
--upload-file ~/letter.txt
▪️ Работа с шифрованием
📍 Требовать TLS:
curl --ssl-reqd ...
📍 Автоматически использовать TLS, если поддерживается:
curl --ssl ...
📍 Для SMTPS (порт 465) достаточно:
curl --url "smtps://smtp.networkadmin.ru" ...
▪️ Указание HELO/EHLO. Можно явно задать имя клиента:
curl --url "smtp://smtp.networkadmin.ru/myhost.domain.ru" ...
#SMTP #curl
🧑💻 NetworkAdmin