Разное

Sendmail командная строка: linux — Как отправить сообщение на почту из командной строки линукса

Содержание

Самый простой способ отправить однострочную почту через командную строку, используя gmail?

ssmtpэто всего лишь одна из многих оболочек Sendmail. Все они принимают сообщение на стандартном вводе и, необязательно, список адресов в качестве аргументов командной строки, и все они предлагают двоичный файл с именем, sendmailкоторый реализует (по крайней мере, основные функции) традиционный API командной строки Sendmail. Но, собственно говоря, это сообщение должно быть правильно сформированным сообщением RFC822. Как минимум, он должен иметь Subject:заголовок.

ssmtp [email protected] <<<$'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: [email protected]

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 [email protected]

Для чего-либо, кроме очень простых текстовых сообщений ASCII, вам нужно понять, как составить правильное сообщение MIME, и в этом случае обычно имеет смысл использовать подобный инструмент mutt. Некоторые платформы имеют mailили mailxкоторые знают, как отправлять вложения и текст не-ASCII, но это не полностью переносимо.

Проблема здесь не в том, чтобы найти клиента, который может принять сообщение электронной почты и попытаться отправить его, а в том, чтобы настроить его для специфики Gmail, для чего MTA должен знать имя пользователя и пароль для использования на удаленном сервере, чтобы чтобы иметь возможность использовать его в качестве исходящего SmartHost.

За кулисами, как большинство клиентов mutt, mailxи т. Д., Как правило, просто sendmailскрываются, чтобы передать сообщение из системы.

Отправка почты из командной строки (консоли) Linux

В данной статье мы рассмотрим основные утилиты для отправки электронных писем по SMTP из консоли Linux – mail/mailx/mutt. Данная инструкция применима ко всем современным дистрибутивам Linux.

Для отправки почты из командной строки Linux вам нужно установить Mail User Agent, которые умеет подключаться к smtp серверам для отправки и получения почты.

В первую очередь рассмотрим утилиту mail (mailx). Для ее установки, выполните:

Mailx содержит в себе несколько утилит для работы с почтой, мы же подробно остановимся на mail.

Обратите внимание, что на вашем хосте обязательно должен быть установлен какой-нибудь почтовый сервер. Например, postfix или sendmail:

# yum install sendmail –y

Основные опции при отправке писем:

  • -s — Subject:
  • -c — Cc:
  • -b — BCc:
  • -r — From:

Чтобы отправить простое сообщение из консоли Linux, воспользуйтесь командой:

# echo "Это тестовое письмо" | mail -s "Проверка отправки почты" [email protected]

Проверьте, что письмо доставлено в ящик.

Если вам нужно посмотреть подробные логи отправки писем по SMTP, их можно посмотреть в файле:

# cat /var/log/maillog

Без указания дополнительных опций письмо отправляется с дефолтного почтового ящика и скорее всего будет помечено как спам в большинстве популярных почтовых сервисах.

Чтобы указать другого отправителя письма (mail from), используйте ключ -r:

# echo "Это тестовое письмо 2" | mail -s "Проверка отправки почты 2" -r [email protected] [email protected]

Если нужно отправить письмо нескольким получателям, перечислите их через запятую:

# echo "Это тестовое письмо 3" | mail -s "Проверка отправки почты 3" -r [email protected] [email protected], [email protected]

Как видите, письмо было отправлено двум получателям. А с помощью ключа -c вы можете отправить копию письма на указанный ящик:

# echo "Это тестовое письмо 4" | mail -s "Проверка отправки почты 4" -r [email protected] ru -c [email protected]

Если вам нужно прикрепить к письму файл, укажите путь к файлу в параметре –a.

# echo "Файл во вложении" | mail -s "Проверка вложения" -a /root/test.txt -r [email protected] [email protected]

В указанных почтовый ящик должно прийти письмо с вложением. Если нужно отпрравить два или более файлов, добавьте каждый файл через собственный атрибут –a:

# echo "Вложены 2 файла " | mail -s "Вложение нескольких файлов " -a /root/test.txt -a /root/message.log -r [email protected] [email protected]

Вы можете отправить письмо через конкретный SMTP сервер. Его имя и порт подключения указываются в параметре -S smtp= :

# echo "Messages smtp server" | mail -s "Test smtp server" -S smtp="build-centos.ru:25" -r [email protected] [email protected]

Если удаленный SMTP сервер требует авторизации перед отправкой, вы можете указать имя пользователя и пароль с помощью параметров -S smtp-auth-user и -S smtp-auth-password.

# echo "Test auth mailbox" | mail -v -s "Test auth" -S smtp="build-centos.ru:25" -S smtp-auth=login -S smtp-auth-user="[email protected]" -S smtp-auth-password="password" -S [email protected] [email protected]

При запуске этой команды перед вами появятся список SMTP команд для подключения, авторизации и отправки почты.

Если для отправки нужно использовать TLS шифрование и игнорировать проверку подлинности сертификата сервера, добавьте параметры:

-S smtp-use-starttls
-S ssl-verify=ignore

Чтобы не задавать все параметры в командной строке, вы можете указать их в файле ~/.mailrc. Например, добавьте в этот файл такие строки:

set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set [email protected]
set smtp-auth-password=sdf#23ddsh4sq9-
set from= [email protected]

Теперь для отправки письма через релей Gmail с аутентификацией достаточно выполнить команду:

$ echo "Test mail " | mail -v -s "Testing gmail auth" [email protected] ru

Вы можете использовать команду отправки почты для в своих bash скриптом. Например, создайте следующий скрипт, которые будет отправлять вам информацию по свободному месту на дисках:

#!/bin/bash
du -h | mail -s "Server 1 disk usage" [email protected]

Добавьте этот скрипт в планировщик cron и вы будете регулярно получать письма с информацией о свободном месте на вашем сервере.

0 0 * * * /home/root/freespace.sh

Еще одна популярная утилита для отправки почты в Linux это mutt:

# sudo apt-get install mutt — для Debian/Ubuntu

# yum install mutt -y — для CentOS/Redhat

Синтаксис mutt такой же, как и у mail/ mailx:

# echo "Text messages mutt" | mutt -s "Test mutt" [email protected]

Таким образом, вы можете легко отправлять письма из командной строки, встраивать отправку email оповещений в свои bash скрипты или ватчдоги (удобно для контроля их выполнения).

НОУ ИНТУИТ | Лекция | Программа sendmail

Аннотация: В данной лекции: рассматриваются файлы и каталоги sendmail, синтаксис команд sendmail, файл конфигурации sendmail.

В этой лекции

  • Файлы и каталоги sendmail
  • Синтаксис команд sendmail
  • Файл конфигурации sendmail

Чтобы правильно
посылать и принимать почту от других систем,
на почтовом сервере под управлением ОС Linux
должна быть установлена программа —
почтовый транспортный агент (Mail Transport Agent —
MTA). Работа МТА заключается в обработке
почтовых сообщений, а не в доставке их
локальному пользователю, как иногда думают.
Если МТА принимает сообщение, направленное
локальному пользователю, то он просто
передает его другой программе, которая
занимается его доставкой. Сообщения,
адресованные пользователям удаленных
хостов, будут направляться либо на эти
хосты, либо передаваться узлу, который
сможет далее переслать их по назначению.
После того как сообщение передано, работа
МТА завершена.

Для ОС Linux существует довольно
много программ — почтовых транспортных
агентов. Некоторые из них обладают более
широкой функциональностью, в то время как
другие легче в работе, с точки зрения
администратора почтовой системы.
Прабабушкой всех МТА-программ для
платформы UNIX является программа sendmail.
Довольно часто ее называют самой
универсальной программой МТА, но в то же
время она наиболее сложна в настройке.
Компоненты программы sendmail описаны в этой
лекции. Вопросы конфигурирования sendmail для
работы на почтовом сервере под управлением
ОС Linux рассмотрены в
«Установка и конфигурирование sendmail»
, «Установка и
конфигурирование sendmail».

sendmail и безопасность

Программа sendmail используется на
многих платформах уже на протяжении
нескольких десятков лет. В первые годы ее
применения были выявлены практически все
черные входы и дыры в программе, которые
позволяли хакерам проникать в систему.
Например, общеизвестна реакция sendmail на SMTP
команды debug и wiz.
Получив при анонимном SMTP-сеансе
посредством этих команд доступ в систему,
через другие программы хакер мог получить
права пользователя root.
Когда программа sendmail стала популярной, то
все черные ходы были закрыты и ошибки в
программе были исправлены.

К сожалению, многие
администраторы почтовых систем отвергают
возможность применения sendmail, ссылаясь на
старые черные ходы в ней, которые уже давно
закрыты. Конечно, время от времени
обнаруживаются новые ошибки в программе,
которые позволяют получить
несанкционированный доступ к системе.
Однако это случается не чаще, чем с другими
пакетами для работы с почтой. Так как
квалификация хакеров в сети Internet с каждым
годом повышается, соответствующим образом
должна расти сложность программного
обеспечения. Единственное, что может
противопоставить растущему числу хакеров
программа sendmail, это наличие
профессиональных программистов, которые
работают над ее улучшением. Они достаточно
квалифицированы, чтобы постоянно
исправлять и улучшать программный код sendmail,
сохраняя его стабильность и уровень
безопасности. Не так много пакетов для
работы с почтой могут похвастаться тем же.

Так что было бы неосмотрительно
только из-за слухов о неблагонадежности
sendmail отказываться от ее преимуществ.

Файлы и каталоги sendmail

Программа sendmail не работает в
одиночку. Для обеспечения нормальной
работы sendmail требуется наличие определенных
файлов и каталогов. В этом разделе описаны
файлы и каталоги, которые требуются для
работы программы sendmail. Иногда, в
зависимости от заданной конфигурации,
могут понадобиться и другие файлы. В
«Установка и конфигурирование sendmail»

описаны некоторые дополнительные файлы,
необходимые для работы sendmail.

Программа sendmail

Путь: /usr/sbin/sendmail

Основной файл конфигурации

Путь: /etc/sendmail.cf

Для правильной работы sendmail на
локальном почтовом сервере необходимо
сконфигурировать ее в соответствии со
своими специфическими требованиями. Все
определения, касающиеся обработки почты
программой sendmail, хранятся в файле
конфигурации /etc/sendmail.cf.
Все они называются наборами правил (rule set).
Наборы правил применяются в sendmail для
анализа адресов отправителя и получателя
сообщения, а также для определения способа
его доставки получателю. При запуске
программа sendmail читает содержимое файла
конфигурации, так что, если в него вносились
какие-либо изменения, нужно перезапустить
sendmail, чтобы они возымели действие.

Каталог очереди почтовых сообщений

Путь: /var/spool/mqueue

Каталог mqueue
создается для хранения всех почтовых
сообщений, которые ожидают обработки в
очереди. Владельцем этого каталога
является пользователь root.
Программа sendmail удостоверяется в том, что
все файлы очереди почтовых сообщений
хранятся в этом каталоге и имеют
соответствующие права доступа, которые не
позволяют обычным пользователям читать
сообщения, находящиеся в очереди.
Местоположение каталога очереди почтовых
сообщений можно изменять. Это делается либо
изменением соответствующего параметра в
файле sendmail.cf, либо
запуском sendmail из командной строки со
специальным параметром.

Программа для отображения состояния очереди почтовых сообщений

Путь: /usr/sbin/mailq

Программа mailq
является символической связью с программой
sendmail. При ее запуске программа sendmail
отображает содержимое очереди почтовых
сообщений.

Создание базы данных псевдонимов

Путь: /usr/sbin/newaliases

Программа newaliases
также является символической связью с
программой sendmail. При ее запуске считываются
текстовые псевдонимы из файла aliases и с помощью стандартного пакета по
поддержке баз данных в ОС Linux создается база
данных псевдонимов. В ОС Linux при этом обычно
создается хешированный файл базы данных.

Отправка почты из командной строки Linux

главная
— Статьи — Linux, FreeBSD

Теги: Linux Почтовый сервер

Устанавливаем команду mail.

CentOS/RedHat:

# yum install mailx

Ubuntu/Debian:

$ sudo apt-get install mailutils

После этого можно выполнять консольную команду mail:

$ echo «Message Body» | mail -s «Message Subject» [email protected]

 

Поле From:

Чтобы изменить поле From: в теле письма, используйте ключ -r:

$ echo «Message Body» | mail -s «Message Subject» -r «[email protected]» [email protected]

Это может несколько улучшить спам-рейтинг с точки зрения принимающих серверов. Например, вы хотите с какого-то внутреннего сервера отправлять уведомления на свой ящик в gmail, но gmail может отклонить письмо (да и не только gmail, ясное дело). Пример: есть шлюз с внешним ip 1.2.3.4 и внутренним ip 192.168.24.1. Внутренний сервер имеет только внутренний ip (lan или dmz). При отправке письма командой mail письмо будет отправлено через внешний шлюз (1.2.3.4), и его ip прекрасно поймет внешний почтовик.

Что «увидит» gmail? Что пришло письмо с ip 1.2.3.4, а отправитель, скажем, [email protected] (ну или как у вас hostname). Ясное дело, это не публичный адрес и его срочно надо в спам! Что делать нам? Не поднимать же полноценный почтовый сервер (а почему бы и нет ;))

Вполне может быть, что у вашего внешнего ip уже есть какое-либо имя, выданнео провайдером (например, s4-3-2-1.provider.com). Узнать это можно командой «ping -a 1.2.3.4». Или вы можете на любом вашем хостинге создать A-запись для ip 1.2.3.4 с именем что-то типа srv1234.yourdomain.com и это имя вписать в ключ -r:

$ echo «Message Body» | mail -s «Message Subject» -r «[email protected] yourdomain.com» [email protected]

$ echo «Message Body» | mail -s «Message Subject» -r «[email protected]» [email protected]

где [email protected] — произвольно взятое имя почтового ящика.

Внешний почтовый сервер терпимее отнесется к письму, в поле From: которого стоит название хоста, с которого и пришло письмо.

 

Отправка тела письма из файла

Если тело письма находится в отдельном файле, можно напрямую использовать его для отправки письма. Это может быть полезным при вызове команды mail из скриптов.

$ mail -s «Message Subject» [email protected] < /var/txt/mailbody.txt

 

Другие опции

Отправить скрытую копию письма:
-b address

Отправить копию письма:
-c address

И там, и там список получателей разделяется запятыми.

Авторизуйтесь для добавления комментариев!

Как: Отправить Почту через SMTP Сервер используя Командную Строку

SMTP (Simple Mail Transfer Protocol) — это широко используемый сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.

В данной инструкции показано, как с помощью команды ‘telnet’ подключаться к почтовому SMTP серверу и отправлять электронную почту.

Step 1: Открываем соединение к почтовому SMTP серверу с Вашего компьютера

$ telnet smtp.domain.ext 25
220 smtp.domain.ext ESMTP Sendmail ?version-number?; ?date+time+gmtoffset?
  • smtp.domain.ext — Ваш почтовый сервер;
  • 25 — Порт по умолчанию для SMTP.

Step 2: Представляемся сервису и указываем свое доменное имя или IP-адрес

В качестве параметра HELO можно задать local.domain.name или все что угодно, поскольку сервер не выполняет проверку его достоверности, что является одним из недостатков данного протокола.

> HELO local.domain.name
250 smtp.domain.ext Hello local.domain.name [xxx.xxx.xxx.xxx], pleased to meet you

Step 3: Указываем Email отправителя

> MAIL FROM: [email protected]
250 2.1.0 [email protected] ext... Sender ok

Step 4: Указываем Email получателя

> RCPT TO: [email protected]
250 2.1.5 [email protected] Recipient ok

Step 5: Для написания сообщения, набираем DATA и нажимаем ‘Enter’

> DATA
354 Enter mail, end with "." on a line by itself

Step 6: В первой строке набираем ‘SUBJECT: Тема Письма’ и дважды жмем ‘Enter’

> SUBJECT: Test message

Step 7: Продолжаем набирать текст письма

Hello,
this is a TEST message, 
please don't reply.
Thank you.

Step 8: Для отправки письма, в последней строке поставьте только одну точку (.) и нажмите ‘Enter’

> .
250 2.0.0 ???????? Message accepted for delivery

Step 9: Закройте соединение

> QUIT
221 2.0.0 server.com closing connection

5. Командная строка Exim | LinuxShare

