Raspberry Pi пошли мне письмо по электронке

pochta-1104-7
Обилие мелких сетевых плат, работающих под управлением Linux — таких как например, Raspberry Pi — является благом для разработчиков. Достаточно легко поставить небольшой дешевый компьютер в сети и в общем то всё. Тот факт, что Linux имеет много программного обеспечения является обоюдоострым мечом. С одной стороны, это хорошая ставка, что все, что вы хотите сделать, будет сделано. С другой стороны, некоторые из решений являются немного большим для крошечной встраиваемой системы.

Возьмем, к примеру, электронную почту. Исторически сложилось так, хосты Linux работают как агенты переноса почты, которые могут отправлять и получать почту для всех своих пользователей и, возможно, даже пересылать почту другим. В современном мире, это, как правило, избыточно, но возможность есть. А можно установить большие агенты передачи почты в Raspberry Pi. Возникает вопрос: а оно надо?

pi letter

Кому надо читаем далее, остальные листаем дальше.

ЧТО ТЫ ХОЧЕШЬ?
Ответ, конечно, зависит от того, что вы хотите сделать. Если нет у вас есть интерфейс для отправки текста и, возможно, даже файлов, используя внешний почтовый сервер (как, скажем, Gmail), то вопросв нет. Вам не нужно кусок программного обеспечения прослушивания входящих соединений, а также несколько пользователей, проблемы будут только нарастать.

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

ПОЧТА ВНЕШНИЕ ИНТЕРФЕЙСЫ
Давайте решим проблему отправки почты в первую очередь. Если вы пытаетесь захватить пакет mailutils, вы увидите, что он потянет за собой много вещей, включая MySQL. Имейте в виду, ничего из этого не будет на самом деле отправить почту. Тот же SQL просто дает вам некоторые инструменты, чтобы получить почту готовую к отправке и хранения писем.

К счастью, пакет BSD-mailx имеет гораздо меньше накладных расходов и будет делать эту работу. Какие варианты есть с mailx? Мы можем делать такие вещи , как прикрепить файлы, установить объект, а также указать адреса.

Это немного трудно настроить для Gmail, хотя, будет безопаснее. Нам понадобится инструмент Certutil из пакета libnss3-инструментов. Нам нужно создать хранилище сертификатов, импортный сертификат Google, а затем создать много вариантов mailx.

SSMTP
По умолчанию, программы, такие как mailx и другие команды почтовых Linux полагаются на бекенд сервер (часто это Sendmail). Мало того, что таскать слишком много накладных расходов, это также полная система почты, отправка и прием и ретрансляцию-избыточна для наших маленьких Pi компьютеров.

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

#
# Конфигурационный файл для SSMTP Sendmail
#
# Человек, который получает всю почту для идентификаторами пользователей <1000 # Сделать это поле пустым, чтобы отключить перезапись. корень = смотритель # Место, где почта идет. Требуется фактическое имя машины нет # MX записи консультации. Обычно почтовых серверов называются mail.domain.com mailhub = smtp.gmail.com: 587 # Где почта, кажется, пришли? rewriteDomain = yourdomain.com # Полное имя хоста имя хоста = yourhostname AuthUser = YourGmailUserID AuthPass = YourGmailPassword UseTLS = Да UseSTARTTLS = YES # Могут ли пользователи могут устанавливать свои собственные From: адрес? # YES - Разрешить пользователю указать свои собственные From: адрес # NO - Используйте систему сгенерированный From: адрес FromLineOverride = YES

Мы сможем использовать почтовый агент как mailx или просто использовать SSMTP напрямую:

SSMTP blackpearl@csql.ru

Введите сообщение на стандартном вводе и закончить его с помощью Ctrl + D (стандартный конец файла для Linux).

АУТЕНТИФИКАЦИЯ GOOGLE

Там только одна загвоздка. Если мы используете Gmail, то мы обнаружим , что Google хочет , чтобы мы использовали сильную аутентификацию. Если вы используете два-фактора (то есть, Google Authenticator), это не будет работать вообще. Нам нужно сгенерировать пароль приложения . Нам необходимо включить "Доступ для менее безопасного приложения" настройки. Если мы не хотим , чтобы делать это на основной учетной записи электронной почты, принимая во внимание , можно сделать почтовый ящик , который используется только для передачи данных от Pi.

ОТПРАВКА ФАЙЛОВ
В зависимости от почтового программного обеспечения вы используете, есть несколько способов, которыми вы можете прикрепить файл. Тем не менее, программа Mpack делает его очень легко:

MPACK -a -s 'Файл данных' datafile.csv me@hackaday.com~~HEAD=dobj
Приведенная выше команда будет посылать datafile.csv как вложение с темой "Файл данных." Довольно просто.

ПОЛУЧЕНИЕ ПОЧТЫ
Что делать, если мы хотим, чтобы полностью изменить процесс и получать почту на Pi? Существует программа под названием Fetchmail, которая может захватить электронную почту с сервера IMAP или POP3. Можно сделать это только прочитав первое непрочитанное сообщение и отправив его в сценарий или программу по нашему выбору.

Мы должны создать конфигурационный файл (или использовать fetchmailconf программу, чтобы построить его). Например, вот простой файл .fetchmailrc:

poll imap.gmail.com
protocol IMAP
user "user@gmail.com" with password "yourpassword" mda "/home/pi/mailscript.sh"
folder 'INBOX'
fetchlimit 1
keep
ssl

Мы можем оставить "держать" линию, если мы не возражаем против использования Fetchmail, исключив почту после обработки. Файл должен быть в нашем домашнем каталоге (если не указан с опцией -f) , и он должен быть не для чтения и записи другими пользователями (например, CHMOD 600 .fetchmailrc). По данным поддерживается сервером FAQ , есть некоторые проблемы с Gmail, так что вы можете рассмотреть некоторые из предложений , представленных. Тем не менее, для простых задач , как это, вы должны быть в состоянии работать все это.

В частности, mailscript.sh файл, где вы можем обрабатывать сообщения электронной почты. Можно, например, искать определенные команды ключевых слов и предпринять определенные действия (возможно, с помощью SSMTP ответа).

СПЕЦИАЛЬНАЯ ДОСТАВКА
Мы не могли бы думать о Raspberry Pi в качестве сервера электронной почты. Тем не менее, тот факт, что это настройка Linux означает, что вы можем использовать все виды интересных инструментов, предназначенных для больших компьютеров.

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