ssmtp
это всего лишь одна из многих оболочек Sendmail. Все они принимают сообщение на стандартном вводе и, необязательно, список адресов в качестве аргументов командной строки, и все они предлагают двоичный файл с именем, sendmail
который реализует (по крайней мере, основные функции) традиционный API командной строки Sendmail. Но, собственно говоря, это сообщение должно быть правильно сформированным сообщением RFC822. Как минимум, он должен иметь Subject:
заголовок.
ssmtp address@example.com <<<$'Subject: testing 1...2...3'
(С ssmtp
, sendmail
это просто символическая ссылка на ssmtp
. Postfix, Exim, и я полагаю, что любой другой MTA Provides: mail-transport-agent
имеет аналогичное расположение, за исключением, конечно, sendmail
где sendmail
двоичный файл "реальная вещь".)
Чаще всего вы можете собрать простое электронное письмо с документом здесь.
/usr/lib/sendmail -oi -t <<____HERE
Subject: testing
To: recipient@example.net
Here we interpolate the shell variable $result
____HERE
(Опция Sendmail -t
говорит, что нужно взять список получателей из заголовков сообщения, которое вы получаете при стандартном вводе. Точный путь к Sendmail будет отличаться для разных платформ.)
Другим распространенным вариантом является объединение вывода нескольких команд. Позаботьтесь о том, чтобы между заголовками и телом сообщения была пустая строка («шея»).
( printf "Subject: random number\n\n"
dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -D -An ) |
sendmail elsewhere@example.org
Для чего-либо, кроме очень простых текстовых сообщений ASCII, вам нужно понять, как составить правильное сообщение MIME, и в этом случае обычно имеет смысл использовать подобный инструмент mutt
. Некоторые платформы имеют mail
или mailx
которые знают, как отправлять вложения и текст не-ASCII, но это не полностью переносимо.
Проблема здесь не в том, чтобы найти клиента, который может принять сообщение электронной почты и попытаться отправить его, а в том, чтобы настроить его для специфики Gmail, для чего MTA должен знать имя пользователя и пароль для использования на удаленном сервере, чтобы чтобы иметь возможность использовать его в качестве исходящего SmartHost.
За кулисами, как большинство клиентов mutt
, mailx
и т. Д., Как правило, просто sendmail
скрываются, чтобы передать сообщение из системы.