Хроники Knowledge Base Slackware FAQ Tools Акела Озеро Селигер Путешествия Рецепты Обои Фоторедактор Сертификаты Контакты
Linux

Создано: 11 Августа 2008г.   10:39
Модифицировано: 19 Ноября 2012г.   11:38

[ Назад ]

E-mail


Письма из консоли на внешние адреса желательно отправлять через внешний SMTP сервер чтобы они не были отправлены в спам. Для этого можно настроить пересылку на локальном почтовике (например использовать msmtp) или настроить почтовую программу (например mutt)
Mail
mail -s "Тема письма" [-c cc-addr] [-b bcc-addr] pupkin@mail.ru
Привет!
Я пишу тебе из консоли!
Ctrl+D
или
mail -s "Письмо из файла" pupkin@mail.ru < mail_body.txt
или
ls | mail -s "Вывод команды" pupkin@mail.ru

Отправка e-mail писем с вложениями из консоли при помощи mail и uuencode
Для установки утилиты uuencode
yum install sharutils
uuencode image.jpg image.jpg | mail -s "Тема сообщения" user@domain.com
(Второе image.jpg новое имя для вложения )
или для нескольких файлов:
(uuencode image1.jpg image1.jpg; uuencode image2.jpg image2.jpg) | mail -s "Тема сообщения" user@domain.com

Mutt
Отправка письма:
mutt -x -s "Тема" user@domain.com
-x эмулировать mailx (не запускать интерфейс программы)
После ввода текста в интерактивном режиме ввести .
или
mutt -x -s "Тема" user@domain.com < message.txt
mutt может отправлять почту непосредственно через gmail (или другой smtp сервер). Для этого достаточно добавить всего одну строчку в /etc/Muttrc или ~/.muttrc (или же ~/.mutt/muttrc)
set smtp_url=smtp://my.name:password.gmail.com:587/
Данный пример приводится, естественно, для gmail. Я бы рекомендовал эту строчку добавлять не в глобальный файл, а в ~/.muttrc, так как эта строка содержит логин и пароль в явном виде. И для пущей безопасности сделать
$ chmod 600 ~/.muttrc


Возможно не использовать конфигурационный файл а задать все в коммандной строке:
echo test | mutt -x -e "set smtp_url=smtp://192.168.0.1" -e "set from="admin@domain.com"" -s тема user@domain.com
-e выполнить комманду конфигурационного файла. Можно задать любой параметр из файла /etc/Muttrc. (Посмотреть все параметры mutt -D)
-n не использовать конфигурационный файл
Для отправки письма в формате html добавить
-e "set content_type="text/html""

Отправка e-mail писем с вложениями из консоли при помощи Mutt и MIME кодирования

mutt -s "Test mail" admin@test.com -a /path/to/attachment.ext < /path/to/message.txt

или
echo "message" | mutt -s "Test mail" admin@test.com -a /path/to/attachment.ext

при вложении нескольких файлов отделять имена файлов и адреса --
mutt -a img.jpg *.png -- addr1 addr2


msmtp
SMTP-клиент msmtp отвечает за передачу сообщений на SMTP-сервер и может с успехом использоваться с Mutt и другими транспортными почтовыми агентами. msmtp не ограничивает клиента одной учётной записью, в поддержке - DSN, IPv6, различные методы авторизации на сервере, TLS-шифрованное соединение (включая организацию обмена сертификационными любезностями между удалённым сервером и клиентом). Насторойка mutt:
echo "set sendmail=/usr/bin/msmtp" > ~/.muttrc
Настройка msmtp (файл ~/.msmtprc):

account default host smtp.gmail.com port 587 auth on tls on tls_starttls on tls_certcheck off from my.name@gmail.com user my.name@gmail.com password password
chmod 600 .msmtprc
Можно не использовать конф. файл а задавать в командной строке
Отправка сообщения:
printf "From: test@example.com\nTo: user@example.com\nSubject: Test\nThis is a test message" | msmtp --host=192.168.0.1 --domain=mail.example.com --auto-from=on -t

http://msmtp.sourceforge.net/

mpop
mpop - маленький, весьма шустрый POP3-клиент, фильтрующий почтовые сообщения по заголовкам, избавляя пользователя от необходимости скачивать ненужные сообщения. Среди прочего, обеспечивается доставка почты в файлы mbox и директории maildir, либо передача её агенту доставки, поддерживается большинство способов аутентификации, TLS/SSL, а в новой версии улучшена настройка конвейерной обработки для POP3. http://mpop.sourceforge.net/

