Это - довольно большое количество рабочих станций, престижности за то, что были достаточно храбры, чтобы вынести так много со статическим дюйм/с ;)
Вы могли установить постфикс или что-то еще в режиме только для реле и затем использовать или почту (x) или дурака для отправки почты. Оба могут отправить почту от командной строки.
Хорошим вариантом на Ubuntu мог бы быть nullmailer как MTA, поскольку это разработано для операции только для реле.
Если это - человечность затем, Вы имеете Python и можете использовать, это - smtplib модуль (не означает MTA на том же хосте). Существует немного образца, отправленного ниже для получения Вас, запустился (Вы могли бы хотеть поместить имя пользователя/передачу/конфигурацию в ini файл, сделать некоторую проверку ошибок и такой, но ''starttls'' строка шифрует остальную часть smtp сессии, если сервер поддерживает его.). Это дает Вам простой и безопасный. Возможно прикрепить вложения и так далее с небольшой дополнительной работой.
Вы назвали бы его как: mailsender.py "Это - мое сообщение".
#!/usr/bin/python
import smtplib
import sys
message = sys.argv[1]
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login('fromuser@gmail.com', 'password')
server.sendmail('fromuser@gmail.com', 'touser@somewhere.com', message)
server.rset()
server.quit()
Можно назвать ''mailsender.py'' от задания крона или сценариев оболочки.
Имелась та же проблема: среда Docker и полнофункциональный MTA уже были в контейнере, поэтому все типичные порты уже используются и, следовательно, не могут запускать MTA как обычно на хосте Docker, куда я хочу отправлять почту каждый раз, когда завершается резервное копирование.
Благодаря @davey я мог расширить его скрипт на Python для отправки действительных писем:
#!/usr/bin/python
# script to send mail via smarthost
# (do NOT name this script "smtplib.py")
# edit settings
debuglevel = 0
server_host = 'localhost'
server_port = 587
server_user = 'me@myhost.com'
server_pass = 'MyVerySecretP455W0RD'
address_from = 'me@myhost.com'
address_to = 'myothermailbox@otherhost.com'
mail_subject = 'backup completed'
# load requirements
import datetime
import smtplib
import sys
# check if message was given, else show usage
try:
sys.argv[1]
except IndexError:
print 'No message given! Usage: ' + sys.argv[0] + ' "my test message"'
quit(1)
else:
msg_content = sys.argv[1]
# format mailheader
msg_content = sys.argv[1]
msg_from = "From: " + address_from + "\r\n"
msg_to = "To: " + address_to + "\r\n"
msg_subject = "Subject: " + mail_subject + "\r\n"
msg_timestamp = '{:%a, %d %b %Y %H %M:%S %z}'.format(datetime.datetime.now())
msg_date = "Date: " + msg_timestamp + "\r\n"
msg = msg_from + msg_to + msg_subject + msg_date + "\r\n" + msg_content
# connect to smarthost, login, send mail and disconnect
server = smtplib.SMTP(server_host, server_port)
server.ehlo()
server.starttls()
#server.ehlo()
server.login(server_user, server_pass)
server.set_debuglevel(debuglevel)
server.sendmail(address_from, address_to, msg)
server.rset()
server.quit()
Вы можете использовать службу электронной почты, которая предоставляет REST API. Я использую mailjet. Они также предлагают совершенно бесплатную учетную запись (без CC). Просто зарегистрируйтесь у них и отправьте сообщение с помощью curl.