Перевод выполнен Алексеем Паутовым в рамках
некоммерческого проекта RussianLDP
(http://www. rldp.ru/). Именно на этом сайте
и надлежит искать новые версии, если таковые будут.

5. Командная строка Exim

Командная строка exim имеет стандартную UNIX-форму
последовательности опций, которые начинаются с символа дефиса, за которым
следует несколько параметров. Опции совместимы с основными опциями Sendmail,
а также есть дополнительные опции, некоторые из которых совместимы с Smail 3.
Определённые комбинации опций не имеют смысла, при попытке их использования
происходит ошибка. Формат параметров зависит от того, какие опции заданы.

5.1. Установка опций именем программы

Если exim вызывается под именем mailq, он ведёт
себя как будто перед другими опциями присутствует опция -bp. Опция
-bp запрашивает список содержимого почтовой очереди и выводит его на
стандартный вывод. Эта возможность имеется для совместимости с некоторыми
системами, содержащими команды с использованием этого имени в одной из
стандартных библиотек, символически связанных с /usr/sbin/sendmail
или /usr/lib/sendmail.

Если exim вызывается под именем rsmtp, он ведёт
себя, как будто перед другими опциями присутствует опция -bS, для
совместимости с Smail. Опция -bS используется для подсчёта числа
сообщений в пакетном SMTP-формате.

Если exim вызывается под именем rmail, он ведёт себя, как будто
перед другими опциями присутствуют опции -i и -oee, для
совместимости с Smail. Имя rmail используется как интерфейс
некоторыми UUCP-системами.

Если exim вызывается под именем runq, он ведёт себя, как будто
перед другими опциями присутствует опция -q, для совместимости с
Smail. Опция -bS используется для запуска одиночного
процесса обработчика очереди.

Если exim вызывается под именем newaliases, он ведёт себя, как
будто перед другими опциями присутствует опция -bi
для совместимости с Sendmail.
Эта опция используется для пересборки файла алиасов Sendmail.
Exim понятия не имеет об одиночном файле алиасов, но может быть
сконфигурирован для выполнения с опцией -bi.

5.2 Доверенные и административные пользователи

Некоторые опции exim доступны только для
доверенных пользователей (trusted users), и другие доступны
лишь для административных пользователей (admin users).
В описании ниже фразы «пользователь exim» (Exim user) и «группа Exim»
(Exim group) означают пользователя и группу, заданных как EXIM_USER и
EXIM_GROUP в Local/Makefile, или установленных опциями
exim_user и exim_group конфигурационного файла.
Они не обязательно должны использовать имя exim.

Доверенные пользователи это root, пользователь exim
любой пользователь, перечисленный в конфигурационной опции
trusted_users, и любой пользователь, текущая или дополнительная группа
которого перечислена в конфигурационной опции trusted_groups.
Обратите внимание, что группе exim доверие автоматически не устанавливается.

Доверенным пользователям всегда разрешено использовать опцию -f
или продолжение строки From для определения отправителя конверта сообщения,
принятого exim через локальный интерфейс (смотрите ниже опции -bm и
-f). Смотрите опцию untrusted_set_sender для способа разрешить
недоверенным пользователям устанавливать отправителя конверта.

Для доверенных пользователей никогда не проверяется содержимое заголовков
From: и никогда не добавляется строка заголвка Sender:.
Кроме того, любые существующие строки Sender:
во входящих локальных (не по TCP/IP) сообщениях не удаляются.

Также доверенные пользователи могут задать имя хоста, адрес хоста, адрес
интерфейса, имя протокола, значение ident и аутентификационные данные при
отправке сообщения локально. Таким образом, они могут вставить в локальную
очередь exim сообщения, которые имеют характеристики
сообщений, полученных с удалённых хостов. Недоверенные пользователи, при
некоторых обстоятельствах, используют -f, но никогда не могут
устанавливать другие значения, доступные для доверенных пользователей.

Административный пользователь: root, пользователь exim,
любые другие пользователи, которые являются членами группы exim или любой
группы, перечисленной в конфигурационной опции admin_groups.
Текущая группа не должна быть одной из этих групп.

Административным пользователям разрешено просматривать список очереди
и выполнять определённые операции над сообщениями, например, вызывать
принудительную ошибку доставки сообщения. Также необходимо быть
административным пользователем, чтобы видеть полную информацию,
предоставляемую монитором exim и полную отладочную информацию.

По умолчанию использование опций -M, -q, -R и
-S для попытки доставки доставки сообщения в очереди, доступно
только административным пользователям. Однако, это ограничение может быть
ослаблено установкой опции prod_requires_admin
в false (то еесть, задав no_prod_requires_admin).

Точно так же использование опции -bp
для получения списка всех сообщений в очереди доступно лишь административным
пользователям, если queue_list_requires_admin не установлена в false.

Предупреждение: Если Вы конфигурируете Вашу систему так,
чтобы административные пользователи имели возможность редактировать
конфигурационный файл exim, Вы даёте этим пользователям простой способ
получить root-доступ. Дальнейшее обсуждение этой проблемы в начале главы
6.

5.3 Опции командной строки

Командные опции описаны в алфавитном порядке, ниже.

  • :
    Это псевдо-опция, назначение которой указать конец опций и обработать
    последующие параметры как параметры, а не опции, даже если
    они начинаются с дефисов.

  • —help: Эта опция заставляет exim вывести
    несколько фраз о том, что он такое (какой он). Тот же самый вывод
    генерируется при запуске бинарного файла exim без опций и параметров.

  • -B<type>: Это опция sendmail
    для выбора 7-ми или 8-ми битной обработки. Exim полностью 8-ми битный,
    он игнорирует эту опцию.

  • -bdЭта опция запускает exim как
    демон, ожидающий входящих SMTP-соединений. Обычно опция -bd
    комбинируется с опцией -q<time> для задания, что демон
    обработчика очереди также должен периодически выполняться.

    Опция -bd может использоваться
    только административными пользователями. Если установлены опции
    -d (отладка) или -v (проверка), демон не отключается
    от контрольного терминала. При работе таким способом он может быть
    остановлен нажатием Ctrl+C.

    По умолчанию exim ждёт входящие подключения на стандартном SMTP-порту на
    всех работающих интерфейсах хоста. Однако, он может слушать на других портах,
    на нескольких портах и только на определённых интерфейсах.
    Раздел 13 сожержит описание опций, управляющих этим.

    Когда слушающий демон запущен без использования -oX
    (то есть, не отменяя нормальную конфигурацию), он пишет идентификатор
    процесса в файл с именем exim-daemon.pid,
    находящийся в каталоге спула exim. Это местоположение может быть перезадано
    установкой PID_FILE_PATH в Local/Makefile. Файл записывается в то
    время, когда exim всё ещё работает от пользователя root.

    Когда -oX используется в командной строке
    для запуска слушающего демона, идентификатор процесса не записывается в
    pid-файл, находящийся по нормальному пути. Однако, опция -oP
    может быть использована для задания пути в командной строке,
    если pid-файл необходим.

    Сигнал SIGHUP может быть использован для
    непосредственного перевызова демона. Это необходимо сделать всякий раз,
    когда конфигурационный файл exim или файл, непосредственно в него включенный
    посредством .include, изменён, а также всякий раз,
    когда установлена новая версия exim. Нет необходимости делать это, когда
    изменяются другие файлы, на которые ссылаются из конфигурации
    (например, файлы алиасов), поскольку они перечитываются
    при каждом использовании.

  • -bdf: Эта опция имеет такой же эффект, как и
    -bd за исключением, что процесс никогда не отключается от терминала,
    даже если отладка не задана.

  • -be:
    Запускает exim в режиме тестирования раскрытий.
    Exim снимает с себя root-привилегии, чтобы предотвратить использование этого
    режима обычными пользователями для чтения недоступных им файлов.
    Если не задано никаких аргументов, exim выполняется в интерактивном режиме,
    запрашивая строки данных. Иначе, он обрабатывает каждый параметр по очереди.

    Если exim собран с USE_READLINE=yes в Local/Makefile, то он пробует
    динамически загрузить библиотеку libreadline каждый раз, когда опция
    -be используется без параметров командной строки.
    В случае успеха он использует функцию readline(), которая предоставляет
    обширные средства редактирования строки,
    для чтения тестовых данных. История строк поддерживается.

    Длинные выражения раскрытия могут быть разбиты на
    несколько строк, используя продолжения с обратным слэшем.
    Как в рабочей конфигурации exim, пустые символы игнорируются в
    начале строк продолжения. Каждый аргумент или строка данных проходят
    через механизм раскрытия строк и результат выводится. Значения переменных из
    конфигурационного файла (например, $qualify_domain) доступны, но значения
    специфичные для сообщения (например, $domain) не установлены,
    поскольку нет сообщения в обработке.

    Примечание: Если Вы используете этот механизм для тестирования поиска,
    и изменяете файлы данных или БД, которые используете, Вы должны выйти и
    рестартовать exim перед новой попыткой такого же поиска.
    Иначе, поскольку каждый процесс exim кэширует результаты поисков, Вы получите
    такой же результат, как и прежде.

  • -bF <filename>: Эта опция то же самое, что
    и -bf за тем исключением, что предполагается,
    что тестируемый фильтр системный. Дополнительные команды, которые доступны
    только в системном фильтре, также распознаются.

  • -bf <filename>:
    Эта опция запускает exim в режиме тестрования пользовательского фильтра:
    filename это файл фильтра, который будет тестироваться, и тестовое сообщение
    должно быть предоставлено на стандартном вводе. Если в фильтре нет зависимых
    от сообщения тестов, может быть предоставлен пустой файл.

    Если Вы хотите тестировать системный фильтр, используйте -bF
    вместо -bf. Вы можете использовать обе опции -bF и
    -bf в одной команде для проверки системного
    фильтра и пользовательского одновременно. Например:

    exim -bF /system/filter -bf /user/filter </test/message
    

    Это полезно, когда системный фильтр добавляет
    строки заголовка или устанавливает переменные фильтра,
    применяемые пользовательским фильтром.

    Если тестируемый файл фильтра не начинается с одной из специальных строк

    # Exim filter
    # Sieve filter
    

    то он берётся как нормальный файл .forward
    и проверяется на валидность в этой интерпретации.
    Смотрите секции 22.4 и
    22.6 для описания возможного содержимого
    нефильтровых списков перенаправления.

    Результаты команды exim, использующей -bf, если не обнаружены
    ошибки, являются списком действий, которые exim попробовал бы предпринять,
    если бы это было реальное сообщение. Более подробное рассмотрение
    тестирования фильтров дано в отдельной главе 54,
    озаглавленной Интерфейс Exim для фильтрации почты.

    Когда тестируется файл фильтра, отправитель конверта
    может быть задан при помощи опции -f
    или при помощи строки From в начале тестового сообщения.
    Различные параметры, которые бы обычно брались из адреса получателя конверта
    сообщения, могут быть установлены посредством дополнительных опций командной
    строки (смотрите последующие четыре опции).

  • -bfd <domain>:
    Эта опция устанавливает домен адреса получателя, когда файл фильтра
    тестируется с использованием опции -bf.
    Значение по умолчанию $qualify_domain.

  • -bfl <local part>:
    Эта опция устанавливает локальную часть адреса получателя, когда файл фильтра
    тестируется с использованием опции -bf. По умолчанию имя
    пользователя процесса, вызвавшего exim. Локальная часть должна быть указана с
    любым префиксом или суффиксом, поскольку именно в таком виде он появляется в
    фильтре при фактической доставке сообщения.

  • -bfp <prefix>:
    Эта опция устанавливает префикс локальной части адреса получателя, когда файл
    фильтра тестируется с использованием опции -bf.
    Значение по умолчанию пустой префикс.

  • -bfs <suffix>:
    Эта опция устанавливает суффикс локальной части адреса получателя, когда файл
    фильтра тестируется с использованием опции -bf.
    Значение по умолчанию пустой суффикс.

  • -bh <IP address>:
    Эта опция запускает поддельную SMTP-сессию как будто от заданного IP-адреса
    с использованием стандартного ввода и вывода. IP-адрес может включать номер
    порта в конце после точки. Например:

    exim -bh 10.9.8.7.1234
    exim -bh fe80::a00:20ff:fe86:a061.5678
    

    Когда задан адрес IPv6, он
    конвертируется в каноническую форму.
    В случае второго примера, выше, значение $sender_host_address
    после преобразования будет fe80:0000:0000:0a00:20ff:fe86:a061.5678.

    Комментарии относительно происходящего пишутся в
    стандартный файл ошибок. Они включают строки, начинающиеся с LOG для того,
    что должно быть запротоколировано. Это средство предоставлено для того, чтобы
    тестировать конфигурационные опции входящих сообщений для удостверения, что
    они реализуют необходимую политику. Например, Вы можете тестировать элементы
    управления релеем, используя -bh.

    Предупреждение 1: Вы не можете тестировать конфигурационные
    возможности, которые зависят от обратных вызовов ident (RFC 1413).
    Их нельзя произвести в тестировании с использованием опции -bh,
    поскольку отсутсвует входящее SMTP-соединение.

    Предупреждение 2: Обратные вызовы проверки адреса
    (смотрите раздел 39.32) также пропускаются при
    тестировании с использованием опции -bh. Если Вы хотите, чтобы эти
    обратные вызовы произошли, используйте опцию -bhc вместо -bh.

    Сообщения, доставленные в течение сессии тестирования отбрасываются,
    и никакие данные не записываются ни в один из реальных протоколов.
    Могут быть паузы, когда присходит поиск в DNS (или другой), и они могут
    исчерпать лимит времени. Опция -oMi может использоваться для
    определения специфического IP-адреса и порта, если есть такая необходимость.

    Утилита exim_checkaccess, упакованная (packaged) версия
    -bh, чей вывод только лишь говорит, допустим ли данный
    адрес получателя для данного хоста или нет. Смотрите раздел
    49.8.

  • -bhc <IP address>:
    Эта опция работает таким же образом, как и -bh
    исключая то, что обратный вызов проверки адреса выполняется, если требуется.
    Это включает запрос и обновление БД обратных вызовов.

  • -bi: Sendmail интерпретирует опцию
    -bi как запрос на ребилдинг своей БД алиасов.
    Exim не имеет представления об одиночном файле алиасов, и таким образом, он
    не может подражать такому поведению. Однако, вызовы
    /usr/lib/sendmail с опцией -bi имеют тенденцию появляться в
    различных скриптах, типа NIS make-файлах, таким образом,
    эта опция должна быть распознана.

    Если встречатеся опция -bi, то запускается команда, определённая
    как bi_command в конфигурационном файле, под uid и gid вызывашего exim.
    Если используется опция -oA, её значение передаётся
    команде как параметр. Команда, установленная bi_command, может не
    содержать аргументов. Команда может использовать exim_dbmbuild
    или другие срадства для перестройки файла алиасов, если это необходимо.
    Если опция bi_command не задана, вызов exim с
    -bi пустая команда.

  • -bm: Эта опция запускает процесс exim,
    принимающий входящие локально сгенерированные сообщения на текущем вводе.
    Получатели задаются как аргументы команды (кроме тех случаев, когда
    присутствует опция -t, см. ниже). Каждый аргумент может быть
    списком адресов, согласно RFC 2822, с разделителем в виде запятой.
    Это опция по умолчанию для выбора полного действия при вызове exim:
    предполагается, что не присутствует никакая другая конфликтующая опция.

    Если какие-либо адреса в сообщении неквалифицированные
    (не имеют домена), они квалифицируются значением опции
    qualify_domain или qualify_recipient.
    Опция -bnq (смотрите ниже) является способом подавить
    это для особых случаев.

    Проверки политик на содержимое локальных сообщений могут быть осуществлены
    при помощи не-SMTP ACL. Для дополнительных деталей смотрите главу
    39.

    В случае упешного приёма сообщения, код возврата ноль.
    Иначе, действием управляет установка опции -oe x: смотрите ниже.
    Формат сообщения должан соответствовать RFC 2822 за тем исключением, что для
    совместимости с Sendmail и Smail строка в одной из форм:

    From sender Fri Jan  5 12:55 GMT 1997
    From sender Fri, 5 Jan 97 12:55:01
    

    (опционально с днём недели и, возможно, дополнительным текстом после даты)
    может присутствовать в начале сообщения. Тут форматом спецификации не
    описывается эта строка. Exim распознаёт её по совпадению с регулярным
    выражением, заданным опцией uucp_from_pattern, которая может быть
    изменена в случае необходимости.

    Указанный отправитель обрабатывается, как если бы он давался
    как параметр опции -f, но если опция -f присутствует,
    её параметр используется вместо адреса, взятого из сообщения.
    Вызывающая exim программа должна работать от доверенного пользователя
    для установки отправителя сообщения.

  • -bnq:
    По умолчанию exim автоматически квалифицирует неквалифицированные адреса
    (то есть, без домена), которые появляются в сообщениях, посылаемых локально
    (не по TCP/IP). Эта квалификация применяется к адресам
    конверта и к строкам заголовков. Адрес отправителя квалифицируется
    с использованием значения опции qualify_domain, а адрес получателя с
    использованием qualify_recipient
    (у которой значение по умолчанию qualify_domain).

    Иногда квалификация не требуется. Например, если используется -bS
    (пакетный SMTP) для повторной передачи сообщений, пришедших с удалённого
    хоста, после контентного сканирования Вы, вероятно, не хотите квалифицировать
    неполные адреса в строках заголовков. Такие строки будут присутствовать
    только, если Вы не захотели включить проверку синтаксиса
    заголовков в соответствующей ACL.

    Опция -bnq подавляет всю квалификацию
    неквалифицированных адресов в сообщениях, приходящих на локальный хост.
    Когда она используется, неполный адрес в конверте вызывает ошибки
    (вызывающие отклонение сообщения), а неполные адреса в строках заголовка
    оставляются как есть.

  • -bP:
    Если эта опция даётся без параметров, то она выводит все конфигурационные
    опции exim на стандартный вывод. Значения одного или нескольких специфических
    параметров можно запросить, задав их имена как аргументы, например:

    exim -bP qualify_domain hold_domains
    

    Однако, любой параметр настройки, которому в
    конфигурационном файле предшествует слово hide, не показывается полностью
    никому, кроме административного пользователя. Для других пользователей вывод
    как в этом примере:

    mysql_servers = <value not displayable>
    

    Если configure_file задан как аргумент,
    выводится имя конфигурационного файла работающей конфигурациию.
    Если список конфигурационных файлов был задан, выводимое значение:
    имя реально использующегося файла.

    Если дан log_file_path или pid_file_path, выводятся
    имена каталогов, где пишутся протоколы и pid демона, соответственно.
    Если эти значения не установлены, протоколы пишутся в субкаталог спула с
    именем log, а pid-файл пишется непосредственно в каталог спула.

    Если опция -bP сопровождается именем с
    предшествующим ему +, например:

    ищется соответствие именованного списка любого типа (доменов, хостов,
    адресов или локальных частей) и выводится найденное.

    Если дано одно из слов router, transport или
    authenticator, сопровождаемое именем соответствующего драйвера,
    выводятся параметры настройки этого драйвера. Например:

    exim -bP transport local_delivery
    

    Вначале выводятся общие опции драйверов,
    сопровождаемые частными опциями драйвера. Список имён драйверов
    специфического типа может быть получен использованием слов
    router_list, transport_list или authenticator_list,
    а полный список всех драйверов с их параметрами настройки можно получить,
    используя routers, transports или authenticators.

  • -bp:
    Эта опция запрашивает список содержимого почтовой очереди
    на стандартный вывод. Если опция -bp
    сопровождается списком идентификаторов сообщений, то показываются
    только эти сообщения.

    Каждое сообщение очереди отображается как в этом примере:

    25m  2.9K 0t5C6f-0000c8-00 <[email protected]>
      red. [email protected]
      <other addresses>
    

    Первая строка содержит временной отрезок, который
    сообщение находится в очереди (в данном случае 25 минут), размер сообщения
    (2,9 kb), уникальный локальный идентификатор сообщения и отправителя
    сообщения, как содержится в конверте. Для рикошетов адрес отправителя пуст
    и появляется как <>. Если сообщение послано локально недоверенным
    пользователем, который изменил адрес отправителя по умолчанию, логин
    пользователя показывается в круглых скобках перед адресом отправителя.

    Если сообщение заморожено (приостановлена попытка его доставки), тогда в
    конце этой строки показывается текст *** frozen ***.
    Получатели сообщения (взятые из конверта, а не из заголовков)
    показаны в последующих строках. Адреса, по которым сообщение уже
    доставлено, отмечены символом D. Если оригинальный адрес раскрывается в
    несколько адресов через файл алиасов или форвардов, оригинальный
    показывается с D только, когда завершены доставки для всех дочерних адресов.

  • -bpa: Эта опция работает так же, как и
    -bp, но кроме того, она показывает
    доставленные адреса, сгенерированные из оригинального адреса верхнего
    уровня в каждом сообщении при помощи алиасинга или форвардинга.
    Эти адреса помечены +D вместо просто D.

  • -bpc: Эта опция подсчитывает число сообщений
    в очереди и пишет общее количество на стандарный вывод.
    Пользование этим ключом разрешено только административным пользователям, если
    queue_list_requires_admin не является ложью.

  • -bpr: Эта опция работает так же, как и
    -bp, но вывод не сортируется в хронологическом порядке
    по прибытию сообщений. Это может ускорить вывод, когда в очереди много
    сообщений и особенно полезно, если вывод будет обработан способом,
    не нуждающимся в сортировке.

  • -bpra: Эта опция является комбинацией
    -bpr и -bpa.
  • -bpru: Эта опция является комбинацией
    -bpr и -bpu.

  • -bpu: Эта опция работает как -bp, но
    показывает только недоставленные адреса верхнего уровня для
    каждого отображённого сообщения. Адреса, сгенерированные алиасингом
    и форвардингом, не показываются, если сообщение не было задержано после
    обработки роутером с установленной опцией one_time.

  • -brt: Эта опция для тестирования правил повторов,
    и она должна сопровождаться до трёх параметров. Она заставляет exim искать
    правила повтора, которые совпадают со значением, и вывести их
    на стандартный вывод. Например:

    exim -brt bach.comp.mus.example
    Retry rule: *.comp.mus.example  F,2h,15m; F,4d,30m;
    

    Смотрите раздел 32
    для информации о правилах повторов exim. Первый аргумент, являющийся
    обязательным, может быть полным адресом в форме [email protected]
    или только именем домена. Если второй аргумент содержит точку, он
    интерпретируется как опциональное второе имя домена, если не найдено правил
    повтора для первого аргумента, используется второй. Это связано с поведением
    exim, когда ищется правило повтора для удалённого хоста: если правило не
    найдено, используется общее совпадение с почтовым доменом. В конце можно дать
    для использования в правилах повторов параметр, являющийся именем для
    специфической ошибки доставки. Например:

    exim -brt haydn.comp.mus.example quota_3d
    Retry rule: *@haydn.comp.mus.example quota_3d  F,1h,15m
    
  • -brw:
    Эта опция для тестирования правил перезаписи адресов, и она должна
    сопровождаться одним аргументом, состоящим из локальной части, без домена,
    или полным адресом с полным доменом. Exim выводит, как этот адрес был бы
    перезаписан для каждого возможного места его появления.
    Для дальнейших подробностей смотрите раздел 31.

  • -bS:
    Эта опция используется для пакетного ввода SMTP, который является
    альтернативным интерфейсом для локальной неинтерактивной передачи сообщений.
    Можно передавать много сообщений за один запуск. Однако, несмотря на его
    название, в действительности, это не SMTP-ввод. Exim читает конверт
    каждого сообщения из SMTP-команд со стандартного ввода, но не
    генерирует никаких ответов. Если вызывающему доверяют, или установлена опция
    untrusted_set_sender, то отправителям в командах SMTP MAIL верят.
    Иначе отправителем всегда будет пользователь, вызвавший exim.

    Само сообщение читается из стандартного ввода, содержимое входящих
    пакетных SMTP-сообщений может быть проверено, используя не-SMTP ACL
    (смотрите раздел 39).
    Неквалифицированные адреса автоматически квалифицируются с использованием
    qualify_domain и qualify_recipient, соответственно, если не
    используется опция -bnq.

    Некоторые другие SMTP-команды распознаются во вводе.
    HELO и EHLO действуют как RSET. VRFY, EXPN, ETRN и HELP как NOOP.
    QUIT задает выход, игнорируя остальную часть стандартного ввода.

    Если встречается какая-то ошибка, отчёт записывается на стандартный
    вывод и в потки ошибок, и exim прекращает обработку. Возвращаемый код равен
    0, если ошибок не было, 1 если одно и более сообщение было принято до
    обнаружения ошибки, иначе он 2.

    Более подробно об использовании пакетного ввода
    SMTP рассказано в секции 44. 11.

  • -bs:
    Эта опция заставляет exim принимать одно или более сообщений путём чтения
    SMTP-команд со стандатного ввода и создавать ответы на стандартный вывод.
    SMTP ACL применяются (смотрите раздел 39).
    Некоторые пользовательские агенты используют этот интерфейс как способ
    передать локально сгенерированные сообщения MTA.

    В этом использовании, если вызывающему доверяют или установлена опция
    untrusted_set_sender, то отправителям в командах SMTP MAIL верят.
    Иначе содержимое этих команд игнорируется и отправителем всегда будет
    пользователь, вызвавший exim. Неквалифицированные адреса автоматически
    квалифицируются с использованием qualify_domain и
    qualify_recipient, соответственно, если не
    используется опция -bnq.

    Опция -bs также используется для запуска exim из inetd,
    как альтернативу использованию слушающего демона. Exim может различать эти
    два случая проверяя, является ли стандартный ввод TCP/IP сокетом.
    Когда exim вызывается из inetd предполагается, что источник почты
    удалённый, и описанное выше относительно квалификации неполных
    адресов не применяется. В этой ситуации exim ведёт себя точно так же, как и
    слушающий демон при приёме сообщения.

  • -bt:Эта опция запускает exim в режиме
    тестирования адресов, в котором каждый параметр берётся как адрес, который
    будет тестироваться на доставку. Результаты пишутся на стандартный вывод.
    Если тест неудачен, и вызывающий не административный пользователь, детали
    об ошибке не выводятся, поскольку они могут содержать секретную информацию,
    типа имён пользователей и паролей для поиска в БД.

    Если аргументов не дано, exim запускается в интерактивной манере,
    запрашивая с правой угловой скобкой адреса для тестирования.
    В отличие от тестовой опции -be, Вы не можете заставить exim
    использовать функцию readline(), поскольку он запущен от root, и
    это вопрос безопасности.

    Каждый адрес обрабатыватся, как будто он адрес получателя сообщения
    (сравните опцию -bv). Он передаётся роутерам, а результат
    записывается на стандартный вывод. Однако, некоторые роутеры, у которых
    установлено no_address_test, обходятся. Это может сделать опцию
    -bt более лёгкой для использования в настоящих тестах роутеров,
    если первый маршрутизатор передаёт всё программе сканирования.

    Код возврата 2, если какой-либо адрес напрямую потерпел неудачу,
    1 если никакой адрес не потерпел неудачу напрямую, но по крайней мере один
    не мог быть разрешён по некоторым причинам. Код возврата 0 даёётся лишь в
    случае, если все адреса были удачны.

    Предупреждение: Опция -bt может сделать только
    относительно простое тестирование. Если любой из маршрутизаторов проводит
    тестирование адреса отправителя сообщения, Вы можете использовать опцию
    -f для установки соответствующего отправителя.
    Без этого предполагается, что отправитель пользователь, вызывавший
    программу, квалифицируемый доменом по умолчанию. Однако, если Вы установили
    (например) маршрутизаторы, поведение которых зависит от содержимого
    входящего сообщения, Вы не сможете протестировать эти условия с
    использованием -bt. Опция -N предоставляет один из способов
    сделать такие тесты.

  • -bV: Эта опция заставляет exim вывести на
    стандартный вывод текущий номер версии, номер компиляции и дату компиляции
    исполняемого файла exim. Также перечисляются используемые DBM библиотеки,
    опциональные модули (типа специфических типов поиска), драйверы,
    непосредственно включенные в исполняемый файл, и имя
    используемого файла конфигурации.

    Как часть этой операции -bV заставляет exim читать и проверять
    синтаксис конфигурационного файла. Однако это лишь статическая проверка.
    Он не может проверить значения, которые должны быть раскрыты.
    Например, хотя ACL с орфографическими ошибками находится, ошибки в
    параметрах не находятся. Вы не можете положиться только на -bV
    для нахождения всех опечаток (например), необходимо
    более-менее реалистичное тестирование. Опции -bh и -N
    предоставляют более реалистичные средства тестирования.

  • -bv: Эта опция запускает exim в режиме
    тестирования адресов, в котором каждый параметр берётся как адрес,
    который будет проверяться. В нормальных условиях проверка
    обычно происходит обработкой условий verify
    в ACL (смотрите раздел 39). Если Вы хотите
    протестировать всю ACL, смотрите опцию -bh.

    Если проверка неудачна, и вызывающий не административный
    пользователь, детали об ошибке не выводятся, поскольку они могут содержать
    секретную информацию, например, имя пользователя и пароль для доступа к БД.

    Если аргументов не дано, exim запускается в интерактивном режиме с
    приглашением в виде правой угловой скобки, запрашивая адреса для проверки.
    В отличие от тестовой опции -be, Вы не можете заставить exim
    использовать функцию readline(), поскольку он запущен от пользователя exim,
    и это вопрос безопасности.

    Проверка отличается от тестирования адресов (опция -bt), к которой
    роутеры, имеющие no_verify, пропускаются, и если адрес принят
    роутером, имеющим установленную опцию no_verify, проверка не пройдена.
    Адрес проверяется как получатель, если используется опция -bv.
    Для тестирования проверки адреса отправителя должна
    использоваться опция -bvs.

    Если опция -v не задана, вывод состоит из
    одной строки для каждого адреса, начинающейся с заявления, прошёл адрес
    проверку или нет. В последнем случае приводится причина. Иначе даётся больше
    деталей о том, как адрес был обработан. В случае перенаправления адреса все
    сгенерированные адреса также рассматриваются.
    Без -v генерируется более одного адреса
    по перенаправлению, заставляя верификацию завершиться полностью.

    Возвращённый код 2, если любой адрес был напрямую неудачен, 1,
    если нет напрямую неудачных адресов, но по крайней мере один не мог быть
    разрешён в DNS по каким-либо причинам. Возвращённый код 0, если
    все адреса успешны.

    Если какой-то роутер в конфигурации производит какие-либо тесты
    для адресов отправителя сообщения, Вы должны использовать опцию -f
    для установки соответствующего отправителя при запуске
    тестов с опцией -bv. Без этого предполагается, что отправителем
    является вызвавший программу пользователь с соответствующим доменом.

  • -bvs: Эта опция работает как -bv,
    но проверяет адрес отправителя как адрес получателя. Это затрагивает любую
    перезапись и квалификацию, которая могла бы произойти.

  • -C <filelist>:
    Эта опция заставляет exim находить файл рабочей конфигурации заданного
    списка вместо списка, определённого CONFIGURE_FILE при компиляции.
    Обычно список состоит из одного файла, но это может быть и несколько
    файлов, разделённых двоеточием. В этом случае используется
    первый существующий файл. Ошибка открытия существующего файла
    останавливает exim, не давая ему просматривать остальные файлы из
    списка, и генерируется ошибка.

    Когда эта опция используется программой, работающей не от root
    или пользователя exim, и список отличается от указанного при компиляции, exim
    сбрасывает свои root-привилегии и выполняется под реальным и эффективным uid
    и gid пользователя, что его вызвал. Однако, если в Local/Makefile
    задана опция ALT_CONFIG_ROOT_ONLY, root-права доступа оставляются для опции
    -C лишь в случае, если вызвавший exim пользователь root.

    Таким образом, пользователю exim не даются привилегии в отношении этого.
    Эта компиляционная опция по умолчанию не установлена в исходном архиве exim.
    Однако, если Вы используете версию exim из пакетов, то тот, кто собирал
    программу, мог включить эту опцию.

    Установка ALT_CONFIG_ROOT_ONLY блокирует возможность
    тестирования конфигурации с использованием опции -C
    через приём и отправку сообщений, даже если вызывающий пользователь root.
    Приём работает, но к тому времени exim уже работает под своим пользователем,
    таким образом, когда он перезапускается для восстановления привилегий для
    доставки, использование -C заставляет привилегии сброситься.
    Однако, root может тестировать приём и доставку, используя две раздельные
    команды (одну, чтобы поместить сообщение в очередь, используя -odq, а
    другую для доставки, используя -M).

    Если в Local/Makefile задана опция ALT_CONFIG_PREFIX,
    это определяет строку префикса, с которой должен начинаться любой
    файл в строке с -C. Кроме того, имя
    не должно содержать последовательность /../. Однако, если значение опции
    -C идентично значению CONFIGURE_FILE в Local/Makefile, exim
    игнорирует -C и работает как обычно. Настройки по умолчанию
    для ALT_CONFIG_PREFIX отсутствуют: когда он сброшен, в опции -C
    может использоваться любое имя файла.

    ALT_CONFIG_PREFIX может использоваться, чтобы ограничить
    альтернативные конфигурационные файлы каталогом, доступ к которому
    имеет только root. Это не даст тому, кто взломал учётную запись exim
    привелигированного exim с произвольным конфигурационным файлом.

    Средство -C полезно для того, чтобы гарантировать,
    что конфигурационный файл синаксически корректен, но не может использоваться
    для тестовых доставок, если у вызвавшего пользователя нет привилегий
    или в случае экзотической конфигурации, не требующей прав доступа.
    Проверки пользователя или группы файла, фигурирующего в этой
    опции не производятся.

  • -D<macro>=<value>:
    Эта опция может использоваться для отмены макроопределений, заданных в
    конфигурационном файле (смотрите раздел 6. 4).
    Однако, как и -C, если она используется непривелигированным
    пользователем, она заставляет exim снять свои root-привилегии.
    Если опция DISABLE_D_OPTION задана в Local/Makefile, использование
    опции -D полностью заблокировано, а попытка её
    использования вызывает ошибку и немедленный выход.

    Вся опция (включая равно, если оно присутствует)
    должна быть в пределах одной строки. -D может использоваться для
    установки значения макрокоманды в виде пустой строки, в этом случае
    символ равно опционален. Эти две команды синонимичны:

    exim -DABC  ...
    exim -DABC= ...
    

    Для включения пробелов в макроопределения
    могут использоваться кавычки. Если Вы используете кавычки,
    пробелы разрешены вокруг имён макрокоманд и символа равно. Например:

    exim '-D ABC = something' . ..
    

    Опция -D может быть повторена до 10
    раз в одной командной строке.

  • -d<debug options>:
    Эта опция заставляет exim писать отладочную информацию на
    стандартный вывод ошибок. Её использование ограничено административными
    пользователями, поскольку вывод может показать запросы к
    БД, содержащие пароли. Кроме того, детали пользовательских
    фильтров должны быть защищены. Когда используется опция -d,
    -v включается автоматически. Если задан только -d,
    выводится много отладочной информации. Количество может быть увеличено или
    уменьшено, включением некоторой редко используемой информации, путём
    помещения сразу после -d строки, составленной из имён с
    предшествующим плюсом или минусом. Этим, соответственно, добавляются или
    удаляются отладочные данные. Например, -d+filter позвоялет
    выбрать только отладку фильтра. Обратите внимание, что
    пробелы не используются. Доступны следующие категории:

    acl ACL interpretation
    authauthenticators
    deliver general delivery logic
    dns DNS lookups (see also resolver)
    dnsbl   DNS black list (aka RBL) code
    execarguments for execv() calls
    expand  detailed debugging for string expansions
    filter  filter handling
    hints_lookuphints data lookups
    host_lookup all types of name-to-IP address handling
    ident   ident lookup
    interface   lists of local interfaces
    lists   matching things in lists
    loadsystem load checks
    local_scan  can be used by local_scan() (see chapter 41)
    lookup  general lookup code and all lookups
    memory  memory handling
    pid add pid to debug output lines
    process_infosetting info for the process log
    queue_run   queue runs
    receive general message reception logic
    resolverturn on the DNS resolver's debugging output
    retry   retry handling
    rewrite address rewriting
    route   address routing
    timestamp   add timestamp to debug output lines
    tls TLS logic
    transport   transports
    uid changes of uid/gid and looking up uid/gid
    verify  address verification logic
    all almost all of the above (see below), and also -v
    

    Опция all исключает memory, когда используется как
    +all, но включает её (в смысле, тоже убирает эту отладку),
    когда используется как -all. Причина этого в том, что +all то, что люди чаще
    всего используют для генерации отладки для разработчиков exim.
    Если включено +memory, вывод будет огромен и он редко представляет интерес,
    таким образом, теперь его нужно явно затребовать.
    Однако, -all действительно отключает всё.

    Опция resolver создаёт вывод лишь в случае, если DNS-ресолвер был
    скомпилирован с включенным DEBUG. Это не так на
    некоторых операционных системах. Также, к сожалению, отладочный вывод
    DNS-ресолвера пишется на стандартный вывод, а не на стандартный вывод ошибок.

    По умолчанию (-d без аргументов) не включает
    expand, filter, interface, load, memory, pid, resolver и timestamp.
    Однако, выбор pid принудителен, когда отладка включена для демона,
    который передаёт её другому, перезапускаясь. Exim также автоматически
    добавляет pid к строкам отладки, когда параллельно выполняются
    несколько удалённых доставок.

    Опция timestamp причина появления текущего времени в начале
    всех выводимых строк отладки. Она может быть полезной при попытках
    найти задержки в обработке.

    Если опция debug_print установлена в любом драйвере, он создаёт
    вывод каждый раз, когда выбрана отладка, даже если
    опция -v не используется.

  • -dd<debug options>:
    Эта опция ведёт себя точно также, как и -d, кроме случаев
    использования с командой, запускающей процесс демона. В этом случае отладка
    выключается для всех создаваемых подпроцессов. Таким образом, это может быть
    полезным для наблюдения поведения демона, не создавая такой же большой вывод,
    как при полной отладке.

  • -dropcr:
    Это устаревшая опция, которая сейчас является пустой командой.
    Она использовалась для изменения способа обработки exim символов CR и LF
    во входящих сообщениях. Что происходит сейчас, описано в разделе
    43.2.

  • -E:
    Эта опция определяет, что входящее сообщение сгенерированный локально отчёт
    об ошибке доставки. Она используется внутри exim
    и не предназначена для внешнего использования. Её единственый эффект:
    останавливать генерацию exim определённых сообщений постмастеру,
    поскольку в небольшом числе ситуаций могли бы возникнуть каскады сообщений.
    Как часть этой опции, идентификатор сообщения может следовать за символами
    -E. Если такое происходит, строка протокола для получателя
    нового сообщения содержит идентификатор сразу после R=
    как перекрёстная ссылка.

  • -e x: Есть множество опций Sendmail,
    начинающихся с -oe, которые вызываются различными
    программами без o в опции.
    Например, программа vacation использует -eq.
    Exim обрабатывает все опции формы -e x как синонимичные опциям
    -oe x.

  • -F <string>:
    Эта опция устанавливает полное имя отправителя, которое используется, когда
    принимается сгенерированное локально сообщение. В отсутствие этой опции,
    используется элемент gecos из данных пароля пользователя.
    Поскольку обычно пользователям разрешено менять их поля gecos,
    не включены никакие вопросы безопасности.
    Пробел между -F и <string> опционален.

  • -f <address>:
    Эта опция устанавливает адрес отправителя конверта в
    локально созданных сообщениях. Обычно она может использоваться только
    доверенными пользователями, но untrusted_set_sender
    может разрешить её использование недоверенным пользователям.

    Процессам, запущенным как пользователь root или пользователь
    exim, всегда доверяют. Прочие доверенные пользователи задаются опцией
    trusted_users или trusted_groups. В отсутствии -f,
    или когда вызывающему не доверяют, отправитель локального сообщения задаётся
    из имени логина пользователя и квалифицируется доменом по умолчанию.

    Есть одно исключение из ограничения на использование -f:
    пустой отправитель может быть задан любым пользователем, доверенным или нет,
    для создания сообщения, которое никогда не сможет вызвать срыв.
    Пустой отправитель может быть указан как пустая строка или как пара угловых
    скобок без чего-либо между ними, как в этих примерах команд оболочки:

    exim -f '<>' [email protected]
    exim -f "" [email protected]
    

    Кроме того, использование -f не ограничено
    тестированием файлов фильтра с -bf, тестированием или проверкой
    адресов с использованием опций -bt или -bv.

    Разрешение недоверенным пользователям изменять адрес отправителя
    создаёт возможность отправлять анонимную почту. Exim всё равно проверяет,
    ссылается ли на локального пользователя заголовок From:, и если это не
    так, он добавляет заголовок Sender:, хотя и это может быть отменено
    установкой опции no_local_from_check.

    Пробелы между -f и <address> опциональны
    (то есть, можно давать как два параметра, так и один, объединённый).
    Отправитель созданного локально сообщения также может быть установлен
    (когда разрешено) инициалом From строкой в сообщении, смотрите выше
    примечание к -bm, но если присутствует -f,
    оно перезаписывает From.

  • -G: Эта опция Sendmail игнорируется exim.
  • -h <number>: Эта опция используется для
    совместимости с sendmail, но не имеет никакого эффекта.
    В sendmail она перезадаёт счётчик хопов (hop count),
    получаемый подсчётом заголовков Received:.

  • -i: Эта опция имеет такой же эффект, как и
    -oi, задавая, чтобы отдельная точка в строке
    не завершила входящее не-SMTP сообщение. Я не смог найти документацию по этой
    опции в sendmail Solaris 2.4, но команда mailx
    в нём использует эту опцию. Смотрите также -ti.

  • -M <message id> <message id> …:
    Эта опция вызывает exim для попытки доставки каждого сообщения по очереди.
    Если любое из сообщений заморожено, оно автоматически размораживается
    перед попыткой доставки. Значения queue_domains,
    queue_smtp_domains и hold_domains игнорируются.

    Совпадения повторов для любого из адресов отменяются: exim пробует
    произвести доставку, даже когда нормальное время повтора не наступило.
    Эта опция требует, чтобы вызывающий пользователь был административным.
    Однако, существует опция, называемая prod_requires_admin,
    которая может быть установлена в ложь для ослабления этого ограничения (и
    то же самое требуется для опций -q, -R и -S).

    Доставки происходят синхронно, то есть, оригинальный процесс
    exim не завершается, пока не завершатся все попытки доставки.
    Вывода нет, если нет серьёзных ошибок. Если Вы хотите видеть, что происходит,
    используйте опцию -v или просматривайте основной протокол exim.

  • -Mar <message id> <address> <address> …:
    Эта опция вызывает exim для добавления адреса в список получателей сообщения
    (ar значит «add recipients»). Первый аргумент должен быть
    идентификатором сообщения, а последующие адресами e-mail.
    Однако, если сообщение активно (находится в попытке доставки),
    оно не изменяется. Эта опция может использоваться
    только административными пользователями.

  • -MC <transport> <hostname>
    <sequence number> <message id>
    : Эта опция не
    предназначена для использования внешними вызывающими программами.
    Она используется внутри exim для вызова собственной копии, чтобы доставить
    ожидающее сообщение с использованием существующего SMTP-соединения,
    передавая его через стандартный ввод. Детали даны в разделе
    44. Это должно быть последней опцией, и вызывающий
    пользователь должен быть root или пользователь exim для
    возможности её использовать.

  • -MCA: Эта опция не предназначена для
    использования внешними вызывающими программами. Она используется внутри exim
    вместе с опцией -MC. Она указывает, что подключение с
    удалённым хостом аутентифицированное.

  • -MCP: Эта опция не предназначена для
    использования внешними вызывающими программами. Она используется внутри exim
    вместе с опцией -MC. Она указывает, что сервер,
    к которому подключен exim, поддерживает конвейеризацию.

  • -MCQ <process id> <pipe fd>:
    Эта опция не предназначена для использования внешними вызывающими программами.
    Она используется внутри exim вместе с опцией -MC,
    когда оригинальная доставка была начата обработчиком очереди.
    Она передаёт идентификатор процесса обработчика очереди, вместе с номером
    дескриптора открытого канала. Закрытие канала свидетельствует о завершении
    последовательности процессов, которые передавали сообщение через
    то же самое SMTP-подключение.

  • -MCS: Эта опция не предназначена для
    использования внешними вызывающими программами. Она используется внутри exim
    вместе с опцией -MC и передаёт факт, что опция SMTP SIZE должна
    использоваться на сообщениях, доставляемых через существующее подключение.

  • -MCT: Эта опция не предназначена для
    использования внешними вызывающими программами.
    Она используется внутри exim вместе с опцией -MC и передаёт
    факт, что хост, с которым связан (с которым установлено соединение) exim,
    поддерживает шифрование TLS.

  • -Mc <message id> <message id> …:
    Эта опция вызывает exim для запуска попытки доставки каждого сообщения по
    очереди, но, в отличие от опции -M, эта проверяет повторы
    и использует найденные значения. Эта опция не очень полезна
    для внешних программ. Она применяется, главным образом,
    для внутреннего использования exim, когда ему необходимо перевызывать себя,
    для восстановления root-прав, необходимых для доставки
    (смотрите раздел 51). Однако, опция -Mc
    может быть полезной при тестировании доставки, которая использует время
    повторов, и другие опции, например, hold_domains,
    которые отменяются при использовании -M. Такая доставка не считается
    запуском обработчика очереди. Если Вы хотите запустить специфическую
    доставку, как будто работал обработчик очереди, Вы должны использовать опцию
    -q с идентификатором сообщения, как аргументом.
    Различие между доставкой обработчиком очереди и другими доставками состоит в
    одном или двух местах.

  • -Mes <message id> <address>:
    Эта опция вызывает exim для изменения адреса отправителя в сообщении на
    заданный адрес, который должен быть полностью квалифицированным адресом, или
    <> (es означает «edit sender»).
    Обязательно должны быть два параметра. Первый аргумент должен быть
    идентификатором сообщения, а второй e-mail адресом. Однако, если сообщение
    активно (находится в процессе попытки доставки), его статус не меняется.
    Эта опция может использоваться только административными пользователями.

  • -Mf <message id> <message id> …:
    Эта опция вызывает exim, чтобы отметить перечисленные сообщения
    как замороженные (frozen). Этим предотвращаются любые имеющие место
    попытки доставки, до тех пор, пока сообщение не будет
    разморожено вручную или в результате конфигурационной опции auto_thaw.
    Однако, если сообщение активно (находится в процессе доставки),
    его статус не будет изменён. Эта опция может использоваться
    только административными пользователями.

  • -Mg <message id> <message id> …:
    Эта опция вызывает exim, чтобы отменить доставку перечисленных сообщений,
    включая те, что заморожены. Однако, если сообщение активно
    (находится в процессе доставки), его статус не будет изменён.
    Для сообщений, не являющихся рикошетами, сообщение об ошибке
    доставки шлётся отправителю, содержа текст «отменено администратором»
    (cancelled by administrator). Рикошеты только отбрасываются. Эта опция может
    использоваться только административными пользователями.

  • -Mmad <message id> <message id> …:
    Эта опция вызывает exim, чтобы пометить все адреса получателей в сообщениях
    как уже доставленные (mad означает «mark all delivered»).
    Однако, если сообщение активно (находится в процессе доставки),
    его статус не будет изменён. Эта опция может использоваться
    только административными пользователями.

  • -Mmd <message id> <address> <address> …:
    Эта опция вызывает exim, чтобы пометить заданные адреса как уже доставленные
    (md означает «mark delivered»). Первый аргумент должен быть идентификатором
    сообщения, последующие должны быть адресами e-mail. Они совпадают с адресами
    получателей с учётом регистра. Если сообщение активно (находится в процессе
    доставки), его статус не будет изменён. Эта опция может использоваться
    только административными пользователями.

  • -Mrm <message id> <message id> …:
    Эта опция вызывает exim, чтобы удалить заданные сообщения из очереди.
    Рикошеты не шлются: про сообщения просто забывают. Однако, если сообщение
    активно (находится в процессе доставки), его статус не будет изменён.
    Эта опция может использоваться только административными пользователями или
    пользователем, изначально поместившим сообщение в очередь.

  • -Mt <message id> <message id> …:
    Эта опция вызывает exim, чтобы разморозить перечисленные сообщения, которые
    заморожены, в итоге попытки их доставить продолжатся. Однако, если сообщение
    активно (находится в процессе доставки), его статус не будет изменён.
    Эта опция может использоваться только административными пользователями.

  • -Mvb <message id>:
    Эта опция выводит на стандартный вывод содержимое тела
    сообщения (-D) из спула. Эта опция может использоваться
    только административными пользователями.

  • -Mvh <message id>:
    Эта опция выводит на стандартный вывод содержимое заголовков
    сообщения (-H) из спула. Эта опция может использоваться
    только административными пользователями.

  • -Mvl <message id>:
    Эта опция выводит на стандартный вывод содержимое протокола
    сообщения из спула. Эта опция может использоваться
    только административными пользователями.

  • -m: Эта опция является синонимом для
    -om, используемой sendmail, таким образом,
    exim её также обрабатывает.

  • -N: Это опция отладки, которая запрещает
    доставку на транспортном уровне. Она подразумевает опцию -v.
    Exim проделывает все движения (обработки) доставки, лишь не транспортирует
    сообщение, но вместо этого ведёт себя так, будто
    успешно произвёл транспортировку. Однако он не производит
    какие-либо обновления БД повторов, и в протоколах о доставке строки будут
    содержать флаги *> вместо =>.

    Поскольку -N сбрасывает любое сообщение, к которому применяется,
    только root или пользователь exim разрешается использовать эту опцию с
    -bd, -q, -R или -M. Другими словами, обычный
    пользователь может использовать эту опцию только когда предоставляет входящее
    сообщение к которому будет применена эта опция. Хотя транспортировка никогда
    не бывает неудачной, при установленной опции -N, адрес может быть
    задержан из-за конфигурационных проблем транспорта или роутинга.
    Как только -N используется для попытки доставки,
    она прилипает к сообщению и применяется для всех последующих попыток доставки
    сообщения, которые могут быть для него.

  • -n: Эта опция интерпретируется sendmail
    как «не производить алиасинг» (no aliasing).
    Она игнорируется exim.

  • -O <data>:
    Эта опция интерпретируется sendmail как «установить опцию» (set option).
    Она игнорируется exim.

  • -oA <file name>:
    Эта опция использкется sendmail вместе с -bi
    для задания альтернативного имени файла алиасов. Exim обрабатывает -bi
    иначе, смотрите описание выше.

  • -oB <n>:
    Это отладочная опция, которая ограничивает максимальное число сообщений,
    которые могут быть доставлены по SMTP-соединению, отменяя значение, заданное
    в любом транспорте smtp. Если <n>
    отсутствует, ограничение устанавливается в 1.

  • -odb:
    Эта опция применяется ко всем режимам, в которых exim принимает входящие
    сообщения, включая слушающего демона. Она запрашивает фоновую (background)
    доставку таких сообщений означающую, что принимающий процесс автоматически
    запускает процесс доставки для каждого полученного сообщения, но
    не ждёт окончания процесса доставки.

    Когда все сообщения получены, принимающие процессы завершаются, оставляя
    процессы доставки завершаться самостоятельно. Стандартный вывод и поток
    ошибок закрываются в начале каждого процесса доставки.
    Это действие по умолчанию, если не задана опция -od.

    Если одна из опций организации очереди в конфигурационном файле
    (queue_only или queue_only_file, например) включена,
    -odb перезадаёт её, если queue_only_override
    установлена в истину, что является настройкой по умолчанию.
    Если queue_only_override установлена в ложь, -odb
    не имеет эффекта.

  • -odf:
    Эта опция запрашивает foreground (синхронную) доставку, когда exim принимает
    созданные локально сообщения. Для демона это точно так же, как с -odb.
    Процесс доставки автоматически запускает доставку сообщения, и exim ждёт его
    завершения до последующей работы.

    Оригинальный принимающий процесс exim не завершается,
    пока процесс доставки сообщения не завершится. Стандартный поток ошибок
    остаётся открытым в течение доставки.

    Однако, как -odb, эта опция не имеет эффекта, если
    queue_only_override установлена в ложь, и установлена одна из
    опций организации очереди в конфигурационном файле.

    Если происходит временная ошибка доставки во время текущей синхронной
    доставки, сообщение остаётся в очереди для дальнейшей доставки, и
    оригинальные процессы приёма завершаются.
    Смотрите раздел 47 для подробностей о способе
    установить ограничения конфигурации, чтобы с этой опцией сообщения никогда
    не ставились в очередь.

  • -odi: Эта опция синоним -odf.
    Она присутствует для совместимости с sendmail.
  • -odq:
    Эта опция применяется ко всем режимам exim, когда он принимает входящие
    сообщения, включая слушающего демона. Она определяет, чтобы процесс,
    принимающий сообщения, не производил автоматический запуск процесса доставки
    для каждого принятого сообщения. Сообщения кладутся в очередь
    и остаются там, пока следующий процесс обработчика очереди не обнаружит их.
    Есть несколько конфигурационных опций (например, queue_only),
    которые могут быть использованы для постановки входящих сообщений в очередь
    при определённых условиях. Эта опция отменяет их, а также опцию -odqs.
    Она всегда вызывает организацию очередей.

  • -odqs: Эта опция гибридная, между
    -odb/-odi и -odq. Однако, как -odb и -odi,
    эта опция не имеет эффекта, если queue_only_override
    установлена в ложь, и одна из опций организации очереди в
    конфигурационном файле имеет силу.

    Когда -odqs работает, процесс доставки запускается для
    каждого входящего сообщения по умолчанию в фоновом режиме, но в режиме
    переднего плана (foreground) только если есть опция -odi.
    Адреса получателя роутятся, и локальные доставки
    происходят нормальным способом. Однако, если требуются какие-либо
    доставки по SMTP, они не завершаюся сразу, таким образом,
    сообщение остаётся в очереди, пока следующий процесс обработчика очереди
    не найдёт его. Поскольку роутинг завершён, exim знает, какие сообщения ждут,
    для каких хостов, таким образом несколько сообщений к одному хосту могут
    быть посланы в одном SMTP-соединении. Конфигурационная опция
    queue_smtp_domains имеет такой же эффект для специфических доменов.
    Смотрите также опцию -qq.

  • -oee: Если обнаружена ошибка во время получений
    не-SMTP-сообщения (например, неправильный адрес), об ошибке сообщают
    отправителю в почтовом сообщении.

    Если это сообщение об ошибках успешно отправлено, получающий
    процесс exim выходит с кодом возврата ноль. Если нет, возвращаемый код 2,
    если проблема в том, что оригнальное сообщение не имеет получателей,
    или 1 для любой другой ошибки. Эта опция значение по умолчанию
    -oe x, если exim вызывается под именем rmail.

  • -oem: Это то же самое, что и -oee
    за тем исключением, что exim всегда выходит с ненулевым кодом возврата,
    независимо, были ли ошибки при отправке сообщения или нет. Эта опция значение
    по умолчанию для -oe x, если exim вызывается
    не под именем rmail.

  • -oep: Если обнаружена ошибка во время получений
    не-SMTP-сообщения, об ошибке сообщается путём записи в стандартный файл
    ошибок (поток ошибок). Возвращаемый код равен единице для всех ошибок.

  • -oeq:
    Эта опция поддерживается для совместимости с sendmail, но имеет такой же
    эффект, как и -oep.

  • -oew:
    Эта опция поддерживается для совместимости с sendmail, но имеет такой же
    эффект, как и -oem.

  • -oi: Эта опция даёт такой же эффект, как и
    -i, задавая, чтобы точка в отдельной строке не завершала
    входящее не-SMTP сообщение. В обратном случае точка в отдельной строке
    завершает сообщение, хотя exim не производит специальной обработки для других
    строк, которые начинаются с точки. Эта опция установлена по умолчанию при
    вызове exim под именем rmail. Смотрите также опцию -ti.

  • -oitrue:
    Эта опция обрабатывается как синоним -oi.
  • -oMa <host address>:
    Множество опций, начинающихся с -oM, могут использоваться для
    установки значений, связанных с удалёнными хостами на локально переданных
    сообщениях (то есть, сообщения, полученные не по TCP/IP). Эти опции могут
    использоваться любым вызывающим пользователем с тестовыми опциями
    -bh, -be, -bf, -bF, -bt или -bv.
    В других обстоятельствах они игнорируются, если вызывающий не
    является доверенным пользователем.

    Опция -oMa устанавливает адрес хоста отправителя.
    Здесь может использоваться и номер порта в конце после точки. Например:

    exim -bs -oMa 10.9.8.7.1234
    

    Альтернативный синтаксис должен включать IP-адрес в
    квадратных скобках, сопровождаемый двоеточием и номером порта:

    exim -bs -oMa [10.9.8.7]:1234
    

    IP-адрес помещается в переменную
    $sender_host_address и порт, если он есть, в $sender_host_port.

  • -oMaa <name>: Смотрите выше опцию
    -oMa для общих сведений о опциях -oM.
    Опция -oMaa устанавливает значение переменной
    $sender_host_authenticated (аутентификационное имя).
    Смотрите раздел 33 для
    подробностей о SMTP-аутентификации.

  • -oMai <string>: Смотрите выше опцию
    -oMa для общих сведений о опциях -oM.
    Опция -oMai устанавливает значение переменной
    $authenticated_id (идентификатор аутентификации). Это отменяет значение
    по умолчанию адреса отправителя (логин вызвавшего пользователя)
    для сообщений из локальных источников. Смотрите раздел
    33 для подробностей об идентификаторах SMTP-аутентификации.

  • -oMas <address>: Смотрите выше опцию
    -oMa для общих сведений о опциях -oM.
    Опция -oMas устанавливает значение аутентифицированного
    отправителя в переменную $authenticated_sender. Эта опция перезадаёт
    адрес отправителя, созданный из имени входа пользователя, вызвавшего exim,
    для сообщений из локальных источников. Смотрите раздел
    33 для подробностей об аутентифицированных SMTP-отправителях.

  • -oMi <interface address>:
    Смотрите выше опцию -oMa для общих сведений о опциях -oM.
    Опция -oMi устанавливает значение адреса IP-интерфейса.
    Номер порта может быть включён с использованием синтаксиса, как для
    -oMa. Адрес интерфейса помещается в переменную
    $interface_address и номер порта, если задан, в переменную $interface_port.

  • -oMr <protocol name>: Смотрите выше опцию
    -oMa для общих сведений о опциях -oM.
    Опция -oMr устанавливает значение протокола, по которому
    получено сообщение в переменную $received_protocol. Однако, это применяется
    лишь, когда опция -bs не используется. Для интерактивного SMTP ввода
    (-bs) протокол всегда local, сопровождаемый одним из стандартных
    имён протоколов SMTP (смотрите примечания о $received_protocol в разделе
    11.19). Однако, для опции -bS
    (пакетный SMTP), протокол может быть установлен в опции -oMr.

  • -oMs <host name>:
    Смотрите выше опцию -oMa для общих сведений о опциях -oM.
    Опция -oMs устанавливает значение имени хоста отправителя в переменную
    $sender_host_name. Когда эта опция присутствует, exim не пытается найти в DNS
    имя хоста по IP-адресу: он использует имя, заданное в этой опции.

  • -oMt <ident string>: Смотрите выше опцию
    -oMa для общих сведений о опциях -oM.
    Опция -oMt устанавливает значение ident отправителя в переменную
    $sender_ident. Значение по умолчанию для локальных вызовов: имя логина,
    вызвавшего пользователя или процесса.

  • -om:
    В sendmail эта опция означает «меня также» (me too) указывая, что отправитель
    сообщения должен получить копию сообщения, если отправитель появится в
    результате раскрытия алиасов. Exim всегда так поступает, поэтому
    эта опция ничего не значит.

  • -oo: Эта опция игнорируется.
    В sendmail она задаёт заголовки старого стиля (old style headers)
    независимо от того, что это значит.

  • -oP <path>:
    Эта опция полезна только вместе с опцией -bd или -q
    со значением времени. Опция задаёт файл, в который записывается pid демона.
    Когда -oX используется с -bd или когда -q
    используется со временем, но без -bd, это единственный способ
    заставить exim записать pid-файл, поскольку в этих случаях
    pid не используется.

  • -or <time>:
    Эта опция устанавливает значение таймаута для входящих не-SMTP сообщений.
    Если она не задана, exim будет вечно ждать на стандартном вводе.
    Значение также может быть установлено опцией receive_timeout.
    Формат, используемый для задания времени, описан в разделе
    6.15.

  • -os <time>:
    Эта опция устанавливает значение таймаута для входящих SMTP сообщений.
    Таймаут применяется к каждой SMTP-команде и блоку данных.
    Значение также может быть установлено опцией
    smtp_receive_timeout, по умолчанию оно 5 минут.
    Формат, используемый для задания времени, описан в разделе
    6.15.

  • -ov: Эта опция обладает точно таким
    же эффектом, как и -v.
  • -oX <number or string>:
    Эта опция релевантна, лишь когда используется опция -bd
    (запуск слушающего демона). Она контролирует, какие порты и
    интерфейсы использует демон. Детали синтаксиса, и как она взаимодействует
    с конфигурационным файлом даны в разделе 13.
    Когда опция -oX используется для запуска демона, pid-файл не пишется,
    если не задана опция -oP для задания имени pid-файла.

  • -pd:
    Эта опция применяется, когда встроенный интерпретатор Perl слинкован с exim
    (смотрите раздел 12). Она перезадаёт установки опции
    perl_at_start, вызывая отсрочку запуска интерпретатора,
    насколько это необходимо.

  • -ps:
    Эта опция применяется, когда встроенный интерпретатор Perl слинкован с exim
    (смотрите раздел 12). Она перезадаёт установки опции
    perl_at_start, вызывая запуск интерпретатора при старте exim.

  • -p<rval>:<sval>:
    Для совместимости с sendmail эта опция эквивалентна

    Она устанавливает входящий протокол и имя хоста
    (для вызывающих доверенных пользователей). Имя хоста и его двоеточие могут
    быть опущены, лишь когда протокол не задан. Отметтьте, что exim уже имеет две
    закрытые опции -pd и -ps, ссылающиеся на строенный perl.
    Поэтому невозможно установить значение протокола p или s используя эту опцию
    (но это не кажется реальным ограничением).

  • -q
    Использование этой опции, обычно, ограничено административными пользователями. Однако, есть конфигурационная опция, называемая
    prod_requires_admin, которая может быть установлена в
    ложь для ослабления этого ограничения (и тоже самое требуется для опций
    -M, -R и -S).

    Опция -q запускает один процесс обработчика очереди.
    Он сканирует очередь ждущих сообщений, и запускает процесс доставки для
    каждого сообщения, по очереди. Процесс доставки может не производить
    доставку, если время повтора для адреса не наступило. Используйте
    -qf (смотрите ниже), если вы хотите отменить это.

    Если процесс доставки порождает другие процессы для доставки
    других сообщений по SMTP-соединениям, обработчик очереди ждёт,
    пока они завершаться, перед продолжением работы.

    Когда все стоящие в очереди сообщения были просмотрены,
    оригинальный процесс обработчика очереди завершается.
    Другими словами, делается один проход по ожидающей почте,
    одно сообщение одновременно. Используйте время с опцией -q
    (смотрите ниже), если хотите, чтобы просмотр происходил периодически.

    Exim обрабатывает ожидающие сообщения в непредсказуемом порядке.
    Он не очень случаен, но, вероятно, будет разным в каждый запуск.
    Если одно сообщение портит удалённый MTA, другие сообщения имеют
    шанс пройти к тому же самому MTA, если они будут первыми при обработке.

    Возможно произвести обработку сообщений в лексическом порядке по
    идентификаторам сообщений, по существу являющимся порядком, в котором они
    прибыли, установив опцию queue_run_in_order, но это не рекомендуется
    для нормального использования.

  • -q<qflags>:
    Опция -q может сопровождаться одним или несколькими флагами,
    изменяющими её поведение. Все они являются опциональными, но если
    присутствует более, чем один, они должны появляться в правильном порядке.
    Каждый флаг описан отдельным пунктом ниже.

  • -qq…: Опция, начинающаяся с -qq,
    запрашивает двухступенчатое выполнение очереди. На первой стадии сканируется
    очередь, как будто опция queue_smtp_domains
    совпадает с каждым доменом. Адреса роутятся, происходят локальные доставки,
    но удалённые транспорты не запускаются.

    База данных совпадений, в которой хранится, какие сообщения
    ждут специфических удалённых хостов, обновляется, как будто доставка на
    те хосты задержана. После завершения этого, происходит нормальное
    сканирование очереди с нормальной маршрутизацией и доставкой.
    Сообщения, которые роутятся на один и тот же хост, в основном, идут через
    одно SMTP-соединенеие, из-за данных БД совпадений, которые были установлены
    при первом сканировании очереди. Эта опция может быть полезной для хостов,
    которые подключаются к интернету периодически.

  • -q[q]i…: Если флаг i присутствует,
    обработчик очереди запускает процессы доставки только для тех сообщений,
    которые до этого не были проверены (имеется в виду, что не было
    попыток их доставки). i значит «initial delivery».
    Это может быть полезным, если Вы помещаете сообщения в очередь, используя
    -odq и хотите, чтобы обработчик очереди обработал
    именно новые сообщения.

  • -q[q]f…:
    Если присутствует один флаг [i]f,
    попытка доставки вызывается для каждого незамороженного сообщения,
    тогда как без f пробуются лишь те незамороженные адреса,
    у которых прошло время повтора.

  • -q[q]ff…: Если флаг [i]ff присутствует,
    попытка доставки осуществляется для каждого сообщения, независимо от того,
    заморожено оно или нет.

  • q[q][f[f]]l: Флаг [i]l (строчная буква
    L) определяет, что нужно делать только локальные доставки.
    Если сообщению требуются удалённые доставки, оно остаётся в очереди для
    более поздней доставки.

  • -q<qflags> <start id> <end id>:
    Когда сканируется очередь, exim может пропустить сообщения,
    идентификаторы которых лексически меньше, чем значение стартового
    идентификатора сообщения, следующего за опцией -q. Например:

    Сообщения, полученные ранее,
    чем 0t5C6f-0000c8-00 не просматриваются. Если дан второй идентификатор
    сообщения, то те сообщения, идентификатор которых лексически больше
    него, также пропускаются. Если один и тот же идентификатор
    задан дважды, например:

    exim -q 0t5C6f-0000c8-00 0t5C6f-0000c8-00
    

    то процесс доставки запускается только для него. Это отличается от
    -M, в том, что учитываются данные повторов, и также отличается от
    -Mc в том, что в обработчике очереди, это засчитывается как доставка.
    Обратите внимание, что механизм выбора не затрагивает порядок, к котором
    сообщения сканируются. Есть и другие способы выбрать специфичные наборы
    для доставки в обработчике очереди смотрите опции -R и -S.

  • -q<qflags><time>:
    Когда присутствует значение времени, опция -q заставляет
    exim работать как демон, запуская обработчик очереди с заданными интервалами
    времени (чей формат описан в разделе 6.15).
    Эта форма опции -q обычно комбинируется с опцией-bd,
    когда один процесс демона обрабатывает обе функции. Общий способ запуска
    комбинированного демона при загрузке системы заключается в
    использовании команды типа:

    /usr/exim/bin/exim -bd -q30m
    

    Такой демон слушает входящие SMTP-вызовы, а также
    запускает процесс обработчика
    очереди через каждые 30 минут.

    Когда демон запускается с -q
    и с параметром времени, но без -bd,
    pid-файл не записывается, если явно не указана опция -oP.

  • -qR<rsflags> <string>:
    Эта опция синоним с -R.
    Она предусмотрена для совместимости с sendmail.

  • -qS<rsflags> <string>:
    Эта опция синоним -S.

  • -R<rsflags> <string>:
    <rsflags> может быть пустым в случае, когда пустое место до
    строки опционально, если строка не f, ff, r, rf
    или rff, которые являются возможными значениями для
    <rsflags>. Пробел требуется, если
    <rsflags> не пустое.

    Эта опция похожа на -q, без значения времени,
    то есть, она заставляет exim выполнить один запуск
    обработки очереди за исключением того, что, сканируя сообщения в очереди,
    exim обрабатывает только те, которые имеют хотя бы один
    недоставленный адрес получателя, содержащий данную строку,
    проверенную регистронезависимым способом.
    Если <rsflags> начинается с r, <string>
    интерпретируется как регулярное выражение, иначе это литеральная строка.

    Когда сообщение выбрано, обрабатываются все его адреса.
    Для первого выбранного сообщения, exim пререзадаёт любую информацию повторов
    и вызывает попытку доставки для каждого недоставленного адреса. Это означает,
    что если доставка какого-либо адреса в первом сообщении успешна,
    любая существующая информация повторов удаляется, и таким образом попытки
    доставки для этого адреса во впоследствии выбранных сообщениях (которые
    обрабатываются без форсирования), будут запущены. Однако, если доставка
    любого адреса неуспешна, информация повторов обновляется, и во впоследствии
    выбранных сообщениях неудачные адреса будут пропущены.

    Если <rsflags> содержит f или ff,
    принудительная доставка применяется ко всем выбранным сообщениям, а не только
    к первому; замороженные сообщения включаются, когда присутсвует ff.

    Опция -R напрямую создаёт инициализацию
    доставки всех сообщений для данного домена, после того как хост был
    недоступен некоторое время. Когда SMTP команда ERTN принимается её ACL
    (смотрите раздел 39), её эффект по умолчанию:
    запуск exim с опцией -R, но это может быть изменено
    для запуска произвольной команды вместо неё.

  • -r:
    Это документированное (для sendmail) устаревшее
    альтернативное имя для -f.

  • -S<rsflags> <string>:
    Эта опция работает как -R
    за исключением того, что, она проверяет строку каждого
    отправителя сообщения, вместо получателя. Если, также задана опция
    -R, оба условия должны выполняться для
    каждого выбранного сообщения. Если опции имеют флаги f
    или ff, предпринимаются ассоциированные с ними действия.

  • -Tqt <times>:
    Эта опция исключительно для набора тестирования exim. Она не распознаётся,
    когда exim запущен нормально. Она позволяет установку времён очереди
    (queue times), таким образом могут быть протестированы различные
    возможности предупреждений/повторов.

  • -t: Когда exim получает созданное локально
    не-SMTP-сообщение на стандартный ввод, опция -t заставляет получателей
    сообщения получить строки заголовков To:, Cc: и Bcc: из
    сообщения, а не из аргументов команды. Адреса извлекаются до любых
    перезаписей адресов, а в случае наличия строки Bcc: она удаляется.

    Если у команды заданы какие-либо параметры, они задают адреса, по которым
    сообщение не будет доставлено. Таким образом, аргументы адресов
    удаляются из списка получателей, полученного из заголовков. Это совместимо со
    Smail 3 и соответствует документированному поведению некоторых версий
    sendmail, как описано в man-страницах ряда операционных систем (например,
    Solaris 8, IRIX 6.5, HP-UX 11). Однако, некоторые версии sendmail
    добавляют аргументы адресов к полученным из заголовков, книга O’Reilly
    Sendmail документирует этот способ.

    Если есть любой заголовок Resent в сообщении, exim извлекает
    получателей из всех заголовков Resent-To:, Resent-Cc: и
    Resent-Bcc: вместо To:, Cc: и Bcc:. Эта опция для
    совместимости с sendmail и другими MTA. До версии 4.20 exim содержал ошибку:
    если опция -t использовалась со строкой заголовка Resent.

    RFC 2822 говорит о разных Resent-строках заголовков (для случая,
    когда сообщение пересылалось несколько раз). RFC также определяет, что они
    должны быть добавлены в начале сообщения и разделены строками
    Received:. Непонятно, как опция -t должна работать в случае
    многих наборов (sets), и вообще неясно, что подразумевается под набором
    (set). Практически, MUA, видимо, не следуют RFC. Строки Resent
    часто добавляются в конце заголовка, и если сообщение послано более одного
    раза, часто оригинальный набор заголовков Resent переименовывается в
    X-Resent, когда добавляется новый набор.
    Это удаляет любую возможную двусмысленность.

  • -ti: В точности эквивалентна
    -t и -i. Она предоставлена для совместимости с sendmail.
  • -tls-on-connect:
    эта опция доступна, когда exim скомпилирован с поддержкой TLS.
    Она вынуждает все входящие SMTP-подключения вести себя, как будто входящий
    порт перечислен в опции tls_on_connect_ports.
    См. разделы 13.14 и 38
    для дальнейших деталей.

  • -U: Sendmail использует эту опцию для начальной
    подачи сообщения (initial message submission), и его документация заявляет,
    что в будущих версиях он может жаловаться на синтаксически неправильные
    сообщения, вместо исправления их, когда этот флаг не установлен.
    Exim игнорирует эту опцию.

  • -v: Эта опция заставляет exim писать
    информацию в стандартный поток ошибок описывая, что он делает. В частности,
    он показывает строки протоколов для приёма и доставки сообщений, и если
    произведено SMTP-подключение, показывается диалог SMTP. Некоторые показанные
    строки могут быть не записаны в журнал, если установка log_selector
    отменяет их. Любые релевантные селекторы показываются с каждой строкой. Если
    не показыватся ни одна, логгинг безусловен.

  • -x: AIX использует -x в закрытых целях
    (почта от локальной почтовой программы имеет расширенные символы National
    Language Support в теле почтового сообщения). Это устанавливается опцией
    -x при вызове MTA программой mail. Exim игнорирует эту опцию.

Про XMail в openWrt. Отправка почтовых сообщений из командной строки.

Настройка XMail в openwrt

Мне нужно было научиться отправлять почтовые сообщения из командной строки, проще говоря, нужен был скрипт, который бы отправлял почту на конкретные email при возникновении тех или иных событий.

Конечно, самый простой вариант — это создание почтового ящика на каком-нибудь gmaile и уже с него отправка сообщений на другие адреса. Но, наверное, гораздо красивее, когда коробочка сама от своего имени (без создания электронного адреса на стороннем хостинге) будет рассылать сообщения.

Самый простой способ реализации оказался с использованием Xmail. Не знаю, возможно существуют и более простые варианты решения данной задачи, но мне они неизвестны и поэтому здесь ниже кратко описываю, как с помощью Xmail отсылать почту из командой строки в openWrt.

Устанавливаем через make menuconfig пакет XMail.

Не знаю почему так, но после сборки openwrt в папочке /etc будет лежать некий архив MailRoot.tar.bz2, который как бы нужен для работы xmail. Поэтому следует его распаковать, видимо, но опять же. куда это сделать? Пусть будет папочка www для этой цели.

Т.е. создаем в www директорию MailRoot и туда помещаем содержимое архива.

Далее открываем файл /etc/config/xmail и видим там строки:

config xmail
        option  mail_root       '/var/MailRoot'

эти строки нам говорят, что директория www, куда мы распаковали архив, не совсем чтобы и верный выбор. Но раз уж выбрали директорию www, то и меняем эту строчку так:

config xmail
        option  mail_root       '/www/MailRoot'

Попробуем отправить письмецо. Делается это с помощью утилиты sendmail, входящей в состав xmail. Для sendmail нужен файл в определенном формате. Для примера создадим файл с письмом в /home/email.example:

From: [email protected]
To: [email protected]
Subject: test email from openwrt

hi
this is openwrt xmail.
bye!

Отправляем письмо из командной строки как-то так:

# sendmail [email protected]  

Получаем вот такое сообщение:

cannot find environment variable: MAIL_ROOT

Объявляем переменную MAIL_ROOT следующим образом:

export MAIL_ROOT=/www/MailRoot

отправляем снова:

# sendmail [email protected]  

Проверяем почту [email protected]. Письма нет. Смотрим содержимое директории:

# ls -l /www/MailRoot/spool/local/
-rw-r--r--    1 root     root           200 Jan 28 23:47 949092438000.3555.TR628M1
-rw-r--r--    1 root     root           200 Jan 28 23:47 949092445000.3576.TR628M1

Письма помещены в директорию для отправки, но не отправлены. Не отправлены по причине того, что не запущена сама служба Xmail. Сделать это можно так:

/etc/init.d/xmail start

либо просто перезагрузимся.

Смотрим на вывод ps:

# ps | grep Xmail
1941 root      5020 S    /usr/bin/XMail -Ms /www/MailRoot -PX 4 -B- -SX 4 -X-

вроде как норм.

Пробуем отослать письмо:

# sendmail [email protected]  

Письмо должно быть в почтовом ящике [email protected]. Правда есть одно "НО", если ваш ip-адрес будет в черном списке, то письмо будет отброшено сервером и не попадет в почтовый ящик.

 

Отправка почты в openWrt с использованием стороннего почтового сервиса.

Другой способ отправки почты в openwrt из консоли, но уже средствами стороннего почтового сервиса, используя протокол SMTP.

В данном случае будем использовать gmail.com

Установим/соберем в openwrt пакет ssmtp.

Настроим конфигурационный файл /etc/ssmtp/ssmtp.conf как-то так:

#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#

# The person who gets all mail for userids 

создадим файл /tmp/msg.txt с текстом письма:

Subject: ahaha
ohohoho

Отправим письмо сами себе следующей командой:

ssmtp [email protected] 

После отправки возможно появление сообщения об ошибке:

ssmtp: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 q4sm582746lfq.45 - gsmtp)

