Page_c76a3fcf https://linux-notes.org Unix/ Linux блог, на котором можно найти полезную информацию по настройке ОС и ПО. Tue, 17 Oct 2017 05:15:05 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.7.2 Page_c76a3fcf https://linux-notes.org/ustanovka-mutt-v-unix-linux/ https://linux-notes.org/ustanovka-mutt-v-unix-linux/#respond Fri, 14 Apr 2017 13:45:55 +0000 http://linux-notes.org/?p=8004 Установка mutt в Unix/Linux Mutt — клиент командной строки для работы с электронной почтой. Это очень полезный и мощный инструмент для отправки и чтения писем из командной строки в системах Unix и Linux.  Данная  утилита также поддерживает POP и IMAP протоколы для получения почты. В этой статье «Установка mutt в Unix/Linux» я расскажу о утилите mutt (терминал […]

The post Установка mutt в Unix/Linux first appeared on linux-notes.org.]]>

Установка mutt в Unix/Linux

Mutt — клиент командной строки для работы с электронной почтой. Это очень полезный и мощный инструмент для отправки и чтения писем из командной строки в системах Unix и Linux.  Данная  утилита также поддерживает POP и IMAP протоколы для получения почты.

В этой статье «Установка mutt в Unix/Linux» я расскажу о утилите mutt (терминал клиента для электронной почты) и как ею пользоваться чтобы отправить письмо из командной строки.

Особенности mutt.

Некоторые важные особенности mutt заключается в следующем:

  • Его очень легко установить и настроить.
  • Позволяет посылать электронные письма с вложениями файлами прямо из командной строки.
  • Она также имеет свои особенности по добавлению BCC (скрытой копии) и CC (Carbon Copy — копия) при отправке почты.
  • Он дает нам возможность отправлять письма сразу на много ящиков ( выполнять массовую рассылку).
  • Он также поддерживает множество форматов (Maildir, Mbox, MH и MMDF).
  • Имеется поддержка по крайней мере на 20 языках.
  • Он также поддерживает DSN (статус уведомления о доставке).

Установка mutt в Unix/Linux

Чтобы установить mutt клиент на машину необходимо выполнить команду, как показано ниже.

Установка mutt на Debian/Ubuntu

Чтобы выполнить установку, используйте:

# apt-get install mutt -y

Установка mutt на RHEL/CentOS/Fedora

Чтобы установить mutt клиент на машину необходимо выполнить команду, как показано ниже:

# yum install mutt -y

Установка mutt на другие Unix/Linux

Для остальных ОС, можно собрать из исходного кода:

# cd /usr/local/src && wget ftp://ftp.mutt.org/pub/mutt/mutt-1.8.1.tar.gz

Распаковываем:

# tar xfvz mutt-* && cd mutt-*

Смотрим помощь по «configure»:

$ ./configure --help

Так что это команда для конфигурирования:

./configure \
--with-included-gettext \
--enable-locales-fix \
--enable-pop \
--with-regex

Получил ошибку:

configure: error: no curses library found

Исправление ( т.к я пример привожу на CentOS):

# yum install ncurses-devel -y

Собираем:

$ make

И потом, собственно, устанавливаем:

$ sudo make install

Проверьте размер созданного бинарного файла:

$ ls -lh `which mutt`
-rwxr-xr-x. 1 root root 2.5M Apr 14 14:34 /usr/local/bin/mutt

Получаем, 2.5мб — Это много! Выполняем еще кое-что:

$ # strip /usr/local/bin/mutt

И проверяем снова:

$ ls -lh /usr/local/bin/mutt
-rwxr-xr-x. 1 root root 749K Apr 14 14:36 /usr/local/bin/mutt

А теперь, он весит — 749K.

Можно посмотреть версию так:

$ mutt -v

Mutt 1.8.1 (2017-04-11)
.......

Вот и все!

Чтобы выполнить установку на Mac OS X:

Устанавливаем brew — Установка Homebrew на Mac OS X

И потом, выполняем поиск пакета:

$ brew search mutt

Видим, что он имеется и можно его установить:

$ brew install mutt

Конфигурация утилиты mutt для отправки писем в Unix/Linux

Можно настроить данный клиент под себя, основной конфигурационный файл: Чтобы внести изменения для всех пользователей mutt, нужно внести изменения в его конфигурационном файле /etc/muttrc.

Можно настроить данный клиент под себя, конфигурационный файл для пользователя:  Если вы хотите установить некоторые настройки для конкретного пользователя Mutt, вы можете настроить эти параметры в ~/.muttrc или ~/.mutt/muttrc.

Использование файла muttrc.

Если вы хотим изменить имя и адрес электронной почты отправителей, то вы должны создать файл в домашнем каталоге этого пользователя:

# cat ~/.muttrc

И прописать следующее:

set from = "your_user@linux-notes.org"
set realname = "Настоящее_имя _пользователя"

Настоящее_имя_пользователя — имя пользователя.

Использование mutt для отправки писем в Unix/Linux.

Базовый синтаксис команды mutt.

mutt options recipient

или

mutt [ -nRyzZ ] [ -e <cmd> ] [ -F <file> ] [ -m <type> ] [ -f <file> ]
mutt [ -nx ] [ -e <cmd> ] [ -a <file> ] [ -F <file> ] [ -H <file> ]
mutt [ -i <file> ] [ -s <subj> ] [ -b <addr> ] [ -c <addr> ] <addr> [ ... ]
mutt [ -n ] [ -e <cmd> ] [ -F <file> ] -p -v[v]

Чтение электронных писем с mutt

Чтобы прочитать электронные письма пользователя нужно запустить «mutt» на терминале, она будет загружать почтовый ящик текущего пользователя:

# mutt

Для чтения электронной почты конкретного пользователя, необходимо указать почтовый файл для чтения. Например, вы (как пользователь root) хочет читать почту пользователя «captain», то вы должны указать его почтовый файл с опцией «-f» в команде mutt:

# mutt -f /var/spool/mail/captain

Вы также можете использовать опцию «-R», чтобы открыть почтовый ящик в режиме только для чтения.

Отправить письмо с помощью команды mutt

В этом примере, следующая команда отправить тестовое e-mail пользователю user@linux-notes.org. Опция «-s» используется для указания текста сообщения:

# mutt -s "This is my test and first email" user@linux-notes.org

Когда вы выполните команду в терминале, он откроет интерфейс и нужно подтвердить адрес получателя и тему, здесь вы можете внести изменения:

  • Изменить адрес электронной почты получателя, нажатием «t».
  • Изменить адрес «Cc», нажатием «c».
  • Прикрепить файлы вложения, нажатием «a».
  • Выйти из интерфейса можно нажав «q».
  • Отправить это письмо, нажав «y».

Примечание: При нажатии «Y» показывает статус что mutt посылает почту.

Добавить Cc и (Bcc) для отправки копий с помощью команды mutt. 

Так же, можно добавить Cc и Bcc:

# mutt -s "My_subject_here" -c CC_user@linux-notes.org -b BCC_user@linux-notes.org address@recipient

Где, address_recipient — адресс получателя.

Отправка писем с вложенными файлами используя mutt.

