Я хочу знать, можно ли получить вывод моего сценария резервного копирования или какие-либо его ошибки по электронной почте с помощью Google (или любого другого SMTP-сервера). Я не хочу устанавливать почтовый сервер на свой локальный компьютер. Какой скрипт или инструмент мне следует использовать для обеспечения этой функции?
Есть и другие варианты использования mutt
для отправки писем через внешний SMTP-сервер.
Гвоздь буду делать то, что вы хотите, и не более того.
Обе Esmtp и sSMTP замените sendmail (или Postfix, или Exim или что-то еще) простым почтовым ретранслятором, который будет ретранслировать все через внешний SMTP-сервер.
Есть преимущества в установке надлежащего MTA. Nail, Mutt и sSMTP не имеют понятия очереди. Если SMTP-сервер не работает, все они выдают вам сообщение об ошибке и забывают об электронном письме, которое вы им только что отправили.
ESMTP делает есть очередь, но это не демон, поэтому он не управляет ею активно. Он будет повторять каждое письмо в очереди всякий раз, когда вы пытаетесь отправить новое письмо. Это может вызвать то, что я люблю называть «синдромом лондонского автобуса»: вы весь день ждете электронного письма, а затем сразу приходит 10 000 писем.
Есть так много хороших инструментов, использующих электронную почту, что я настоятельно рекомендую вам пересмотреть идею локального почтового сервера. Если вас беспокоит безопасность, ограничьте сервер приемом сообщений только от localhost.
Теперь, если вы согласны, cron будет отправлять вам электронные письма с результатами работы скрипта. Если вы хотите получать сообщения только тогда, когда что-то идет не так, добавьте коды выхода в скрипт и проверьте их в crontab: if /backup/script >/tmp/bkup.txt; then cat /tmp/bkup.txt; fi
. Или, если вы хотите отправить вывод в другой почтовый ящик, напишите ...then mail me@somewhere </tmp/bkup; fi
И даже если вам все еще не нравится эта идея, вы можете использовать ssmtp
отправить почту аналогичным образом :)
Я нашел еще один хороший инструмент MSMTP для отправки писем с использованием внешнего smtp или gmail smtp. Как было предложено выше, когда я настроил ssmtp, я получаю все письма, которые для меня выброшены, например, письма cron и письма, созданные munin-cron и другими приложениями.
Шаги настройки MSMTP MSMTP может считывать все необходимые параметры из командной строки.
touch ~/.msmtprc
chmod 0600 ~/.msmtprc
vim ~/.msmtprc
# Use an external SMTP server with insecure authentication.
# (manually choose an insecure authentication method.)
# Note that the password contains blanks.
defaults
######################################################################
# A sample configuration using Gmail
######################################################################
# account name is "gmail".
# You can select this account by using "-a gmail" in your command line.
account gmail
host smtp.gmail.com
tls on
tls_certcheck off
port 587
auth login
from somebody@gmail.com
user somebody
password somesecret
######################################################################
# A sample configuration using other normal ESMTP account
######################################################################
# account name is "someplace".
# You can select this account by using "-a someplace" in your command line.
account someplace
host smtp.someplace.com
from someone@someplace.com
auth login
user someone
password somesecret
# If you don't use any "-a" parameter in your command line,
# the default account "someplace" will be used.
account default: someplace
Test
cat <<EOF | msmtp -a gmail someone@gmail.com
Subject: test
This is a test!
EOF