Чтобы её исправить, нужно перейти по ссылке: https://www.google.com/settings/security/lesssecureapps

и выбрать "Включить" в меню "Доступ к аккаунту" с непроверенных приложений.

Если необходимо письмо формировать динамически и без использования файлов, то командная строка может выглядеть так:

local email_cmd="ssmtp -t &lt&ltEOF\
From: \
To: \
Date: info\
Subject: сообщение ПУИД\
%s\
EOF"

16 примеров команд для отправки электронной почты из командной строки Linux

Независимо от того, являетесь ли вы разработчиком, непрерывно работающим с командной строкой Linux, или администратором сервера, которому нужны журналы или другие данные, извлеченные из администрируемых систем, и знающие, как отправлять электронную почту с помощью команды линия очень полезна.

В этом посте вы найдете примеры отправки электронной почты с терминала. Мы рассмотрим пользовательские конфигурации и коснемся того, как настроить SMTP-подключения к учетным записям электронной почты или поставщикам услуг электронной почты.Я покажу вам, как установить необходимые пакеты почтовой программы консоли, и предоставлю справочную информацию о параметрах командной строки на основе руководств по пакету.

Настройка пакетов почтовой программы командной строки

Все пакеты почтовой программы в руководстве доступны через расширенный диспетчер пакетов Debian, поэтому шаги установки в приведенном ниже примере можно использовать для всех представленных пакетов.