Мы можем отправлять электронную почту из командной строки с вложениями:

# mutt -s "your_mail_subject" -a /home/captain/muut_file.txt -c CC_user@linux-notes.org address@recipient

Где, address_recipient — адресс получателя.

Опции утилиты mutt для отправки писем в Unix/Linux

Для получения помощи.

Чтобы показать список всех команд «mutt», вы должны указать опцию «-h»:

# mutt -h

Вот список команд:

-a <path_to_file>- присоединить файл к сообщению
-b <address> — указать скрытый адрес копии (BCC)
-c <address> — указать адрес копии (CC)
-e <command> — указать команду, которая будет выполнена после инициализации
-f <file> — указать почтовый ящик для чтения
-F <file> — указать альтернативный файл muttrc
-H <file> —  указать черновик файла для чтения заголовка из файла
-i <file> — указать файл, который Mutt должен включить в ответ
-m <type> — указать тип почтового ящика по умолчанию
-n — заставляет Mutt не читать систему Muttrc
-p — вызвать отложенное сообщение
-R — почтовый ящик в режиме чтения
-s <subj> — указать тему (должен быть в кавычках, если в ней есть пробелы)
-v — показать версию и определения время компиляции
-x — имитировать режим отправки почты mailx
-y — выбрать почтовый ящик, указанный в вашем списке `mailboxes ‘
-z — немедленно выйти, если в почтовом ящике нет сообщений
-Z — открыть первую папку с новым сообщением, немедленно выйти, если ее нет
-h — вызвать помощь

Вот и все, тема «Установка утилиты mutt для отправки писем в Unix/Linux» завершена.

The post Установка mutt в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-mutt-v-unix-linux/feed/ 0
Page_c76a3fcf https://linux-notes.org/udalit-ochistit-sbrosit-ochered-v-postfix/ https://linux-notes.org/udalit-ochistit-sbrosit-ochered-v-postfix/#comments Sat, 08 Apr 2017 03:35:35 +0000 http://linux-notes.org/?p=12371 Удалить/Очистить/Сбросить очередь в postfix Иногда, приходиться удалять письма из очереди, и если не знаете как это сделать ( или может забыли), то данная тема поможет с этим разобраться. Для начала, проверим что иметься в очереди: $ postqueue -p У меня например, образовалось вот такая очередь: -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- CA0664A220C9 438 Wed Apr 5 […]

The post Удалить/Очистить/Сбросить очередь в postfix first appeared on linux-notes.org.]]>

Удалить/Очистить/Сбросить очередь в postfix

Иногда, приходиться удалять письма из очереди, и если не знаете как это сделать ( или может забыли), то данная тема поможет с этим разобраться.

Для начала, проверим что иметься в очереди:

$ postqueue -p

У меня например, образовалось вот такая очередь:

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
CA0664A220C9      438 Wed Apr  5 19:34:35  root@linux-notes.org
(connect to example.org[2606:2800:220:1:248:1893:25c8:1946]:25: Connection timed out)
                                         user@example.org

CC3B64A220C4      430 Wed Apr  5 19:30:46  root@linux-notes.org
              (connect to example.org[93.184.216.34]:25: Connection timed out)
                                         user@example.org

7BCF14A22CCE     3231 Fri Apr  7 14:21:23  MAILER-DAEMON
(connect to captain-notes[/var/lib/imap/socket/lmtp]: No such file or directory)
                                         www@linux-notes.org

-- 4 Kbytes in 3 Requests.

Или, имеется другая утилита:

$ mailq

Чтобы сохранить результат в текстовый файл, можно запустить:

$ postqueue -p > mailq_output.txt

или

$ mailq >mailq_output.txt

Просмотр сообщения (Содержимое, заголовок и тело)

Предположим, что сообщение имеет идентификатор XXXXXXX (я выше показывал как )

$ postcat -vq XXXXXXXXXX

Или, сохраняем в файл:

$ postcat -vq XXXXXXXXXX > msg_output.txt

Удалить/Очистить/Сбросить очередь в postfix

Если есть необходимость удалить конкретное письмо ( нужно знать его ID), выполните команду:

# postsuper -d mail_queue_id

Чтобы очистить очередь в Postfix MTA просто введите следующую команду:

# postfix flush

Или:

# postfix -f

Чтобы удалить всю почту из очереди, введите:

# postsuper -d ALL

Чтобы удалить все письма в отложенной очереди (deferred), введите:

# postsuper -d ALL deferred

Чтобы удалить все письма из почтовой очереди, которые пришли с test_user@linux-notes.org или отправлены на адрес test_user@linux-notes.org (команда одинакова независимо от того, является ли это адресом отправителя или получателя), вы можете использовать следующую команду:

# mailq | tail -n +2 | awk 'BEGIN { RS = "" } /test_user@linux-notes\.org$/ { print $1 }' | tr -d '*!' | postsuper -d -

Или

# mailq | tail -n +2 | grep -v '^ *(' | \ 
gawk 'BEGIN {RS = ""} /test_user@linux-notes.org/ {print $1}' | \ 
tr -d '*!' | sudo postsuper -d -

Ничего сложного в этом нет.

Нашел в интернете, готовый скрипт, который удаляет всю почту из mailq, которая соответствует регулярному выражению (указанному в качестве первого аргумента).

$ vim drop_email_queue.pl

И прописываем в него:

#!/usr/bin/perl
 
$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";
 
@data = qx</usr/sbin/postqueue -p>;
for (@data) {
  if (/^(\w+)(\*|\!)?\s/) {
     $queue_id = $1;
  }
  if($queue_id) {
    if (/$REGEXP/i) {
      $Q{$queue_id} = 1;
      $queue_id = "";
    }
  }
}
 
#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;
 
foreach (keys %Q) {
  print POSTSUPER "$_\n";
};
close(POSTSUPER);

Например, удалите все поставленные в очередь сообщения (исходящие и входящие) для http://linux-notes.org:

# ./drop_email_queue.pl linux-notes.org

Удалите все сообщения в очереди, содержащие слово «world»:

# ./drop_email_queue.pl world

У меня, по данной статье «Удалить/Очистить/Сбросить очередь в postfix» все.

The post Удалить/Очистить/Сбросить очередь в postfix first appeared on linux-notes.org.]]>
https://linux-notes.org/udalit-ochistit-sbrosit-ochered-v-postfix/feed/ 2
Page_c76a3fcf https://linux-notes.org/komandy-mail-mailx-v-primera-na-unix-linux/ https://linux-notes.org/komandy-mail-mailx-v-primera-na-unix-linux/#comments Fri, 18 Sep 2015 20:40:10 +0000 http://linux-notes.org/?p=8034 Команды mail/mailx в примера на Unix/Linux Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные  и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux. Синтаксис команды mail: mail [options] to-address […]

The post Команды mail/mailx в примера на Unix/Linux first appeared on linux-notes.org.]]>

Команды mail/mailx в примера на Unix/Linux

Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные  и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux.

Синтаксис команды mail:

mail [options] to-address [-- sendmail-options]

Опции.

-v : Подробный режим. Детали отправки отображаются на экране.
-s : Опция задает тему для письма.
-c : Отправить СС (копии для других пользователей).
-b :Отправить BС (копии для других пользователей).
-f : Прочитать содержимое почтового ящика.
-e : Проверка на наличие почты в почтовом ящике.
-F : Записывает сообщение в файл с именем после получения.
-r :  Опция для указания адреса отправителя в настройках отправки почты.
-u : Определяет сокращенния, аналог опции «mail -f /var/spool/mail/UserID».

Установка утилиты mail в Unix/Linux

Для того чтобы установить утилиту mail на CentOS/Fedora/RedHat, используйте:

$ yum install mailx

Для того чтобы установить утилиту mail на Debian/Mint, используйте:

$ apt-get install mailutils

Теперь вы должны иметь команду mail, и можно приступать к работе.

Команды mail/mailx в примера на Unix/Linux

В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как пользоваться утилитой mail в ОС Unix/Linux. Приведу наглядные примеры использования данной утилиты.

Чтобы запустить программу «mail» и вывести список сообщений в почтовом ящике, выполните:

# mail

Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 logwatch@host.deltas Wed Dec 9 07:14 44/1670 "Logwatch for host.deltasquadron.com (Linux)"
&

Команда mail показывает количество сообщений в ящике системы. Затем почтовая система отображает подсказку почтового ящика (?), ожидая ввода.

Когда вы видите эту строку, то нужно ввести субкоманду, чтобы увидеть список подкоманд, нужно нажать (?):

Команды Mail

t <Список сообщений> тип.
n Перейти на другое сообщение.
e <Список сообщений> Отредактировать почту (сообщение).
f <Список сообщений> Вывести линии "head" сообщений.
d <Список сообщений> Удалить почту (сообщение). Нужно указать номер почтового сообщения.
s <Список сообщений> добавлять сообщения в файл.
u <Список сообщений> Отменить удаление сообщений.
R <Список сообщений> Ответить на сообщение.
r <Список сообщений> отвечать на все сообщения отправителей и получателей.
pre <Список сообщений> Создать сообщения и вернуться в /usr/spool/mail.
m <Список пользователей> Почта для конкретных пользователей.
q Выход, сохранить нерешенные сообщения в Mbox и выйти.
x Выход, не удалить системный почтовый ящик (system mailbox).
h Напечатать активные заголовки сообщений.
! shell escape
cd [папка] chdir to directory or home if none given

A <Список сообщений> Состоит из целых чисел, диапазонов или имен пользователей и разделены пробелами. Если он опущен mail использует последнее набранное сообщение.

A <Список пользователей> состоит из имен пользователей или псевдонимов, разделенных пробелами.
Псевдонимы определены в .mailrc в вашем домашнем каталоге.
&

Данная команда (?)  покажет все субкоманды для Mail.

Отправка электронной почты пользователю:

# echo "some text here to send it...." | mail -s "My_subject_is_here" send_to_some@email.com

В команде «echo»  задается некоторый текст для отправки по электронной почте.

Опция «-s» используется для указания темы для письма. Собственно, команда mail отправит емейл пользователю send_to_some@email.com. Можно обойтись и без команды echo, тогда команда будет выглядеть следующим образом:

# mail -s "My_subject_is_here" send_to_some@email.com

В этом примере вы тогда, будите вводить в сообщении и чтобы остановить просто введите точку следующим образом (.):

Hello here,
just simple test here
.
Cc:

Если вы хотите отправить письмо нескольким пользователям, то просто добавить емейл через пробел. Это будет выглядеть следующим образом:

# echo echo "some text here to send it...."| mail -s "My_subject_is_here" send_to_some@email.com send_to_some2@email.com send_to_some3@email.com send_to_some4@email.com

Отправка содержимого текстового файла

Вы можете отправить содержимое файла с помощью cat/echo или с помощью перенаправления оператор ввода «<«,

Например, чтобы отправить содержимое some_txt_file.txt через почту, нужно выполнить:

# cat somefile.txt | mail -s "My_subject_is_here" "user1@example.com,user2@example.com"
# mail -s "Mail subject" "user1@example.com,user2@example.com" < /home/captain/some_txt_file.txt

Использование Mail для CC & Bcc.

Для использования CC и ИСС, нужно использовать опции «-c» и «-b». Пример:

# echo "some text here to send it...." | mailx -s "My_subject_is_here" -b bcc_user1@example.com -c cc_user1@example.com -r sender_user1@example.com recipient_user1@example.com

Для отправки содержимого файла:

# mail -s "My_subject_is_here" -c "cc_user1@example.com" -b "bcc_user1@example.com" "user@example.com" < /home/captain/some_txt_file.txt

Прикрепление файлов:

Команда mail не обеспечивает крепления файлов. Но существует обходной путь для присоединения файлов с помощью команды UUencode. Например, можно сделать так:

# uuencode some_attachment_file some_attachment_file | mail -s "My_subject_is_here" "user@example.com" < /home/captain/some_txt_file.txt

Небольшая статья о утилите UUencode:

Команда uuencode в примерах

Работа с почтовым ящиком на сервере с утилитой mail.

Чтобы запустить утилиту mail и показать список сообщений в вашем почтовом ящике выполните:

# mail

Команда mail выведет список сообщений в ящике системы. Для вывода дополнительных команд нужно ввести знак (?). Я рассказывал какие бывают подкоманды для утилиты mail выше, вы можете использовать их.

Другой способ просмотра электронной почты — это использования опции «-f»:

# mail -f /var/spool/mail/captain
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/captain": 0 messages
&

captain — это пользователь на сервере. У меня нет новых сообщений.

Из приведенного выше вывода, вы можете видеть, что он отображает адрес, дату и тему писем в почтовом ящике. Он также отображает амперсанд (&) строку в конце. Чтобы вернуться в основное меню, нажмите «Ctrl + Z» или «CTRL + D» в зависимости от вашей операционной системы и нажмите клавишу «Enter». Амперсанд (&) позволяет читать, отвечать и удалять сообщения электронной почты.

Чтение почты.

Чтобы прочитать электронную почту, нужно знать N-ый номер почты, просто введите номер почтового письма после амперсанда (&) и нажмите клавишу ВВОДА (Enter). Например:

$ mail -f /var/spool/mail/captain

Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/captain": 2 messages 2 new
>N 1 root@linux-notes.org Tue Jan 5 12:01 15/2015 "test Mail subject_1"
N 2 root@linux-notes.org Tue Jan 6 12:12 16/2015 "Test Mail subject_2"
&2
Message 2:
From root@linux-notes.org Jan 6 12:12 16/2015
---------------
Subject: Test Mail subject_2
------------

This displays the second email details.

Навигация по входящей почте.

Чтобы перейти к следующей электронной почте, введите символ «+». Чтобы вернуться к предыдущему электронной почте, введите символ «-» в после амперсанда:

&-
Message 1:
From root@linux-notes.org  Tue Jan 5 12:01 15/2015
---------------
Subject: test Mail subject_1
------------

 Ответить на электронную почту.

После того, как вы прочли письмо, вы можете ответить на него, набрав «reply» после амперсанда и нажав Enter:

&reply
To: root@linux-notes.org
captain@linux-notes.org
Subject: Re: test Mail subject_1

Удаление почтовых писем с ящика.

Вы можете удалить электронную почту, используя опцию «d» после амперсанда и нажав «Enter».

Удалить прочитанное письмо:

&d

Удалить прочитанное письма 2 и 4:

&d 2 4

Удалить письма с 6 по 66:

&d 6-66

Удалить все письма с почтового ящика mbox:

&d *

На этом, у меня все, тема «Команды mail/mailx в примера на Unix/Linux» завершена.

The post Команды mail/mailx в примера на Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/komandy-mail-mailx-v-primera-na-unix-linux/feed/ 4
Page_c76a3fcf https://linux-notes.org/database-error-connection-failed-v-roundcube/ https://linux-notes.org/database-error-connection-failed-v-roundcube/#respond Sat, 08 Aug 2015 21:15:35 +0000 http://linux-notes.org/?p=5761 DATABASE ERROR: CONNECTION FAILED! в roundcube Недавно, столкнулся с проблемой в roundcube «DATABASE ERROR: CONNECTION FAILED! «, начал гуглить, но толкового не было ничего. В общем, я нашел материал и сохраню ее для дальнейшего использования. В своей статье «DATABASE ERROR: CONNECTION FAILED! в roundcube» расскажу как исправить данную проблему. Первый шагом, пробуем просто обновить roundcube […]

The post DATABASE ERROR: CONNECTION FAILED! в roundcube first appeared on linux-notes.org.]]>

DATABASE ERROR: CONNECTION FAILED! в roundcube

Недавно, столкнулся с проблемой в roundcube «DATABASE ERROR: CONNECTION FAILED! «, начал гуглить, но толкового не было ничего. В общем, я нашел материал и сохраню ее для дальнейшего использования. В своей статье «DATABASE ERROR: CONNECTION FAILED! в roundcube» расскажу как исправить данную проблему.

Первый шагом, пробуем просто обновить roundcube из под скриптов Cpanel на самом сервере, а можно это сделать так:

# /usr/local/cpanel/bin/update-roundcube

Это принудительное обновление roundcube со скрипта cpanel.

Если простое обновление не помогло, то идем дальше и следующим действием, я переименую базу самого roundcube (дабы не удалять ее) и после чего выполню повторное обновление:

# mv /var/lib/mysql/roundcube /root/roundcube.bak

Снова выполняем обновление:

# /usr/local/cpanel/bin/update-roundcube --force

При попытки обновить roundcube, получил следующую ошибку:

Archiving current Roundcube data to /var/cpanel/roundcube/roundcube.backup.sql
mysqldump: Got error: 144: Table './roundcube/contacts' is marked as crashed and last (automatic?) repair failed when using 

LOCK TABLES
Failed to backup existing Roundcube DB. DB likely did not exist.Cleaning old Roundcube data archives

Ну что, теперь открываем логи. Roundcube хранит логи в определенном месте на серверах с CPanel, вы можете открыть их:

# tail -f /var/cpanel/roundcube/log/errors

Вы можете повторить этот процесс и посмотреть какая выводится ошибка.  В моем случае я нашел эту ошибку несколько раз:

DB Error: [144] Table './roundcube/contacts' is marked as crashed and last (automatic?) repair failed (SQL Query: SELECT * FROM contacts AS c WHERE c.del<>1 AND

Выход из журнала ошибок и точка прямо установщику, что вызывает проблемы с добавлением контакта в адресной книге. В любом случае, исправление легко и все, что нужно сделать, это восстановить базу данных.

Чтобы запустить восстановление таблицы «Contacts» в базе данных Roundcube, запустите эту команду:

$ cd /var/lib
$ sudo -u mysql myisamchk -r -v -f mysql/roundcube/contacts

Теперь, когда я отремонтировал БД, я попробую запустить обновление еще раз:

# /usr/local/cpanel/bin/update-roundcube --force

Вот и все, у меня все заработало.

Проверяем запущена ли сервер с базами данных:

# ps -aux | grep mysql

Если что, стартуем/перезапускаем его:

# service mysql stop
# service mysql start

или

# service mysql restart

Проверяем есть ли таблицы или сама БД roundcube:

# mysql -uroot -p
> show database;
> use roundcube;
> show tables;

Если пусто, то читаем мою статью:
Восстановить базу данных в Roundcube

А на этому все, тема «DATABASE ERROR: CONNECTION FAILED! в roundcube» завершена.

 

The post DATABASE ERROR: CONNECTION FAILED! в roundcube first appeared on linux-notes.org.]]>
https://linux-notes.org/database-error-connection-failed-v-roundcube/feed/ 0
Page_c76a3fcf https://linux-notes.org/vosstanovit-bazu-danny-h-v-horde/ https://linux-notes.org/vosstanovit-bazu-danny-h-v-horde/#respond Sun, 14 Jun 2015 19:29:22 +0000 http://linux-notes.org/?p=6350 Восстановить базу данных в Horde В своей теме «Восстановить базу данных в Horde» я расскажу как можно восстановить БД в horde при использовании cpanel. На готовом примере вы посмотрите как можно это исправить. На вашем хостинге ( на VPS), есть лог-файл horde который находится: /var/cpanel/horde/log/horde_0.log И так, приступим. 1. Запускаем обновление horde на сервере: # /usr/local/cpanel/bin/update-horde --force 2. […]

The post Восстановить базу данных в Horde first appeared on linux-notes.org.]]>

Восстановить базу данных в Horde

В своей теме «Восстановить базу данных в Horde» я расскажу как можно восстановить БД в horde при использовании cpanel. На готовом примере вы посмотрите как можно это исправить.

На вашем хостинге ( на VPS), есть лог-файл horde который находится: /var/cpanel/horde/log/horde_0.log

И так, приступим.

1. Запускаем обновление horde на сервере:

# /usr/local/cpanel/bin/update-horde --force

2. Если это не исправит проблему, то попробуйте:

# /scripts/fullhordereset

3. Если вы все еще получаете ошибки базы данных или проблема до сих пор не решена, вы можете попробовать полностью воссоздать базу данных для horde:

  • Делаем бекап для hordeчтобы потом можно было вернуть в случае чего:
# mysqldump horde > horde.sql
  • Удаляем базу данных horde:
# mysql -Bse "drop database horde"
  • Создаем новую базу данных horde (такую точно):
# mysql < /usr/local/cpanel/base/horde/scripts/sql/create.mysql.sql
  • Перезапускаем хорду ( запускаем):
# /scripts/resethorde
  • И сбрасываем на начальные настройки:
# /scripts/fullhordereset

Вот и все, моя статья «Восстановить базу данных в Horde» завершена и проблема была решена.

The post Восстановить базу данных в Horde first appeared on linux-notes.org.]]>
https://linux-notes.org/vosstanovit-bazu-danny-h-v-horde/feed/ 0
Page_c76a3fcf https://linux-notes.org/ne-rabotaet-funktsiya-php-mail-v-cagefs/ https://linux-notes.org/ne-rabotaet-funktsiya-php-mail-v-cagefs/#respond Wed, 01 Apr 2015 12:04:06 +0000 http://linux-notes.org/?p=5808 Не работает  функция PHP mail() в cageFS Есть несколько решений по данной ошибе и сейчас я приведу в своей статье «Не работает  функция PHP mail() в cageFS» несколько примеров устранения данной ошибки. 1. Нужно проверить/сменить права на следующие файлы: Если не работает отправка почты из php на CloudLinux это может помочь при включенном CageFS: # […]

The post Не работает функция PHP mail() в cageFS first appeared on linux-notes.org.]]>

Не работает  функция PHP mail() в cageFS

Есть несколько решений по данной ошибе и сейчас я приведу в своей статье «Не работает  функция PHP mail() в cageFS» несколько примеров устранения данной ошибки.

1. Нужно проверить/сменить права на следующие файлы:

Если не работает отправка почты из php на CloudLinux это может помочь при включенном CageFS:

# chmod 755 /usr/share/cagefs-skeleton/usr/bin/whoami
# chmod 755 /usr/share/cagefs-skeleton/bin/cat
# chmod 755 /usr/share/cagefs-skeleton/usr/bin/id

Зачастую стоят чартры на эти файлы. Измените их для начала

2. Еще одно решение когда  PHP mail() функция не работает для пользователей ( для их скриптов):

# yum reinstall cagefs
# cagefsctl --force-update;cagefsctl --remount-all

Если все что выше не помогло, то необходимо искать информацию в направлении:

# cat /etc/cagefs/proxy.commands
# service proxyexecd status
# su -s /bin/bash username

И:

# which sendmail
# php scriptname.php (where "scriptname" your script to test sending email)

Но мне хватало всего этих решений. Так же, можно написать в техподдержку самого cloudlinux.

Все! На этом моя тема «Не работает  функция PHP mail() в cageFS» подошла к завершению.

The post Не работает функция PHP mail() в cageFS first appeared on linux-notes.org.]]>
https://linux-notes.org/ne-rabotaet-funktsiya-php-mail-v-cagefs/feed/ 0
Page_c76a3fcf https://linux-notes.org/vosstanovit-bazu-danny-h-v-roundcube/ https://linux-notes.org/vosstanovit-bazu-danny-h-v-roundcube/#respond Mon, 23 Feb 2015 22:13:56 +0000 http://linux-notes.org/?p=5538 Восстановить базу данных в Roundcube Недавно, я столкнулся с очень не простой задачей ( ошибкой), у меня перестал работать roundcube (почта). Немного погуглив, я нашел решение, сделаю я статью «Восстановить базу данных в Roundcube» в качестве хорошей заметки на будущее. Останавливаем сервер баз данных: # /etc/init.d/mysql stop Переименовываем базу (можно и удалить ее, но чтобы […]

The post Восстановить базу данных в Roundcube first appeared on linux-notes.org.]]>

Восстановить базу данных в Roundcube

Недавно, я столкнулся с очень не простой задачей ( ошибкой), у меня перестал работать roundcube (почта). Немного погуглив, я нашел решение, сделаю я статью «Восстановить базу данных в Roundcube» в качестве хорошей заметки на будущее. Останавливаем сервер баз данных:

# /etc/init.d/mysql stop

Переименовываем базу (можно и удалить ее, но чтобы можно было вернуть ее, я просто переименую):

# mv /var/lib/mysql/roundcube /var/lib/mysql/roundcube_back

Запускаем mysql:

# /scripts/restartsrv_mysql

После чего, нужно создать БД:

$ mysql -uroot -p
> create database roundcube;
> exit;

Я делал (создавал БД) это так как у меня не было такой базы на моем линуксе.

Готовый скрипт с БД лежит в папке, по этому я сейчас его залью в только созданную БД:

# mysql -uroot roundcube -p < /usr/local/cpanel/base/3rdparty/roundcube/SQL/mysql.initial.sql

После этого найдите файл:

# vim /usr/local/cpanel/base/3rdparty/roundcube/config/db.inc.php

В соответствии аналогичной базы данных -> mysql://roundcube:SENHADOROUNDCUBE@localhost/roundcube

замените:

mysql://root:SENHADEROOT@localhost/roundcube

Теперь попробуйте веб-почту, используя RoundCube.

Кроме того,

* Проверьте, если db.inc.php и main.inc.php содержит правильные записи, такие как имя пользователя, пароль и имя базы данных
* Запуск команды /usr/local/cpanel/bin/update-roundcube —force, иногда также помогает
* Перейдите в PHPMyAdmin и отремонтируйте все roundcube столбцы
* Также проверьте и сбросьте рутовый пароль MySQL в WHM просто чтобы убедиться, что он установлен.
* Последнее, но не менее полезное, попробуйте /scripts/upcp —force

Можно еще запустить:

# /usr/local/cpanel/bin/update-roundcube --force

На этом моя статья «Восстановить базу данных в Roundcube» подошла к завершению.

The post Восстановить базу данных в Roundcube first appeared on linux-notes.org.]]>
https://linux-notes.org/vosstanovit-bazu-danny-h-v-roundcube/feed/ 0
Page_c76a3fcf https://linux-notes.org/reshenie-oshibki-smtp-error-1-connection-to-server-failed/ https://linux-notes.org/reshenie-oshibki-smtp-error-1-connection-to-server-failed/#respond Mon, 23 Feb 2015 13:42:04 +0000 http://linux-notes.org/?p=5547 Решение ошибки «SMTP Error (-1): Connection to server failed.» Данная ошибка возникает когда не работает почта на сервере (а точнее не запущен exim). По этому, чтобы решить данную проблему на стороне сервера стоит его просто перезапустить и все заработает. В моей статье «Решение ошибки SMTP Error (-1): Connection to server failed.», я расскажу как я […]

The post Решение ошибки «SMTP Error (-1): Connection to server failed.» first appeared on linux-notes.org.]]>

Решение ошибки «SMTP Error (-1): Connection to server failed.»

Данная ошибка возникает когда не работает почта на сервере (а точнее не запущен exim). По этому, чтобы решить данную проблему на стороне сервера стоит его просто перезапустить и все заработает. В моей статье «Решение ошибки SMTP Error (-1): Connection to server failed.», я расскажу как я пофиксил данную ошибку. Недавно столкнулся с такой проблемой и решил написать заметку, кому то поможет она.

Смотрим есть ли запущенные процессы:

# ps -aux | grep exim

Если нет, то запускаем его. Если работает, то «убиваем» процесс(ы) и перезапускаем  exim.

Перезапускаем exim:

# service exim restart

проверяем чтобы был запущен процесс(ы):

# ps -aux | grep exim

 

Вот и все. Все у меня заработало. Я завершаю свою статью «Решение ошибки SMTP Error (-1): Connection to server failed.»

The post Решение ошибки «SMTP Error (-1): Connection to server failed.» first appeared on linux-notes.org.]]>
https://linux-notes.org/reshenie-oshibki-smtp-error-1-connection-to-server-failed/feed/ 0
Page_c76a3fcf https://linux-notes.org/otpravka-i-poluchenie-pochty-cherez-telnet/ https://linux-notes.org/otpravka-i-poluchenie-pochty-cherez-telnet/#respond Mon, 16 Feb 2015 23:20:51 +0000 http://linux-notes.org/?p=5525 Отправка и получение почты через telnet Недавно на работе мне задали неплохую задачу, мне пришлось хорошенечко подумать и погуглить чтобы решить ее. ЗАДАЧА. Необходимо: — просмотреть список сообщений в почтовом ящике challenge@nitrogear.local (пароль password-2015); — прочитать последнее сообщение; — удалить последнее сообщение. При выполнении задания нельзя: — подключаться на сервер по SSH; — использовать WHM/cPanel; — […]

The post Отправка и получение почты через telnet first appeared on linux-notes.org.]]>

Отправка и получение почты через telnet

Недавно на работе мне задали неплохую задачу, мне пришлось хорошенечко подумать и погуглить чтобы решить ее.

ЗАДАЧА.

Необходимо:
— просмотреть список сообщений в почтовом ящике challenge@nitrogear.local (пароль password-2015);
— прочитать последнее сообщение;
— удалить последнее сообщение.
При выполнении задания нельзя:
— подключаться на сервер по SSH;
— использовать WHM/cPanel;
— подключать почтовый клиент (консольный или графический).
И сейчас в своей статье «Отправка и получение почты через telnet» расскажу как я это выполнил, все покажу на наглядных примерах.
Сейчас немного расскажу о том как отправить и получить почту с другого сервера, а потом вернусь уже к моей задачи. И так начнем…
Отправка почты с сервера на другой сервер.
Используем POP3. 
Откройте командную строку.
Теперь подключитесь к серверу с Telnet с помощью следующей команды:

# telnet your_domain_or_IP 25

Введите EHLO your_domain_or_IP. Некоторые серверы также принимаем HELO вместо EHLO.

# ehlo your_domain_or_IP

Введите от кого будет посылаться письмо (например user_name@your_domain_or_IP):

# mail from: user_name@your_domain_or_IP

Введите адресата(ов):

# rcpt to: solo.metal@bigmir.net, your_imail@gmail.com

Напишите сообщение — тип DATA, а затем вашу тему (SUBJECT) и ваще сообщения. Для завершения сообщение необходимо поставить точку на отдельной строке и нажмите клавишу ВВОД (enter):

DATA
Subject: My subject

Hi here,

This's my email
.

Чтобы выйти из telnet, выполните quit в вашем терминале:

quit

Используем IMAP

Что вам нужно?

  • Имя хоста сервера IMAP (для использования в команде Telnet).
  • Имя пользователя IMAP (для использования в команде ВХОД (LOGIN)).
  • Пароль пользователя IMAP (для использования в команде ВХОД (LOGIN)).

Для дополнительной безопасности, можно зашифровать соединение по протоколу IMAP. Необходимо чтобы  ваш сервер поддерживает SSL или TLS, и что у вас есть доступ к клиентской программы SSL/ TLS, например, OpenSSL, чтобы использовать вместо Telnet.

Обычно, номер порта — 993, для примера в OpenSSL должан выглядеть следующим образом:

# openssl s_client -connect imap.server:993 -quiet

Ответ получим:

depth=3 /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE NAMESPACE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

Если вы хотели бы видеть открытый ключ сервера, а также некоторую другую информацию шифрования, то запускаем telnet следующим образом:

$ telnet imap.server imap

Рассмотрим конкретный пример:

# telnet dbmarble.com imap

Trying 199.116.250.223...

Connected to dbmarble.com.

Escape character is '^]'.

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE NAMESPACE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

a1 LOGIN  USER_NAME User_NAME_Password

a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE NAMESPACE QUOTA] Logged in

a2 LIST "" "*"

* LIST (\HasChildren) "." INBOX

* LIST (\HasNoChildren) "." INBOX.Trash

* LIST (\HasNoChildren) "." INBOX.Drafts

* LIST (\HasNoChildren) "." INBOX.Sent

* LIST (\HasNoChildren) "." INBOX.Junk

a2 OK List completed.

a3 EXAMINE INBOX

* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)

* OK [PERMANENTFLAGS ()] Read-only mailbox.

* 20 EXISTS

* 0 RECENT

* OK [UIDVALIDITY 1429548711] UIDs valid

* OK [UIDNEXT 21] Predicted next UID

* OK [HIGHESTMODSEQ 33] Highest

a3 OK [READ-ONLY] Examine completed (0.000 secs).

a4 FETCH 1 BODY[]

* 1 FETCH (BODY[] {764}

Return-path: <info@dbmarble.com>

Envelope-to: info@dbmarble.com

Delivery-date: Mon, 20 Apr 2015 11:51:17 -0500

Received: from [49.148.171.57] (port=50311 helo=migtibenlenovo)

by gvo250223.gvodatacenter.com with esmtpsa (TLSv1:AES256-SHA:256)

(Exim 4.82)

(envelope-from <info@dbmarble.com>)

id 1YkEuj-001GY1-3F

for info@dbmarble.com; Mon, 20 Apr 2015 11:51:17 -0500

From: Microsoft Outlook <info@dbmarble.com>

To: =?utf-8?B?aW5mb0BkYm1hcmJsZS5jb20=?= <info@dbmarble.com>

Subject: =?utf-8?B?TWljcm9zb2Z0IE91dGxvb2sgVGVzdCBNZXNzYWdl?=

MIME-Version: 1.0

Content-Type: text/html;

    charset="utf-8"

Content-Transfer-Encoding: 8bit

This is an e-mail message sent automatically by Microsoft Outlook while testing the settings for your account.

)

a4 OK Fetch completed.
a5 LOGOUT
* BYE Logging outa
5 OK Logout completed.
Connection closed by foreign host.

telnet dbmarble.com imap — подключение к серверу  dbmarble.com через telnet используя imap.
a1 LOGIN  USER_NAME User_NAME_Password — выполняем конмаду LOGIN с именем пользователя и с паролем.
a2 LIST «» «*» — Смотрим какие папки имеются.
a3 EXAMINE INBOX — Смотрим папку INBOX.
a4 FETCH 1 BODY[] — выполняем команду чтобы посмотреть тело емейла.
a5 LOGOUT — вводим команду для выхода.

Некоторые полезные команды:

LOGIN [username] [password]
LIST [flags] [folder separator] [search term]
STATUS [mailbox] [flags]
SELECT [mailbox]
FETCH [first]:[last] flags
FETCH [mail number] body[header]
FETCH [mail number] body[text]
LOGOUT

Используя SMTP

Telnet — Команды SMTP (отправка почты с помощью программы Telnet).
Подключаемся с Telnet на почтовый сервер:

$ telnet mail_host smtp

Вы должны получить ответ вроде моего:

Trying 12.18.67.37...
Connected to mail_host
Escape character is '^]'.

Если последняя строка состоит из большого количества звезд с 2 или 0, то вы, вероятно, будет использовать Cisco PIX, и ни один из расширенных команд не будет работать.

Затем вам нужно будет объявить, где вы отправляете письмо от. Вы можете использовать стандартный или расширенный SMTP команды, чтобы сделать это. Расширенные команды позволяют вам увидеть, что поддерживается на сервере и разрешить себе авторизацию:

HELO local_domain_name

Это должно дать Вам вывод подобно моему:

250-way.my_domain Hello mail_host [12.18.67.37], pleased to meet you

Расширенный SMTP, используем:

EHLO local_domain_name

Это должно дать Вам что-то типа этого:

250-way.my_domain Hello mail_host [12.18.67.37], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP

Если «AUTH» авторизация есть в списке вы можете войти на сервер. Это, как правило, позволяют некоторые вещи, которые обычно ограничены для ретрансляции пример. Вам нужно будет использовать ваше имя пользователя и пароль в Base64.

AUTH LOGIN
334 VXNlcm5hbWU6
bmFtZQ==
334 UGFzc3dvcmQ6
U2VjcmV0
235 2.0.0 OK Authenticated

Вы действительно должны использовать ваше полное доменное имя.

Теперь дайте укажем свой адрес электронной почты:

MAIL FROM: <my_mail@domain_or_IP>

Угловые скобки вокруг имени важны; некоторые серверы не будут принимать имя, если они не существуют.

Вывод должен быть подобный этому:

250 2.1.0 my_mail@domain_or_IP... Sender ok

Теперь указываем адрес получателя:

RCPT TO: <my_mail@other_domain_or_IP>

Опять же, необходимо использовать угловые скобки.

Выход:

250 2.1.0 my_mail@other_domain_or_IP... Recipient ok

Чтобы начать писать сообщение, нужно ввести следующую команду:

DATA
Subject:-type subject here-

затем дважды нажмите клавишу ВВОД (они необходимы, чтобы соответствовать RFC 882)
Теперь Вы можете продолжить набирать тело письма, для завершения сообщения используйте сингл «.» на отдельной строке.
Почтовый сервер должен ответить:

250 2.0.0 ???????? Message accepted for delivery

Для закрытия подключения, используйте:

QUIT

Почтовый сервер должен ответить что-то вроде:

221 2.0.0 mail_host_or_domain closing connection
Connection closed by foreign host.

Получение или чтение почты с сервера.

Используем POP3

Откройте командную строку и введите в командной строке:

# telnet my_domain 110

Пользователь и адрес электронной почты (например user_name@my_domain), для которого вы хотите просмотреть электронную почту:

> user user_name@my_domain

Затем введите пароль пользователя:

> pass your_password_goes_here

Введите список ваших писем:

> list

Вы увидите список пунктов с таких лейблах, как «1 897» и «2 5136.» Вот пример:

list
+OK POP3 clients that break here, they violate STD53.
1 897
2 5136
3 1884
4 2973
.

Если вы хотите прочитать сообщение электронной почты, такие как 2 5136, вы можете ввести следующее:

retr 2

Если вы хотите удалить сообщение, такое как 1 897, то используйте тип DELE 1:

dele 1

Когда вы закончите проверять свою электронную почту, введите quit.

 

 

Теперь возвращаемся к моим баранам, расскажу как я выполнил это все задание.  И так….

Решение задачи 

Так как у меня на сервере использовалось шифрование, то для подключения нужно использовать следующую команду:

openssl s_client -connect my_mail.domain:995

Вы должны получить ответ вроде:

+OK POP3 localhost.localdomain v2000.70rh server ready

Для первоначального подключения и каждой команды, которые вы вводите, почтовый сервер будет отвечать:

-ERR <ERROR_TEXT>
+OK <MESSAGE_TEXT>

Команды, которые вы можете использовать, являются (введите пользователя):

USER captain

This must be the first command after the connect. Supply your e-mail userid (not the full e-mail address).

PASS captain_password

Это должно быть следующей команды после USER. Укажите Ваш адрес электронной почты и пароль.Пароль может быть чувствительны к регистру.

STAT

Получите что-то типа:

+OK #msgs #bytes

Где #msgs является количество сообщений в почтовом ящике и #bytes является общий размер используемых всех сообщений. Теперь выведем все сообщения которые имеются.

LIST

Ответом на это, Вы получите строки для каждого сообщения с его количеством и размером в байтах.
Пример ответа:

+OK 3 messages
1 1205
2 305
3 344400
.
RETR msg#

Это извлекает указанное сообщение «MSG #» (и отображает его на экране Telnet). Вы можете просматривать сообщения по количеству строк:

TOP msg# #lines

Это необязательная команда POP3. Не все POP3-серверы поддерживают его. В нем перечислены заголовок для «MSG #» и первые «Строки,» текста в сообщении.
Например, TOP 1 0 — это выведет только заголовки для сообщения 1, в то время как TOP 1 5 — выведет заголовок и первые 5 строк текста сообщения.

DELE msg#

Это номер сообщения «MSG #» для удаления с сервера. Это способ, чтобы избавиться от сообщения. Это на самом деле не удаляется, пока QUIT команда не будет введена. Если вы потеряете соединение с почтовым сервером перед выдачей QUIT команду, сервер не должен удалять сообщения.

RSET

Это приведет к сбросу (Снимает) любые сообщения ранее помеченные для удаления в этой сессии, так что команда QUIT не будет удалять их.

QUIT

Вот таким образом, я решил данную задачу, и привел ее в своей статье «Отправка и получение почты через telnet».

 

The post Отправка и получение почты через telnet first appeared on linux-notes.org.]]>
https://linux-notes.org/otpravka-i-poluchenie-pochty-cherez-telnet/feed/ 0
Page_c76a3fcf https://linux-notes.org/komandy-exim/ https://linux-notes.org/komandy-exim/#respond Tue, 10 Feb 2015 23:41:42 +0000 http://linux-notes.org/?p=5321 Команды Exim В моей статье «Команды Exim» я привел некоторые команды, которые можно использовать для управления MTA Exim и так же очередями электронной почты. Все команды что я приведу ниже, должны быть выполнены из под ROOT-а (от суперпользователя root). По мере возможности, я возможно буду добавлять новые команды ( которых нет), но основные приведены ниже. Управление Exim-ом. […]

The post Команды Exim first appeared on linux-notes.org.]]>

Команды Exim

В моей статье «Команды Exim» я привел некоторые команды, которые можно использовать для управления MTA Exim и так же очередями электронной почты. Все команды что я приведу ниже, должны быть выполнены из под ROOT-а (от суперпользователя root). По мере возможности, я возможно буду добавлять новые команды ( которых нет), но основные приведены ниже.

Управление Exim-ом.

Запуск

# /etc/init.d/exim start

Чтобы остановить, выполните:

# /etc/init.d/exim stop

Перезапустить Exim:

# /etc/init.d/exim restart

Или еще можно выполнить по другому:

# service exim start|stop|restart

Выясняем чем же занят в данный момент Exim (его MTA).

# exiwhat

Чтобы проверить маршрутизацию почты по заданному емейлу.

# exim -bt user@my_mail.com

Генерируем и выводим статистику Exim из лог файла.

# eximstats /путь__к_exim_mainlog

Можно проверить SMTP соединение из прямо из командной строки для конкретного IP-адреса.

Данная проверка будет показывать как проходит письмо с IP-шника, через какие ACL и так же фильтры:

# exim -bh 145.56.66.32

Вывести все настройки Exim

# exim -bP

Узнать сколько писем в очереди.

# exim -bpc

Показать список сообщений которые находятся в очереди (сколько они в очереди (их время), их размер, идентификатор сообщения, кто отправитель и кто получатель).

# exim -bp

Вывести всех сообщений которые находятся в очереди (их количество, объем, старых или новых, их области).

# exim -bp|exiqsumm

Поиск очереди сообщения от заданного отправителя.

# exiqgrep -f user@my_mail.com

Поиск в очереди сообщений для получателя или домена

# exiqgrep -r user@my_mail.com

Вывод только Message-ID (или как в примере выше).

# exiqgrep -i [ -r | -f ] ...

Показать количество сообщений (или как в примере выше).

# exiqgrep -c [ -r | -f ] ...

Показать только Message-ID очереди

# exiqgrep -i

Вывести заголовков сообщения которые в очереди

# exim -Mvh

Просмотреть тела сообщения которые находятся в очереди

# exim -Mvb

Чтобы посмотреть логи сообщения

# exim -Mvl

Запустим процесс на выполнения в самой очереди

# exim -q -v

Запустим процесс выполнения самой очереди для локальных получателей

# exim -ql -v

Отправить одно сообщения принудительно

# exim -M  email_id

А просмотреть ID:

# tail -f /var/log/exim_mainlog| grep vitaly.n@gvocom.com
# cat /var/log/exim_mainlog | grep 1ZAglY-0000dr-SY

1ZAglY-0000dr-SY — Это и есть ID сообщения.

Принудительно запустить другую очередь на выполнение

# exim -qf

Принудительно запустить другую очередь на выполнение и попытаться очистить замороженные сообщения

# exim -qff

Получить количество писем в очереди

# exim -bpr | grep "<" | wc -l

Показать сколько замороженных писем в очереди

# exim -bpr | grep frozen | wc -l

Удалить замороженные сообщения

# exim -bpr | grep frozen | awk {'print $3'} | xargs exim -Mrm

Удалить сообщение из очереди

# exim -Mrm

Удаляем все сообщения из очереди которые старше чем определенной даты.

Допустим, 5 дней будет 432 000 секунд:

# exiqgrep -o 432000 -i | xargs exim -Mrm

Заморозить все сообщения в очереди от отправителя

# exiqgrep -i -f email@example.com | xargs exim -Mf

Удалить все сообщения из очереди (довольно плохая идея)

# exiqgrep -i | xargs exim -Mrm

Параметр «-o» указывает искать сообщения, старее, указанного количества секунд. В примере, сообщения старее 1 дня:

# exiqgrep -o 86400 [...]

Параметр «-y» ищет сообщения свежее указанного количества секунд. В примере, найти сообщения, пришедшие в течении последнего часа:

# exiqgrep -y 3600 [...]

Параметр «-s» даст возможность искать сообщения по размеру, которые совпадают с заданным регулярным выражением:

# exiqgrep -s '^7..$' [...]

Удалить сообщения которые идут от конкретного домена:

# exim -bp| exiqgrep -i -f DOMAIN_for_DELETE| xargs -n1 exim -Mrm

Удалить сообщения которые идут на конкретного домена:

# exim -bp| exiqgrep -i -r DOMAIN_for_DELETE| xargs -n1 exim -Mrm

Скрипты.

1. Чтобы получить отсортированный список электронной почты отправителя в Exim c почтовой очереди. Он покажет количество писем которые в очереди.

# exim -bpr | grep "<" | awk {'print $4'} | cut -d "<" -f 2 | cut -d ">" -f 1 | sort -n | uniq -c | sort -n

Вы получите результат, как как следует:

       1 captain@my_test_domain.com
       3 100500@test100500.com
       4 root@my_test_domain.org
     124 captain@your_domain

Но это не самый простой способ, а проще всего — это выполнить команду:

# exim -bp|exiqsumm

2. Следующие скрипты будут проверять скрипт, кто отсылает спам-сообщения:

# grep "cwd=/home" /var/log/exim_mainlog | awk '{for(i=1;i<=10;i++){print $i}}' | sort | uniq -c | grep cwd | sort -n

# awk '{ if ($0 ~ "cwd" && $0 ~ "home") {print $3} }' /var/log/exim_mainlog | sort | uniq -c | sort -nk 1

# grep 'cwd=/home' /var/log/exim_mainlog | awk '{print $3}' | cut -d / -f 3 | sort -bg | uniq -c | sort -bg

Вы получите результат первых двух сценариев. Третий сценарий просто к дополнению от первых двух скриптов:

8 cwd=/home/captain/public_html
9 cwd=/home/your_user_name/public_html/www/ololo
13 cwd=/home/test_user/public_html
99 cwd=/home/test_usr666/public_html
138 cwd=/home/test_user100500/public_html/web2
790 cwd=/home/test_user_6/public_html/captain

3. Иногда нужно выяснить кто же рассылает спам или скрипт. Следующий сценарий поможет вам найти точное названия скрипта, который отправляет спам-письма:

# ps auxwwwe | grep <your_user> | grep --color=always "<location of script>" | head

или

# ps auxwwwe | grep captain | grep --color=always "/home/captain/public_html/wp/wp-content/themes/twentyeleven" | head

Как только вы найдете точный сценарий, следующий сценарий поможет вам найти IP-адрес, который отвечает за спам. Вы получите список IP-адресов из следующего скрипта.Адрес IP-адреса, который имеет большое количество доступа, скорее всего — результат рассылки спама. Вы можете заблокировать IP-адрес в csf или apf брандмауэре.

# grep "<script_name>" /home/your_user/access-logs/my_test_domain.com | awk '{print $1}' | sort -n | uniq -c | sort -n

4. Следующая команда, которая покажет вам сценарий, который используете скрипт для отправки электронной почты. Если это отсылается от РНР, то его можно найти:

# egrep -R "X-PHP-Script"  /var/spool/exim/input/*

5. Это покажет 50 доменов, которые используют почтовый сервер:

# eximstats -ne -nr /var/log/exim_mainlog

6. Это покажет из какой пользовательской папки идет спам, так что вы можете легко отследить и заблокировать его.

# ps -C exim -fH ewww | grep home

7. Это покажет  IP-адреса, которые связан с сервером через порт 25.

# netstat -plan | grep :25 | awk {'print $5'} | cut -d: -f 1 | sort | uniq -c | sort -nk 1

8. Для того, чтобы найти «когото»  кто отсылает спам, выполните следующую команду

# ps -C exim -fH ewww | awk '{for(i=1;i<=40;i++){print $i}}' | sort | uniq -c | grep PWD | sort -n

9. Выше команда действует, только если спам в настоящее время в стадии отправки. Если спам выполнился, используйте следующую команду.

# grep "cwd=" /var/log/exim_mainlog | awk '{for(i=1;i<=10;i++){print $i}}' | sort | uniq -c | grep cwd | sort -n

10. Следующий скрипт даст суммарный ответ о почте с почтовой очередью.

# exim -bpr | exiqsumm -c | head

Вот такие команды exim. Если я не озвучил ( не нашел) все, то пожалуйста, сообщите мне и я дополню данный список. А на этом, я завершаю свою статью «Команды Exim».

 

The post Команды Exim first appeared on linux-notes.org.]]>
https://linux-notes.org/komandy-exim/feed/ 0