Hostwinds Учебники

Результаты поиска для:


Содержание


Что такое smtp-cli?
Предпосылки
Настроить
Зависимости
CentOS / Fedora
Ubuntu / Debian
Скачать репозиторий SMTP-CLI
Создайте файл пароля электронной почты
Отправка почты с помощью smtp-cli
Вот шаблон кода для сценария bash
И вот письмо, которое было отправлено
Некоторые другие полезные аргументы smtp-cli
Исправление проблем

Как использовать smtp-cli для создания простого агента отправки почты (Linux)

Теги: Email,  Linux 

Что такое smtp-cli?
Предпосылки
Настроить
Зависимости
CentOS / Fedora
Ubuntu / Debian
Скачать репозиторий SMTP-CLI
Создайте файл пароля электронной почты
Отправка почты с помощью smtp-cli
Вот шаблон кода для сценария bash
И вот письмо, которое было отправлено
Некоторые другие полезные аргументы smtp-cli
Исправление проблем

Что такое smtp-cli?

Чтобы лучше понять, что такое SMTP-CLI, давайте поговорим о том, что это не так;SMTP-CLI не является сервером электронной почты или реле;Это также не способ отправки больших объемов почты.Это почтовый клиент, который позволяет отправлять текст, HTML, файлы и изображения из командной строки и сценариев.

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

Предпосылки

  • удаленный почтовый сервер с вашей учетной записью электронной почты
  • a VPS that requires mail to be sent outbound
  • Доступ из командной строки к вышеуказанному VPS (через SSH или Get VNC)

Настроить

  • 1 Hostwinds VPS с CentOS 7
  • учетная запись электронной почты cPanel
  • для доступа будет использоваться SSH-клиент Putty

Зависимости

Мы будем использовать Git, чтобы захватить сценарий SMTP-CLI из GitHub. Если у вас уже нет, вы можете установить его так:

CentOS / Fedora

# yum install -y git

Ubuntu / Debian

# apt-get install -y git

Скачать репозиторий SMTP-CLI

# git clone https://github.com/mludvig/smtp-cli.git

Сценарий SMTP-CLI (часть прогонов) расположен внутри каталога, называемого SMTP-CLI, а внутри - это файл, называемый SMTP-CLI (флаг -l в команде позволяет нам посмотреть атрибуты файла, чтобы убедиться, что это исполняемый).

# ls -l smtp-cli

Если эти «X» вместо этого «-», затем запустите эту команду, чтобы сделать файл исполняемого файла.

# chmod +x smtp-cli/smtp-cli

Теперь мы можем проверить, работает ли он.

# smtp-cli/smtp-cli

Это должно привести к такой ошибке

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

Теперь мы собираемся проверить наш глобальный PATH (где VPS проверяет, когда я запускаю что-то из командной строки без полного пути)

# echo $PATH

И скопируйте smtp-cli в каталог sbin пользователя в PATH по умолчанию.

# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*

Теперь мы можем запустить SMTP-CLI из любого каталога на VPS, не беспокоясь о том, чтобы включить полный путь к файлу.

Создайте файл пароля электронной почты

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

Поскольку я бегаю как пользователь root и создавая корневой Cronjob, этот файл будет в / root / directory. Ваша работа CRON может быть в вашем пользователе Crontab в зависимости от привилегий, которыми вы предоставляются вашим системным администратором, в этом случае вы можете хранить это в / Home / имя пользователя.

# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd

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

Отправка почты с помощью smtp-cli

Теперь мы переходим к хорошей части - отправке электронного письма как части скрипта или из командной строки. Я собираюсь протестировать его, отправив файл, который мы создали как часть нашего руководства vnstat.

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

# smtp-cli --verbose --server mail.emaildomain.TLD:587 --enable-auth --user smtp-cli_guide@emaildomain.TLD --pass $(cat /root/.passwd) --from smtp-cli_guide@emaildomain.TLD --to test2@emaildomain.TLD --subject VPS-stats --attach /var/www/html/vps_bandwidth_stats.png

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

Вот шаблон кода для сценария bash

#!/etc/bash

smtp-cli --verbose --server mailservername.emaildomain.TLD:587 --enable-auth --user login-user@emaildomain.TLD --pass $(cat /root/.passwd) --from email_orinator@emaildomain.TLD --to email_destination@emaildomain.TLD --subject subject-line --attach /full/path/filename.tosend >> /path/to/logfile.log

И вот письмо, которое было отправлено

Некоторые другие полезные аргументы smtp-cli

--help
--body-plain=<text|filename>
--body-html=<text|filename>

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

Исправление проблем

Несколько различных вопросов могут возникнуть при использовании скрипта. Первый вопрос будет как ваш почтовый сервер аутентичен. Вы вводите полный адрес электронной почты или просто имя пользователя? Это то, что вам нужно после аргумента -USER. Пример предполагает, что вы вводите полный адрес электронной почты в качестве -USER. Используйте какие учетные данные, которые вы обычно используете для вашего сервера.

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

Третий - это имя сервера и выбор порта поля Server. Это имя должно быть полностью квалифицированным доменом имени вашего исходящего почтового сервера, за которым следует A: Portnumber. Стандартные порты для SMTP составляют 25, 587, 465.

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

Написано Paul Schene  /  Июль 10, 2020