Обратите внимание, что эти части программного обеспечения могут быть установлены другими менеджерами пакетов по умолчанию, такими как yum или dnf , в зависимости от вашего дистрибутива Linux.

В большинстве случаев либо sendmail , либо postfix доступны в каждом дистрибутиве Linux из коробки, или, по крайней мере, об этом говорится в аналогичных сообщениях в блогах. Либо мне не повезло, либо другие ошибались, но мне пришлось установить один вручную. Однако один из них вам определенно понадобится для доставки электронной почты.

Настройка Sendmail с пакетом SSMTP

Я продолжу с sendmail и пакета SSMTP. SSMTP содержит пакет sendmail под капотом, как вы увидите, и он упрощает настройку, что в противном случае довольно сложно для sendmail .

Шаг 1. Проверьте, установлен ли пакет почтовой программы командной строки

Введите имя пакета почтовой программы точно так же, как вы бы запустили команду, чтобы проверить, доступна ли она:

  • Если пакет установлен, команда запускается, и приглашение изменяется — при попытке выполнить команду — и вы увидите мигающий курсор, за которым следует сообщение Имена получателей должны быть указаны в случае sendmail . Вывод: пакет установлен.

  • Если пакет НЕ установлен, вы получите предупреждающее сообщение и предложение, как его установить:

  $ sendmail

