среда, 13 июля 2011 г.

SSMTP. Отправка почты через общедоступный сервер


На примере Gmail

Установка
# apt-get install ssmtp

Настройка
# nano /etc/ssmtp/ssmtp.conf
root=youremailhere@gmail.com
mailhub=smtp.gmail.com:587 # Почтовый сервер, через который отправляем почту
hostname= # Имя этой машины, на которой ssmtp запускается
AuthUser=username # Логин, для авторизации на почтовом сервере
AuthPass=password # Пароль
UseSTARTTLS=YES
FromLineOverride=YES

Отправка от имени текущего юзера
cat letter.txt | ssmtp admin@server.ru
$ echo "Test mail body" | ssmtp -s admin@server.ru

Отправка сообщения, уже записанного в текстовый файл
ssmtp admin@server.ru < message.txt

Если нужен заголовок, то его можно просто добавить в начало файла message.txt
echo "Subject: test message" > /tmp/newmessage; cat message.txt >> /tmp/newmessage; ssmtp admin@server.ru <tmp/newmessage

Полный список параметров можно посмотреть так
man -m 5 ssmtp.conf


tmp

Отправка по расписанию
crontab -e
SHELL=/bin/bash
MAILTO=user
0-59 * * * * подставь_строку_отправки_сообщения
Отправка e-mail'а при отсутствии пинга (завернуть в cron)
sh -c 'ping -c 1  || ssmtp -s admin@server.ru'
или
if ping -c 1 hostname | grep '100% packet loss'> /dev/null 
then
echo "server is down" | ssmtp -s admin@server.ru
fi

#! /bin/bash
TO="adresat@gmail.com"
TXT="Test message"
MSG=$TXT SUB=$TXT
SUB=$TXT
echo $MSG | mail -s $SUB $TO

Комментариев нет:

Отправить комментарий