Ульянов.ру
Хроники Knowledge Base Slackware FAQ Tools Акела Озеро Селигер Путешествия Рецепты Обои Контакты
30 Июля 2010г.   03:55

[ Назад ]

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 sudo 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 кодирования echo "Текст письма" | mutt -x -s "Тема сообщения" -a image.jpg user@domain.com при вложении нескольких файлов отделять имена файлов и адреса -- 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 для предотвращения их неверного восприятия.


Р.Блам Система электронной почты на основе 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

[ Назад ]


Дмитрий Ульянов, 2001-2010 (с)