Программу sendmail можно найти в следующих пакетах:
 * exim4-демон-тяжелый
 * exim4-демон-свет
 * постфикс
 * цитадель-мта
 * курьер-мта
 * дма
 * esmtp-run
 * masqmail
 * мсмтп-мта
 * nullmailer
 * opensmtpd
 * qmail-run
 * sendmail-bin
 * ssmtp
Попробуйте: sudo apt install 
  

В этом примере я попробовал, работает ли команда sendmail .После добавления пакета SSMTP эта команда и команда ssmtp будут работать и изменять командную строку в терминале. Посмотрим на это!

Шаг 2. Установка пакета почтовой программы командной строки Sendmail

Как следует из вывода терминала, нам нужно запустить команду установки Advanced Package Manager — обычно с правами root — для установки необходимого пакета. Как упоминалось ранее, конфигурации для sendmail намного проще, если абстрагироваться от сложности конфигурации.Это можно сделать с помощью SSMTP:

  sudo apt установить ssmtp

  

Шаг 3. Проверьте установку

После завершения установки вы можете проверить, может ли sendmail пересылать сообщения. Введите в терминал приведенный ниже код:

  echo "Тема: привет" | sendmail [email protected]
  

Он должен отправить электронное письмо, если все работает правильно. Здесь строка "hello", , переданная по конвейеру команде sendmail , будет темой отправленного сообщения, в то время как определенный адрес электронной почты, естественно, является получателем электронной почты.