Черные списки
Для проверки нахождения IP адреса в том или ином DNSBL нужно выполнить DNS запрос при помощи любой стандартной утилиты (dig, host, nslookup) на поиск PTR записи. При этом непосредственно обращаться к серверу DNS провайдера службы «черных списков» не требуется. Достаточно обратиться к собственным локальным серверам DNS, которые автоматически передадут запрос в службу «черных списков» в соответствии с указанием в запросе PTR. Например, для обращения к провайдеру Spamhaus.org, дабы определить, содержится ли адрес 198.0.0.1 в его «черных списках», требуется сформировать запрос следующим образом:
host 1.0.0.198.spamhaus.org
Ответ на запрос может варьироваться в зависимости от спецификаций используемого провайдером сервера DNS, но, как правило, положительный ответ представляется адресом из адресного пространства 127.0.0.x (при этом адрес 127.0.0.1 не задействован, поскольку он зарезервирован спецификацией протокола TCP/IP для адреса localhost). Если запрашиваемый адрес отсутствует в базе данных провайдера «черных списков», ответ на запрос не возвращается или возвращается ошибка NXDOMAIN (несуществующий домен). Благодаря этому стандарту на возвращаемые результаты запроса, разработчики могут свободно включать в почтовые фильтры поддержку большинства динамических провайдеров «черных списков».

Некоторые DNSBL: Spamhaus (http://www.spamhaus.org/) для запроса использовать суффикс sbl-xbl.spamhaus.org SpamCop (http://www.spamcop.net/) bl.spamcop.net Spam and Open Relay Blocking System (SORBS — http://www.dnsbl.us.sorbs.net/) dnsbl.sorbs.net Composite Blocking List (CBL — http://cbl.abuseat.org/) cbl.abuseat.org Dnsbl.net.au (http://www.dnsbl.net.au/) t1.dnsbl.net.au

Статьи на тему черных списков:
Как проверить, числится ли какой-то (мой) IP в каких-то RBL ?
Ограничение доступа к веб-сайту с использованием DNSBL Проверка по всем DNSBL
http://www.winzone.ru/articles/366/
http://www.declude.com/Articles.asp?ID=97
http://blog.sjinks.org.ua/php/123-using-dnsbl-to-fight-comment-spam/



Про Bcc:
Чтобы с/п telnet отправить "слепую" копию письма.
Bcc: нужно указать после DATA, но обязательно предварительно указать bcc-получателя в поле конвертного получателя, то есть в RCPT TO

Если отправитель указал получателя в Bcc и отправил письмо через какой-либо почтовый клиент (MUA), то эта почтовая программа должна будет размножить письмо в соответствии со списками получателей в To:(если они указаны) & Bcc:, указав в поле получатель получателя из To: (если он был) или вообще опустив это поле (если в To: не был указан никто) и безусловно убрав подзаголовок Bcc:, а затем отправит на почтовый сервер.
Если отправитель использует для отправки telnet, то sendmail сам сформирует заголовок письма вышеописанным способом, и отправит письмо.
То есть в любом случае Bcc будет отсутствовать, и стало быть проверить его будет невозможно.

SMTP авторизация
Для отправки из telnet письма в случае использования авторизации:
Подключить ся к серверу и в ответ на пиветствие ввести команду EHLO. Будет выведен список поддерживаемых методов.
Для авторизации ввести команду:
AUTH PLAIN xxxxxxxxxxxxxxxxxx
где xxxxxxxxxxxxxxxxxx - строка в кодировке base64, содержащая закодированные имя и пароль.
Для получения этой строки можно использовать команду:
perl -MMIME::Base64 -e 'print encode_base64("\0user\@example.com\0001234567890");'
Здесь логин: user@example.com
пароль: 1234567890
Если строка пользователя или пароля начинается с восьмеричной цифры, нужно использовать три нуля вместо одного, после начального обратного слэша.
Если в строках есть символы которые perl интерпретирует особым образом, нужно использовать экранирование perl`a для предотвращения их неверного восприятия.


Отправка сообщения из скрипта

SUBJECT="Automated Security Alert"
TO="alarms@ariejan.net"
MESSAGE="/tmp/message.txt"
echo "Security breached!" >> $MESSAGE
echo "Time: `date`" >> $MESSAGE
/usr/bin/mail -s "$SUBJECT" "$TO" < $MESSAGE
rm $MESSAGE

или
SUBJECT="Automated Security Alert"
TO=”alarms@ariejan.net”
/usr/bin/mail -s "$SUBJECT" "$TO" <




Р.Блам Система электронной почты на основе LINUX http://debback.blogspot.com/search/label/%D0%BF%D0%BE%D1%87%D1%82%D0%B0 http://www.nongnu.org/gir/people/daa/texts/linuxmail.html

[ Назад ]







Powered by Parser & MyCMS Дмитрий Ульянов, 2001-2024 (с)