Вы запускаете команду … и, ой: sendmail: Не удается открыть mailhub: 25 . Причина в том, что мы вообще не предоставляли настройки mailhub. Для пересылки сообщений вам потребуется настроенный SMTP-сервер. Вот где SSMTP работает действительно хорошо: вам просто нужно один раз отредактировать его файл конфигурации, и все готово.

Шаг 4. Настройка SSMTP

Давайте разместим файл конфигурации по адресу /etc/ssmtp/ssmtp.conf . Здесь вы должны ввести приведенный ниже код для настройки SMTP-реле:

  UseSTARTTLS = YES
root = <ваш-адрес-электронной почты>
mailhub = smtp.gmail.com:587
AuthUser = <имя-пользователя-вашей-учетной записи>
AuthPass = <пароль вашей учетной записи>
  

Это означает, что вы настроили внешнюю службу, которая будет пересылать
ваших электронных писем. Например, когда вы вводите учетные данные для Gmail, вы увидите сообщения, отправленные с терминала, в каталоге «Отправленные» вашего почтового ящика. Конфигурации схожи и с другими сервисами.

Это была базовая конфигурация для sendmail и шаги установки для любого часто используемого пакета почтовой программы командной строки.Затем мы перейдем к установке и опробуем различные другие пакеты.

Отправка электронной почты с помощью команды SSMTP

Это симпатичный маленький инструмент, который мы только что настроили для доставки почты. Как следует из страницы man , это минималистичный эмулятор sendmail . Таким образом, SSMTP позволяет пользователям передавать электронные письма через SMTP-сервер из командной строки Linux. Он предоставляет средства для подключения к почтовому хабу с соответствующим файлом конфигурации. Если ваш файл конфигурации был настроен правильно, все ваши заботы об отправке электронной почты из командной строки могут исчезнуть.

Базовая реализация команды SSTMP:

Если вы просто используете SSMTP, команда должна выглядеть следующим образом:

  ssmtp [email protected]  

После команды ssmtp вы должны ввести адрес получателя, а затем вы можете включить файл, который будет отображаться в теле письма. Здесь вы можете определить заголовки для сообщения, перечислить других получателей и установить тип содержимого. Таким образом вы можете отправлять электронные письма в формате HTML.SSMTP интерпретирует ваше сообщение и правильно использует предоставленные значения. Вот пример HTML-кода, который вы можете отправить:

  Копия: [email protected]
Тема: Это электронное письмо в формате HTML
От: [email protected]
Тип содержимого: текст / html; charset = "utf8"


html>

Вы можете добавить сюда любой действующий HTML-код электронной почты.

Вы не можете предоставить дополнительные возможности SSMTP, поскольку они не соблюдаются из-за его минималистичного дизайна.

Устранение неисправностей:

Если вы столкнулись со следующей ошибкой в ​​командной строке:

  ssmtp: Ошибка авторизации (534 5.7.9
      http://support.google.com/accounts/bin/answer.py?answer=185833
      bk8sm8525341pad.28 - gsmtp)
  

, вероятно, потому, что Gmail не рассматривает SSMTP как безопасное приложение. Чтобы избавиться от этой ошибки, вам необходимо изменить настройки в своей учетной записи Gmail - там вы также можете найти дополнительную информацию о потенциальных рисках.

Отправка электронной почты с помощью команды Sendmail

С некоторых пор sendmail является классическим агентом передачи почты из мира UNIX. Впервые он был представлен в 1979 году, и его легко настраиваемый характер и масштабируемость сделали его стандартным для администраторов серверов.

Мы уже видели, как отправлять простые электронные письма с помощью команды ssmtp , поэтому давайте посмотрим на разницу, используя sendmail :

  echo "Тема: привет" | sendmail -v test @ example.com  

Я добавил аргумент -v , который сделает связь между почтовым сервером и вашим агентом передачи почты видимым.

Существует множество конфигураций, которые вы можете использовать, если вы настроите свой собственный почтовый сервер и реализуете на нем sendmail. Однако это выходит за рамки данной статьи. Мы вернемся к этой теме в одной из следующих. Следите за обновлениями.

Отправка электронной почты с помощью команды CURL

Этот инструмент также широко используется для передачи данных с сервера.Он поддерживает множество протоколов, таких как HTTP, FTP, POP3 или SMTP. Пакет CURL широко используется по всему миру, одна из основных причин заключается в том, что он имеет встроенную реализацию PHP, а PHP долгое время был языком сценариев на стороне сервера по умолчанию.

Установка:

Проверьте, установлен ли уже пакет. Если не запустите ниже:

  sudo apt установить curl
  

Когда вы закончите, вы можете получить доступ к шпаргалке с доступными параметрами для CURL, запустив curl -h .Более подробная версия доступна либо man curl , либо curl - manual . Если вы хотите получить более глубокие знания об использовании cURL, есть эта удобная электронная книга, которая содержит все, что вы когда-либо хотели бы знать.

Базовая реализация для отправки электронной почты с CURL:

  curl --url 'smtps: //smtp.gmail.com: 465' --ssl-reqd \
  --mail-from '[email protected]' --mail-rcpt '[email protected]' \
  --upload-file mail.txt --user 'developer @ gmail.com: ваш-аккаунт-пароль '
  

Чтобы отправить электронное письмо с CURL, вам необходимо настроить SMTP-соединение. Чаще всего для тестирования отправки электронной почты через SMTP используются серверы исходящей почты Google или Yahoo. Обратите внимание, что вы должны включить доступ для менее безопасных приложений в настройках Gmail, и аналогичные дополнительные настройки безопасности могут применяться и для Yahoo.

В приведенном выше фрагменте команды терминала параметры --url и --user определяют параметры подключения SMTP.Раздел пароля для параметра --user - это пароль вашей учетной записи для данного адреса электронной почты. Естественно, вы также можете использовать поставщиков облачных услуг электронной почты. Я покажу это с помощью Mailgun в следующем разделе.

Расширенная реализация для отправки электронной почты с CURL:

При работе с платформами доставки электронной почты сначала необходимо получить ключ API. В этом руководстве я покажу пример отправки электронной почты CURL с использованием Mailgun, поэтому, если вы застряли во время процесса регистрации, следуйте этому руководству по настройке, чтобы встать на правильный путь.

  curl -sv --user 'api: key-7e55d003b ... f79accd31a' \
    https://api.mailgun.net/v3/sandbox21a78f824...3eb160ebc79.mailgun.org/messages \
    -F from = 'Возбужденный пользователь ' \
    -F to = sandbox21a78f824 ... 3eb160ebc79.mailgun.org \
    -F [email protected] \
    -F subject = 'Привет' \
    -F text = 'Тестируем классность Mailgun!' \
   --form-string html = '

Блог EDMdesigner


Это руководство помогает мне понять отправку электронной почты из консоли Linux ' \ -F attachment = @ logo2yellow.jpg

Синтаксис довольно прост. Возможно, вы заметили раньше, но вам нужно заканчивать каждую строку команды \ символами. Это символ продолжения строки, команду можно запускать и без них в одной строке. Также следует помнить об опции -F . Выдержка из справочной страницы:

  -F, --form 
        (HTTP) Это позволяет curl имитировать заполненную форму
        в котором пользователь нажал кнопку отправки.Это вызывает завиток в данные POST с использованием Content-Type
        multipart / form-data согласно RFC 2388.
        Это позволяет загружать двоичные файлы и т. Д.
        Чтобы заставить часть 'содержимого' быть файлом, префикс
        имя файла со знаком @.
  

Как я рекомендовал ранее, при использовании этих команд почтовой программы командной строки рекомендуется погрузиться в руководства. Как сказано в руководстве CURL, в основном вы создаете форму для отправки. Каждая строка представляет собой запись в виде пары name = content .Когда вы прикрепляете файлы с локального компьютера, вам нужно указать @ перед именем файла.

Вот как будет выглядеть доставленное письмо:

Вы можете сделать то же самое, используя большинство других платформ доставки электронной почты, например, Sendgrid.

Отправка электронной почты в формате HTML из командной строки с помощью CURL:

Вы можете применить ту же логику построения формы в текстовом файле, что позволяет легко отправлять HTML-сообщения:

  Кому: customer @ gmail.ком
Тема: Это сообщение в формате HTML.
От: [email protected]
Тип содержимого: текст / html; charset = "utf8"



Вы можете добавить сюда любой действующий HTML-код электронной почты.

Если вы запустите простую команду из первого примера ...

  curl --url 'smtps: //smtp.gmail.com: 465' --ssl-reqd \
  --mail-from '[email protected]' --mail-rcpt '[email protected]' \
  --upload-file mail.txt --user 'developer @ gmail.com: ваш-аккаунт-пароль '
  

... и укажите параметр --upload-file в обновленный текстовый файл (в нашем случае - mail.txt), в полученном сообщении будет отображаться содержимое HTML.

Устранение неисправностей:

Вам может понадобиться переключатель --insecure , который позволяет CURL выполнять "незащищенные" SSL-соединения и передачи. CURL вернет сообщение об ошибке, если удаленный сервер использует самозаверяющий сертификат или если сертификат удаленного сервера не подписан ЦС, указанным в файле сертификата ЦС.

Отправка электронной почты с помощью команды Swaks

Как указано в их документации, Swaks - это гибкий инструмент тестирования SMTP с поддержкой сценариев и транзакций. Он может обрабатывать функции и расширения SMTP, такие как TLS, аутентификацию и конвейерную обработку, а также несколько версий протоколов SMTP. Он также поддерживает несколько методов транспорта, включая сокеты домена UNIX, сокеты интернет-домена и каналы для порожденных процессов.

Установка:

  sudo apt установить swaks
  

Базовая реализация для отправки электронной почты с помощью Swaks:

Для подключения к учетной записи SMTP вам необходимо предоставить флаги сервера -s , пользователя -au , пароля -ap и адреса -t (на который вы хотите отправлять почту). .Флаг -tls также важен, если вы подключаетесь к порту 587 .

  swaks --to [email protected]m -s smtp.gmail.com:587
      -tls -au  -ap 
  

Учетные данные также могут быть предоставлены через приглашения командной строки, если вы укажете только для аутентификации -a , а не вводя пользователя и пароль с помощью параметров командной строки.

Расширенная реализация отправки электронной почты с помощью Swaks:

  swaks - в почтовый ящик @ пример.com -s smtp.gmail.com:587 -tls -au  -ap  --attach -d ./mail.txt
  

Есть и другие варианты, которые мы сейчас не касаемся. Давайте перейдем к следующему пакету почтовой программы!

Отправка электронной почты с помощью команды Mutt

Mutt отличается от предыдущих почтовых клиентов, поскольку это многофункциональный почтовый клиент с командной строкой. Вы можете использовать его для чтения электронной почты из терминала Linux, подключения к локальным почтовым ящикам пользователей или к серверам POP / IMAP.Mutt поддерживает несколько форматов почтовых ящиков, таких как mbox, MH, maildir, MMDF, полный контроль над заголовками сообщений во время составления электронной почты, а также множественные теги и цвета сообщений для обработки сообщений.

Установка:

  sudo apt install mutt
  

Базовая реализация для отправки электронной почты с помощью mutt:

К этому моменту структура команды вас уже не удивит. Вы можете предоставить пустое тело сообщения с :

  # mutt -s "Test Email" user @ example.com  

Расширенная реализация для отправки электронной почты с помощью mutt:

Для отправки электронной почты с вложениями необходим флаг -a . Таким образом вы можете отправлять полезные файлы, такие как системные журналы, на указанный адрес.

  # mutt -s "Системные журналы" -a /opt/backup.sql [email protected]  

Вы также можете отправить электронное письмо в формате HTML, если расширение файла, которое вы добавляете в тело сообщения, имеет формат HTML. Mutt распознает тип файла и разрешит его, поэтому он не будет отправлять ваш HTML в виде обычного текста:

  mutt -s "Тема письма" @ пример.com  

Это для отправки электронной почты с помощью mutt. Если он у вас есть, я бы посоветовал попробовать, как вы можете работать с входящими сообщениями, настраивая свой почтовый ящик и обрабатывая входящие сообщения. Если вы это сделаете, поделитесь своими мыслями в разделе комментариев ниже. Я приветствую любое мнение о пакетах, показанных в руководстве.

Отправка электронной почты с помощью команды Mailx

Mailutils - это составной пакет для нескольких вариантов использования. Он предназначен для обслуживания обычных пользователей, системных администраторов и разработчиков.Мы коснемся только его основных функций, касающихся пересылки электронной почты. Если вас интересуют дополнительные возможности, ознакомьтесь с его страницей man .

Установка:

  sudo apt установить mailutils
  

Базовая реализация для отправки электронной почты с mailx:

Пакет mailx имеет 2 одинаковых синтаксиса команд ( mail и mailx работают одинаково). Самая упрощенная команда состоит из команды mail / mailx и адреса для отправки почты, но вы, вероятно, включите тему и хотя бы какое-то текстовое тело сообщения.Такая команда должна выглядеть так:

  echo "тело сообщения" | mail -s "тема" [email protected]
  

Используя команду echo и передавая вывод в команду mail , вы можете избежать дополнительных запросов mailx для адресов копии и тела сообщения.

Расширенная реализация для отправки электронной почты с mailx:

Для расширенного примера мы снова отправим полноценное электронное письмо в формате HTML. Нам нужно предоставить выбранный нами HTML-файл электронной почты с символом < и добавить «флаг добавления» к типу содержимого.Полный код выглядит следующим образом:

  mailx -a 'Content-Type: text / html'
      -s "Это действительно продвинутый mailx!"  

Вы также можете установить адрес возврата с помощью --return-address = , что может быть полезно. Другой полезный вариант, который я не мог решить для параллельной работы с электронной почтой HTML, - это прикрепление вложений к одному и тому же сообщению: -A "mail.txt" . Хотя вы можете указать нескольких получателей, можно прикрепить только одно вложение.Вы можете настроить внешний SMTP-сервер, если вам это нравится.

Использование альтернативной команды Openssl Telnet

Telnet - это интерактивный протокол связи для связи с другим хостом. Его можно использовать для открытия SMTP-соединения с другим сервером и передачи сообщений электронной почты. Однако, поскольку протокол не защищен, большинство серверов отклонят этот тип связи. Именно здесь на сцену выходит Openssl, поскольку он построен с включенной безопасностью SSL / TLS. Он вызывается аналогично telnet с аргументом хоста и неявно выполняет команду открытия:

  smiska➜ Рабочий стол / электронная почта »openssl s_client -connect smtp.gmail.com:465
                               -crlf -ign_eof
        ---
               вывод согласования сертификата из openssl
        ---

        220 smtp.gmail.com ESMTP j92sm925556edd.81 - gsmtp
            EHLO localhost
        250-smtp.gmail.com к вашим услугам, [78.139.22.28]
        250-РАЗМЕР 35882577
        250-8BITMIME
        250-АУТ. ЛОГИН ОБЫЧНЫЙ XOAUTh3 ОБЫЧНЫЙ-КЛИЕНТ-ТОКЕН OAUTHBEARER XOAUTH
        250-РАСШИРЕННЫЕ СТАТУСКОДЫ
        250-ТРУБОПРОВОД
        250-РАЗЪЕМ
        250 SMTPUTF8
            AUTH PLAIN * пароль хеш *
        235 2.7.0 Принято
            ПОЧТА ОТ: 
        250 2.1.0 ОК j92sm925556edd.81 - gsmtp
            rcpt на: 
        250 2.1.5 ОК j92sm925556edd.81 - gsmtp
            ДАННЫЕ
        354 Вперед j92sm925556edd.81 - gsmtp
            Тема: Это рассылка openssl

            Привет хороший пользователь
            .
        250 2.0.0 ОК 1339757532 m46sm11546481eeh.9
            покидать
        221 2.0.0 замыкающее соединение m46sm11546481eeh.9
        читать: errno = 0
  

Я выделил вводы, которые необходимо предоставить, пока канал связи открыт.Эти входные данные говорят сами за себя, но одна вещь, которую мне нужно уточнить, - это хэш пароля. Это может быть хэш в кодировке base64, который можно получить с помощью следующей команды: echo -en '\ [email protected] \ 000gmailpassword' | base64 . Управляющие символы из строки не могут быть пропущены. Если у вас не установлен пакет base64, он доступен через менеджеры пакетов.

Как вы можете видеть выше, этот способ отправки электронной почты предоставляет интерфейс только для текстовых сообщений, поэтому у него есть свои ограничения в случаях использования.С другой стороны, он показывает всю информацию, которой обменивается с почтовым сервером, что значительно упрощает отладку.

Устранение неполадок с почтой

Проверить журналы почты

Вам необходимо найти файл журнала, перейдя в соответствующую папку. Я предпочитаю использовать для этого свой редактор кода (например, Sublime Text), чтобы иметь журналы с подсветкой синтаксиса:

  $ sudo subl / var / журнал
  

В зависимости от вашего текущего дистрибутива Linux вам может потребоваться другой источник.
Журнал может содержать полезную информацию о проблемах с доставкой. На этом этапе, когда вы прокрутите страницу вниз:

, вы можете проверить успешность доставки или понять, почему процесс не удался.
Может случиться так, что ваша консоль не показывает ошибок, но в почтовом журнале вы можете видеть, что сообщение было поставлено в очередь для доставки, поэтому процесс не остановился на вашем компьютере, но, вероятно, был отклонен почтовым сервером, с которым вы пытались связаться .

Выполнение всех команд в последовательности

Итак, все готово к финальному тесту.Все команды почтового терминала собраны здесь в файле сценария. После того, как вы загрузили рабочую папку с файлом сценария в ней, перейдите в содержащую папку и сделайте сценарий исполняемым: chmod u + x mail.sh . Если у вас есть все файлы, которые я предоставил, вы можете начать тестирование команд почтовой программы, показанных в руководстве. Вам просто нужно заменить «<АДРЕС ПОЛУЧАТЕЛЯ>» на свой тестовый адрес электронной почты в коде и запустить ./mail.sh в командной строке.

Когда скрипт завершит работу, ваш почтовый ящик будет заполнен тестовыми электронными письмами.

Молодец!

Сводка

В этой статье я показал вам множество способов отправки электронной почты из командной строки Linux. Надеюсь, основываясь на том, что вы видели, вы также сможете самостоятельно установить и настроить эти службы на своем компьютере.

В сообщении были показаны наиболее часто используемые почтовые пакеты командной строки и способы отправки с ними электронных писем, и в конце я создал сценарий оболочки, который собирает все команды, используемые в статье.Вы можете загрузить рабочие файлы проектов здесь, и если вы установите пакеты, представленные в руководстве, а также заполните свои учетные данные и данные получателя, вы можете запустить сценарий на досуге.

Не могли бы вы следить за каждым шагом учебника? Что ж, это меня радует. Если у вас есть вопросы или вы видите возможность улучшить контент своими идеями, перейдите в раздел комментариев ниже.

Спасибо за внимание. Удачной отправки!

Как протестировать Sendmail из командной строки в Linux - База знаний

Что такое Sendmail?

sendmail - это очень простой и простой MTA (агент передачи почты), который, среди прочего, реализует SMTP (простой протокол передачи почты) и может использоваться для передачи электронной почты, как правило, даже на самых дешевых KVM VPS под управлением Linux.Хотя доступна коммерческая версия, которая называется «Sendmail», sendmail, который мы рассматриваем в этой статье с практическими рекомендациями, является его версией для UNIX, которая поставляется практически со всеми дистрибутивами Linux, а также с * BSD (FreeBSD , OpenBSD и варианты). Использование команды sendmail может быть самым простым способом отправки электронной почты через CLI оболочки Linux (интерфейс командной строки), помимо mailx, который можно использовать вместе с sendmail, чтобы еще проще отправлять и получать почту из командной строки. .Как уже следует из названия, сам sendmail может только отправлять электронные письма, но не сохранять полученные в почтовых ящиках POP или IMAP.

Где находится Sendmail и его файлы конфигурации?

Первая интересная информация, которая нам может понадобиться для тестирования sendmail, - это путь к двоичному файлу, который запускается, если мы вводим команду sendmail в нашей командной строке. Чтобы понять это, мы воспользуемся командой which, как показано ниже:

 [root @ box ~] # который sendmail
/ usr / sbin / sendmail 

Приведенный выше вывод означает, что полный путь к двоичному файлу нашей команды sendmail - / usr / sbin / sendmail, что вам следует запомнить для дальнейших действий.

Если вы хотите настроить файлы конфигурации sendmail, вы обычно можете найти их в каталоге / etc / mail / в системах UNIX (FreeBSD, OpenBSD) и Linux (CentOS, Fedora, Debian, Ubuntu). Основным файлом конфигурации sendmail является /etc/mail/sendmail.cf, однако его настройка не является частью этого руководства. Хорошее место для получения дополнительной информации - это справочная страница sendmail, которую вы можете просмотреть, выполнив команду man sendmail. Теперь перейдем к интересной части этого руководства по командной строке sendmail.

Как проверить команду Sendmail в Linux

Чтобы быстро проверить, правильно ли работает команда sendmail, затем использовать ее, например, в сценариях оболочки, через командную строку или даже из сценариев PHP (PHP поддерживает sendmail для отправки электронной почты из сценариев PHP - вы можете установить путь sendmail в своем файле php. ini), вы можете ввести следующую команду в своей системе UNIX или Linux:

 echo "Тема: проверка sendmail" | sendmail -v [email protected] 

[email protected] - это, очевидно, адрес электронной почты, на который будет отправлено тестовое письмо.Этот пример командной строки sendmail отправит пустое электронное письмо с темой «sendmail test» на адрес [email protected], если проверка прошла успешно. Вы также можете отправлять более длинные электронные письма, содержащие тему, текст и дополнительные заголовки, если хотите, но просто для проверки, работает ли sendmail, что обычно не требуется. Тем не менее, вот как это сделать:

1.) Создайте файл с именем mail.txt (или как угодно) в ~ / mail.txt с помощью vim, nano или вашего предпочтительного текстового редактора

2.) Вставьте в него следующий контент, но, конечно, измените адреса электронной почты, поскольку это просто примеры команд sendmail:

 Кому: мой @ адрес электронной почты.ком
Тема: sendmail, второй тест
От: [email protected] 
А вот и тело письма, test test test ..

3.) Наконец, мы отправляем только что созданный шаблон электронной почты: sendmail -vt <~ / mail.txt

Вот и все - теперь вы можете тестировать sendmail из командной строки и даже отправлять полные сообщения электронной почты, включая заголовки, из оболочки Linux / UNIX. Ниже приведен пример того, как простой тест sendmail может выглядеть в реальной системе:

Отправить почту и спам

Одна вещь, которую я хотел бы добавить, заключается в том, что из-за того, что PHP и другие скрипты обычно имеют доступ к двоичным файлам sendmail, их также можно использовать для рассылки спама и фишинговых писем, и это то, что может происходить на общих серверах, где были скомпрометирован из-за устаревшей CMS или ненадежных паролей.Если вы хотите узнать, какой скрипт или пользователь POSIX отправляет спам с помощью sendmail, вы можете выполнить следующую команду и обратить пристальное внимание на вывод:

 пс искусственный | grep sendmail 

Заключение Sendmail

Хотя sendmail может представлять некоторые риски для совместно используемых или незащищенных систем, это отличный легкий MTA, который можно использовать для отправки электронной почты из сценариев оболочки, приложений PHP или даже непосредственно из командной строки. Он также автоматически согласовывает STARTTLS для зашифрованной передачи электронных писем, если удаленный SMTP-сервер поддерживает его, что является полезной практикой безопасности.

5 способов отправки электронной почты из командной строки Linux

Все мы знаем, насколько важна электронная почта в наши дни для передачи информации. Есть много бесплатных поставщиков услуг электронной почты, которые мы использовали для использования, например Gmail, Yahoo, RediffMail и т. Д., Которые предоставляют веб-интерфейс для отправки и получения электронных писем. Но этого недостаточно, иногда нам также требуется отправлять электронные письма из системной командной строки. Это руководство предоставит вам несколько способов отправки электронных писем из командной строки Linux.Это полезно для отправки электронной почты через наши сценарии оболочки, cronjobs и т. Д.

Существуют различные способы отправки электронных писем из командной строки, но здесь я делюсь несколькими параметрами, используемыми большинством пользователей. Вы можете использовать любой параметр, указанный ниже, для отправки электронной почты из командной строки Linux.


1. Использование команды sendmail

Sendmail - самый популярный SMTP-сервер, используемый в большинстве дистрибутивов Linux / Unix. Sendmail позволяет отправлять электронную почту из командной строки. Используйте приведенные ниже инструкции для отправки электронной почты с помощью команды « sendmail ».

Создан файл с содержанием электронной почты:

 cat /tmp/email.txt

Тема: Отправка электронной почты через терминал

Электронная почта, строка содержания 1
Электронная почта, строка содержания 2
 

Тема: строка будет использоваться в качестве темы электронного письма.

Теперь отправьте электронное письмо с помощью следующей команды.

 sendmail [адрес электронной почты защищен] 

Подробнее: Установка и настройка Sendmail на CentOS / RHEL


2. Использование команды «mail»

mail - самая популярная команда для отправки электронной почты с терминала Linux.Используйте несколько из приведенных ниже примеров, чтобы отправить электронное письмо.

 mail -s "Test Subject" [электронная почта защищена] 
  • -s используется для определения темы электронной почты.

Также вы можете отправить вложение с помощью этой команды. Используйте -a для mailx и -A для mailutils.

 mail -a /opt/backup.sql -s "Резервный файл" [электронная почта защищена] 
  • Здесь -a используется для вложений. Используйте -A для систем на основе debian, которые используют пакет mailutils.

Вы можете столкнуться с проблемой: Bash: mail: command not found

Кроме того, мы можем добавить электронные письма, разделенные запятыми, чтобы отправить электронное письмо нескольким получателям вместе.

 mail -s "Test Email" [адрес электронной почты защищен], [адрес электронной почты защищен] 

3. Использование команды «mutt»

Mutt в основном используется для чтения писем с терминала Linux из локальных почтовых ящиков пользователей, также полезно для чтения писем с серверов POP / IMAP. Команда Mutt мало похожа на команду mail. Используйте несколько из приведенных ниже примеров, чтобы отправить электронное письмо.

 mutt -s «Тестовое электронное письмо» [электронная почта защищена] 

Отправить электронное письмо с вложением

 mutt -s «Тестовое электронное письмо» -a / opt / backup.d
 

Подробнее: Как настроить SSMTP-сервер в Linux


5. Использование команды telnet

По моему опыту, все системные администраторы используют команду telnet для проверки подключения удаленного порта или удаленного входа на сервер. Большинство новичков в Linux не знают, что мы также можем отправлять электронную почту с помощью telnet, что является лучшим способом устранения проблем с отправкой электронной почты. Ниже приведен пример отправки электронного письма.

Красный выделенный текст - это вводимые пользователем данные, а остальные - ответы на эти команды.] '.
220 fbreveal.com ESMTP Sendmail 8.13.8 / 8.13.8; Вт, 22 окт 2013 05:05:59 -0400
HELO yahoo.com
250 tecadmin.net Здравствуйте, tecadmin.net [127.0.0.1], рад познакомиться
почта от: [электронная почта защищена]
250 2.1.0 [адрес электронной почты защищен] Отправитель в порядке
rcpt to: [электронная почта защищена]
250 2.1.5 [адрес электронной почты защищен] Получатель в порядке
данные
354 Введите почту, оканчиваясь на "." на отдельной линии
Привет
Это только тестовое письмо

Спасибо
.
250 2.0.0 r9M95xgc014513 Сообщение принято к доставке
покидать
221 2.0.0 fbreveal.com закрытие соединения
Соединение прервано внешним хостом.

Спасибо за использование этой статьи. Вскоре мы добавим в этот список другие способы. Мы также просим вас помочь мне с другими командами, которые вы знаете и не перечислены выше.

Как протестировать Sendmail из командной строки Linux? [Решено]

Автор добровольно предоставил это руководство как часть программы Pepipost Write to Contribute.

Введение

Linux по умолчанию поставляется с командой mail , которую можно использовать для отправки почты из командной строки.Здесь, в этом руководстве, давайте разберемся со всеми предварительными условиями для тестирования sendmail из командной строки Linux и всем остальным, что вам нужно знать перед тестированием Sendmail.

Предварительные требования:

Вам нужно просто убедиться, что установлен агент пересылки почты (MTA), например sendmail или postfix и настроен на вашем сервере.

По умолчанию команда mail не может отправлять письма. Он может просто принять ваш запрос на отправку почты, а затем запрос может быть отправлен в MTA для sendmail.

Необязательный шаг: если у вас не установлены sendmail или postfix

Вы можете воспользоваться приведенными ниже ссылками, чтобы установить и настроить агент пересылки почты:

Postfix, безусловно, самый мощный открытый исходный код для отправки почты, но если вы просто хотите отправить простое тестовое письмо, попробуйте ssmtp или msmtp.
SSMTP фактически обесценился, поэтому рекомендуется использовать его альтернативу, например msmtp или OpenSMTPD.

Это более легкие версии MTA и не обязательно требуют, чтобы вы продолжали запускать их программы-демоны, как в случае с постфиксом.Он поддерживает большинство функций, таких как безопасная отправка почты или отправка почты с помощью Gmail.

Быстрый тест Sendmail из командной строки Linux

После завершения установки просто выполните следующую команду, и вы сможете отправить тестовое письмо из командной строки:

 echo «Мое сообщение» | mail -s subject [email protected] 

Использование echo с конвейером позволяет избежать отображения ненужных подсказок или подтверждений.

Необязательно Чтение

Если вы установили postfix или Sendmail, вы можете напрямую выполнить тест sendmail, используя следующую команду:

 / usr / sbin / sendmail user @ domain.com 

Для пользователей Ubuntu: вам необходимо сначала установить mailutils , а затем настроить сервер отправки почты или MTA.

Используйте следующую команду для установки mailutils:

 sudo apt-get install mailutils 

Для пользователей CentOS: вам необходимо сначала установить mailx , а затем настроить сервер отправки почты или MTA.

 sudo yum install -y mailx 

Примечание: если вы настроили почтовый сервер или агенты передачи почты, такие как Postfix или sendmail, и пытаетесь отправить тестовую почту с помощью Gmail SMTP и получаете некоторую ошибку аутентификации, тогда не нужно беспокоиться, потому что там Есть несколько дополнительных настроек безопасности, которые вам нужно сделать в Gmail.

Для отправки почты из Gmail необходимо включить «Доступ для менее безопасных приложений». Для получения дополнительной помощи перейдите по этой ссылке.

Bash-скрипт для отправки электронной почты - Linux Hint

Электронная почта - очень распространенное средство коммуникации в современном мире. Любой может легко общаться или делиться любым документом с друзьями, членами семьи и коллегами, отправив электронное письмо. Как правило, для отправки электронной почты люди используют любой бесплатный почтовый сервер, например Gmail, Yahoo, Hotmail и т. Д. Но вы можете легко отправлять электронную почту из командной строки в операционной системе Linux.В Linux есть много способов отправить электронную почту. В этом руководстве показаны некоторые распространенные и простые способы отправки электронной почты в операционной системе Ubuntu с терминала.

Инициализация:

Многие команды Linux доступны для отправки электронной почты из командной строки или с помощью сценария bash. Но никакая команда отправки электронной почты не будет работать, если в системе не настроен должным образом SMTP-сервер. Вы можете настроить свой собственный SMTP-сервер для отправки электронной почты из командной строки или использовать любой бесплатный SMTP-сервер любого известного поставщика услуг электронной почты, например Gmail или Yahoo.В этом руководстве используется SMTP-сервер учетной записи Gmail. Для выполнения этой задачи вам необходимо выбрать учетную запись Gmail и включить опцию «Разрешить менее безопасным приложениям» для этой учетной записи отправлять электронную почту. Вы можете посетить следующий учебник, чтобы включить эту опцию.

How to Send Email from PHP

После включения этой опции вы должны открыть файл «/etc/ssmtp/ssmtp.conf» с правами «root» и добавить следующие строки в конец файла. Вы должны установить свой адрес электронной почты на «AuthUser» и пароль на «AuthPass», чтобы завершить настройку.

UseSTARTTLS = YES
FromLineOverride = YES
[email protected]
mailhub = smtp.gmail.com: 587
[email protected]
AuthPass = пароль

Пример-1: Использование команды Sendmail

Одна из популярных команд отправки электронной почты в Linux - это sendmail. Пользователь может легко отправить электронное письмо из командной строки с помощью этой команды. Если пакет Sendmail не установлен в системе, выполните следующую команду, чтобы установить пакет.

Предположим, содержимое электронной почты хранится в файле с именем «email.txt» со следующим содержимым. Здесь текст после «Тема:» будет отправлен как тема электронного письма, а оставшаяся часть будет отправлена ​​как тело письма.

email.txt

Тема: Отправка электронной почты с помощью sendmail
Тестирование тела сообщения электронной почты

Запустите команду sendmail с адресом электронной почты получателя, как показано ниже.

$ sendmail [email protected]

Пример-2: Использование команды «mail»

Самая распространенная команда для отправки электронной почты в Linux - это команда mail.По умолчанию эта команда не установлена ​​в Ubuntu. Выполните следующую команду, чтобы установить команду `mail`.

$ sudo apt установить mailutils

Следующая команда покажет версию этой команды, если она установлена ​​в системе.

Параметр

‘-s’ используется в команде `mail` для определения темы электронного письма. Запустите команду «mail» с параметром «-s» с темой электронной почты и адресом электронной почты получателя, как в следующей команде. Он запросит адрес Cc :.Если вы не хотите использовать поле "Копия:", оставьте его пустым и нажмите клавишу ВВОД. Введите текст сообщения и нажмите Ctrl + D, чтобы отправить электронное письмо.

$ mail -s 'тема' [email protected]

Если вы хотите добавить в команду текст сообщения электронной почты, используйте оператор «<<<», как в следующей команде.

$ mail -s 'тема сообщения' [email protected] <<< 'тестовое тело сообщения'

Вы также можете добавить адрес электронной почты отправителя с помощью команды `mail`, используя опцию‘ -a ’.Следующая команда отправит электронное письмо с темой, «темой сообщения», именем отправителя и адресом электронной почты, «Admin <[email protected]>» и адресом электронной почты получателя, [email protected] и телом сообщения, «test message».

$ mail -s 'тема сообщения' -a От: Admin \
[email protected] <<< 'тестовое сообщение'

Вы также можете отправить тело сообщения электронной почты с помощью команды echo и pipe (|). Следующая команда использует команду pipe (|) для отправки тела сообщения.

$ эхо "тестовое сообщение" | mail -s "тема сообщения" [email protected]

Электронная почта может быть отправлена ​​нескольким получателям с помощью команды `mail` и добавления адресов получателей через запятую. Следующая команда будет отправлена ​​по электронной почте двум получателям.

$ mail -s "Проверка электронной почты" [email protected], [email protected]

Пример-3: Использование команды `mutt`

Как и команда `mail`, команда` mutt` по умолчанию не устанавливается в Ubuntu.Выполните следующую команду, чтобы установить команду `mutt`.

$ sudo apt install mutt

Команда `mutt` работает аналогично команде` mail`, но команда `mutt` имеет собственный редактор для отправки электронного письма. Выполните следующую команду с действующим адресом электронной почты, чтобы отправить электронное письмо.

$ echo «тестовое сообщение» | mutt -s "Тестовая электронная почта" [email protected]

Вы можете прикрепить любой файл, используя параметр «-a» с командой «mail» или «mutt». Следующая команда прикрепит элементы файла.txt при отправке электронного письма.

$ эхо "тестовое сообщение" | mutt -s "тема сообщения" -a items.txt - [email protected]

Пример-4: Использование команды «SSMTP»

Другая команда электронной почты - это команда ssmtp. Если ssmtp не был установлен раньше, сначала установите пакет. Команда установки для ssmtp показана в примере-1. Команды ssmtp и sendmail работают аналогично.

Выполните следующую команду с действующим адресом электронной почты.Введите тему и текст сообщения электронной почты. Нажмите ctrl + D, чтобы выйти и отправить электронное письмо.

$ ssmtp [email protected]

Пример 5: Использование команды mailx

Вы можете отправлять HTML-содержимое в теле письма, не отправляя просто текстовое сообщение. Создайте HTML-файл с именем «test.html» для использования в качестве тела сообщения.

test.html

Команда `mailx` работает как команда` mail`. Вы должны указать Content-Type как text / html для отправки HTML-содержимого в качестве тела сообщения в команде `mailx`.Следующая команда отправит содержимое файла test.html в качестве тела сообщения электронной почты.

$ mailx -a 'Content-Type: text / html' -s "Отправка электронной почты с помощью mailx"

Когда вы проверите папку «Входящие» учетной записи электронной почты получателя, список электронных писем будет показан как следующее изображение.

Заключение

Надеюсь, что читатель сможет легко отправлять электронную почту из командной строки в Linux после того, как правильно попрактикуется в приведенных выше командах.

Командная строка Linux Sendmail - Примеры | Форум веб-хостинга - Обзор

Sendmail - это SMTP-сервер, который используется для отправки почты через командную строку. Команда Sendmail в основном используется дистрибутивом Linux / Unix. С помощью sendmail вы можете отправлять почту через Cronjob, сценарий оболочки и т. Д. Мы определяем различные способы отправки электронной почты через командную строку, как показано ниже. Вы можете выбрать один из них для отправки электронного письма через командную строку в Linux.

1. Команда Sendmail:

Вы можете отправить электронное письмо через командную строку, просто используя команду «sendmail».Чтобы отправить электронное письмо с помощью команды Sendmail, сначала вам нужно создать файл и добавить указанный контент.

# cat /tmp/mymail.txt/

Тема: сервер не отвечает

Содержимое электронной почты Строка 1

Содержимое электронной почты Строка 2

Тема: определяет тему отправляемого письма.

После этого вы можете отправить электронное письмо с помощью данной команды.

Синтаксис:

# sendmail admin @ emp.com

2. Почтовая команда:

Вы также можете отправить электронное письмо с помощью команды mail в системе Linux.

Синтаксис:

# mail –s «тема» [email protected]

-s: s параметр используется для описания темы.

-a: опция используется для вложения.

3. Команда Mutt:

Команда mutt используется для чтения электронной почты на терминале Linux.Вы также можете читать электронные письма с других серверов, таких как IMAP / POP.

Синтаксис:

# mutt - s «электронная почта для сервера» [email protected]

Вы можете отправить электронное письмо с прикрепленным файлом, используя данную команду.

Синтаксис:

# mutt «электронная почта для сервера» - a /opt/myarticle.sql [email protected]

4. Команда SSMTP:

Используется команда Ssmtp для отправки электронного письма с SMTP-сервера.d

5. Команда telent:

Команда telent используется системным администратором для проверки возможности подключения удаленного порта. с помощью этой команды вы можете устранить проблемы с отправкой электронной почты.

Синтаксис:

# telent localhost smtp

Примеры команд Linux mail - отправка писем из командной строки - BinaryTides

Отправлять письма из командной строки

Возможность отправлять электронные письма из командной строки с сервера очень полезна, когда вам нужно программно сгенерировать электронные письма, например, из сценариев оболочки или веб-приложений.

В этом руководстве объясняется, как использовать команду mail в Linux для отправки писем из командной строки с помощью команды mail.

Как работает почтовая команда

Для тех, кому интересно, как именно команда mail доставляет почту получателям, вот небольшое объяснение.

Команда mail вызывает стандартный двоичный файл sendmail (/ usr / sbin / sendmail), который, в свою очередь, подключается к локальному MTA для отправки почты по назначению. Локальный MTA - это локально работающий smtp-сервер, который принимает почту через порт 25.

Команда почты

 -> / usr / sbin / sendmail -> локальный MTA (сервер smtp) -> MTA получателя (и почтовый ящик) 

Это означает, что smtp-сервер, такой как Postfix, должен быть запущен на машине, где вы собираетесь использовать почтовую команду. Если ни одна из них не запущена, вы получите сообщение об ошибке «send-mail: Cannot open mail: 25».

Установить почтовую команду

Команда mail доступна во многих различных пакетах. Эти пакеты доступны в репозиториях по умолчанию большинства популярных дистрибутивов Linux, таких как debian, ubuntu, centos и fedora.

Вот список некоторых распространенных пакетов, которые предоставляют команду mail.

1. gnu mailutils
2. heirloom-mailx
3. bsd-mailx

У каждого варианта есть свой набор опций и поддерживаемых функций. Например, команда mail / mailx из пакета heirloom-mailx может использовать внешний SMTP-сервер для отправки сообщений, в то время как два других могут использовать только локальный SMTP-сервер.

В этом руководстве мы будем использовать команду mail из пакета mailutils, который доступен в большинстве систем на основе Debian и Ubuntu.

Используйте команду apt-get для установки

 $ apt-get install mailutils 

Теперь у вас должна быть команда mail готова к работе.

примеры почтовых команд

Вот несколько примеров того, как использовать команду mail для отправки писем из командной строки. Эти примеры дадут вам общее представление о различных опциях и функциях, поддерживаемых командой mail.

Примечание: Если вы пытаетесь отправить тестовое письмо какому-либо почтовому провайдеру, например gmail или outlook, вам нужно будет запустить эти команды на сервере с правильной конфигурацией.Если вы попытаетесь отправить почту с локального компьютера или настольного компьютера, большинство спам-фильтров, вероятно, заблокируют ее.

1. Отправка простого письма

Выполните приведенную ниже команду, чтобы отправить электронное письмо на адрес [электронная почта защищена]. Параметр s указывает тему письма, за которой следует адрес электронной почты получателя.

 $ mail -s "Hello World" [адрес электронной почты защищен] 

Вышеупомянутая команда не завершается после нажатия Enter. Затем вам нужно ввести сообщение. Когда вы закончите, нажмите Ctrl-D в начале строки

.

 $ mail -s "Hello World" [адрес электронной почты защищен]
Копия:
Привет Питер
Как дела
я в порядке
Прощай
 

Оболочка запрашивает поле «Копия» (Копия).Введите CC-адрес и нажмите Enter или нажмите Enter, ничего не пропуская.

В следующей строке введите свое сообщение. Нажатие Enter создаст новую строку в сообщении. Закончив ввод сообщения, нажмите. Как только вы это сделаете, команда mail отправит сообщение для доставки и готово.

2. Тема и сообщение в одной строке

Чтобы указать тело сообщения всего в одной строке команды, используйте следующий стиль

 $ mail -s "Это тема" [адрес электронной почты защищен] <<< 'Это сообщение' 

Или вот так

 $ echo "Это тело" | mail -s "Тема" -aОт: Гарри \ <[электронная почта защищена] \> [электронная почта защищена] 
3.Взять сообщение из файла

Если сообщение электронной почты находится в файле, мы можем использовать его напрямую для отправки почты. Это полезно при вызове команды mail из сценариев оболочки или других программ, написанных, например, на perl или php.

 $ mail -s "Hello World" [адрес электронной почты защищен] 

Или быстро одинарный

 $ echo "Это тело сообщения" | mail -s "Это тема" [адрес электронной почты защищен] 
4. Укажите получателей CC и BCC

Другие полезные параметры в команде mail:

 -c адрес электронной почты (CC - отправить копию на адрес электронной почты)
-b адрес электронной почты (BCC - отправить скрытую копию на адрес электронной почты) 

Вот и пример того, как вы можете использовать эти опции

 $ mail -s "Hello World" [защита электронной почты] -c [защита электронной почты] -b [защита электронной почты] 
5.Отправка нескольким получателям

Также можно указать нескольких получателей, объединив их запятыми.

 $ mail -s "Hello World" [защита электронной почты], [защита электронной почты] 
6. Укажите имя ОТ и адрес

Параметр «-a» позволяет указать дополнительную информацию заголовка для прикрепления к сообщению. Его можно использовать для указания имени и адреса «ОТ». Вот быстрый пример

 # echo "Это тело сообщения" | mail -s "Это тема" [адрес электронной почты защищен] -aОт: [адрес электронной почты защищен] 

Параметр a в основном добавляет дополнительные заголовки.Чтобы указать имя отправителя, используйте следующий синтаксис.

 $ echo "Это тело" | mail -s "Тема" -aОт: Гарри \ <[электронная почта защищена] \> [электронная почта защищена] 

Обратите внимание, что нам нужно избегать меньших / больших стрелок, поскольку они имеют особое значение для приглашения оболочки. Когда вы вводите команду из какого-либо скрипта, вы можете это пропустить.

7. Отправить письмо пользователю локальной системы

Для отправки почты пользователю локальной системы просто используйте имя пользователя вместо адреса получателя

 $ mail -s Имя пользователя "Hello World" 

Вы также можете добавить «@hostname» к имени пользователя, где имя хоста должно быть именем хоста текущей системы.

8. Подробный вывод

Иногда при тестировании почтовых серверов вам может потребоваться проверить, какие команды SMTP используются почтовой командой. Используйте опцию "-v" для этого

 $ mail -v -s "Это тема" [адрес электронной почты защищен] <<< 'Это сообщение' 

Если почта не доставляется из-за, например, неправильно настроенного почтового сервера, журнал команд smtp покажет, что пошло не так.

Отправка почты с вложениями с помощью Mutt

Команда mail до сих пор могла делать некоторые базовые вещи, но в дальнейшем ей не хватает важных функций, таких как отправка вложений.

Итак, мы должны использовать другой инструмент командной строки, называемый mutt. Mutt похож на расширенную версию почтовой команды с очень похожим синтаксисом.

Пользователи Debian / Ubuntu могут установить mutt с помощью команды apt.

 $ apt-get install mutt 

Пользователи Fedora / CentOS или Red Hat Enterprise Linux (RHEL):

 $ yum install mutt 

Теперь вы готовы отправлять почту с вложениями с помощью интерфейса командной строки.

Отправить простое письмо

 $ echo "Это дворняга из вселенной" | mutt -s "Это тема для придурков" [адрес электронной почты] 

Отправить письмо с вложением

Используйте параметр «a», чтобы указать путь к файлу для прикрепления.

 $ mutt -s "Тема" -a / путь / к / файлу - [электронная почта защищена] 

Согласно синтаксису параметров mutt, файлы и получателей необходимо разделять двойным тире "-". Также опция "-a" должна быть последней.

Отправка почты с помощью сценариев bash / shell

Этот пример демонстрирует, как выходные данные команды могут использоваться в качестве сообщения в электронном письме.
Вот простой сценарий оболочки, который сообщает об использовании диска по почте.

 #! / Bin / bash
дю-ш | mail -s "отчет об использовании диска" [электронная почта защищена] 

Откройте новый файл и добавьте в него строки, указанные выше, сохраните его и запустите на своем компьютере.Вы получите электронное письмо с выводом «du -sh».

Читать почту

Это не что-то интересное, и вы бы не сделали этого в реальной жизни. Это просто показывают ради этого.

Команду mail можно использовать для чтения писем. Просто запустите его без параметров, и он отобразит все письма в вашем почтовом ящике

.

 $ почта 

Вот пример вывода

 $ почта
Реликвия mailx версии 12.5 20.06.10. Тип ? для помощи.
«/ var / mail / enlighted»: 7 сообщений 3 непрочитанных
 O 1 Просветленный Сб 6 дек, 11:33 21/658 Это тема
 O 2 Просвещенный Сб 6 дек, 11:34 773/25549 Это тема
 O 3 Просветленный Сб 6 дек. 16:43 20/633 Это тема
 O 4 Просвещенный Сб 6 дек. 16:44 20/633 Это тема
 Система доставки почты U 5 Сб, 6 декабря, 16:50 74/2425 Недоставленная почта возвращена отправителю
 U 6 Просветленный Сб 6 дек. 16:51 19/632 Это тема для дворняг.
 U 7 Просветленный Сб 6 дек. 16:52 19/647 Это тема для дворняг.
? 

В конце стоит вопросительный знак q, который представляет собой интерактивную подсказку, ожидающую вашей команды.Просто введите номер электронного письма, которое хотите прочитать, и нажмите Enter. Тогда он откроет почту.

После того, как вы закончите читать письмо, введите «q» и нажмите Enter, чтобы вернуться. Введите z и нажмите Enter, чтобы вернуться к списку писем.

Команда mail по умолчанию читает электронные письма из каталога «/ var / mail /». Таким образом, у каждого пользователя есть отдельный почтовый каталог.

Этот способ хранения и получения писем не очень полезен или практичен в реальной жизни, где почтовый адрес состоит из имени домена вместе с именем пользователя, а один сервер может размещать электронную почту для нескольких доменов.

Команда Maildir-utils

'mu' - это набор инструментов командной строки для Linux / Unix, которые позволяют быстро находить нужные сообщения электронной почты.

Пользователи Debian / Ubuntu могут использовать команду apt-get для его установки

 # apt-get install maildir-utils 

Для поиска писем от william с предметным отчетом используйте следующую команду -

 $ му найти из: william subject: report 

Для проверки текущих конфигураций почты используйте опцию info.

 # mu-tool info
ВЕРСИЯ = 2.99.97
SYSCONFDIR = / и т. Д.
MAILSPOOLDIR = / var / mail /
СХЕМА = mbox
LOG_FACILITY = почта
..... 

Заметки и ресурсы

Команда mail - это очень простая команда для отправки писем. Он должен присутствовать и правильно настроен на любом сервере Linux, чтобы письма создавались и доставлялись должным образом.

Команда mail в основном используется, когда вы пишете сценарии bash для автоматической отправки электронной почты с сервера. Кроме того, команда mail не очень полезна в качестве решения для электронной почты.

Если вам нужно настроить полную систему электронной почты на вашем сервере с возможностью отправлять и получать электронные письма в вашем собственном домене, тогда устанавливайте такие приложения, как postfix, dovecot.

Проверьте эту статью:
Установите почтовый сервер Postfix и Dovecot на Ubuntu или Debian

Если вы ищете более мощную почтовую программу, используйте такие команды, как mailx, swaks и т.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2021 © Все права защищены. Карта сайта