Рубрики
mail \ почта

zimbra

Ссылки:

http://docs.zimbra.com/docs/os/6.0.10/administration_guide/A_app-command-line.13.12.html
http://docs.zimbra.com/docs/os/6.0.10/administration_guide/A_app-command-line.13.03.html#1209967

https://wiki.zimbra.com/wiki/Zmmailbox

https://devrandom.dev/2017/05/zimbra-shared-mailbox-cli/
https://interface31.ru/tech_it/2012/12/zimbra-pochtovyy-server-i-ne-tolko.html

http://itzx.ru/zimbra/howto-zmmsgtrace

Белые и черные списки в Zimbra
https://habr.com/ru/company/Zextras/blog/425195/

Включение ящика в структуру другого пользователя:


Выставить права на чтение корневой директории:
(zimbra)$ zmmailbox -z -m SHARE@domain.ru mfg / account FOR-USER@domain.ru r

Включить ящик в структуру пользователя:
(zimbra)$ zmmailbox -z -m FOR-USER@domain.ru createMountpoint /SHARE@domain.ru SHARE@domain.ru /

Отобрать права на чтение:
(zimbra)$ zmmailbox -z -m SHARE@domain.ru mfg / account FOR-USER@domain.ru none

Посмотреть выданные права на /
(zimbra)$ zmmailbox -z -m USER@domain.ru gfg /

!!! Удобного мало, что приходится по каждой директории смотреть права: 
(zimbra)$ zmmailbox -z -m USER@domain.ru gaf


Пример включения в структуру: 
zmmailbox -z -m ЯЩИК@ДОНОР mfg / account ПОЛЬЗОВАТЕЛЮ@ВЫДАЕМ_ПРАВА r
zmmailbox -z -m ЯЩИК@ПОЛУЧАТЕЛЬ createMountpoint /ТОЧКА_МОНТИРОВАНИЯ_ЯЩИК@ДОНОР ЯЩИК@DONOR /

Перезапуск

/opt/zimbra/bin/zmcontrol restart

Состояние

su zimbra
zmcontrol status

Просмотр почтовых логов zimbra, zmmsgtrace:

Синтаксис:
zmmsgtrace [опции] [<лог-файлы-почты>...]

Опции:
--help		        Показать справку.
--id	        -i	ID-сообщения. Регулярное выражение.
--sender	-s	Адрес отправителя. Регулярное выражение.
--recipient	-r	Адрес получателя. Регулярное выражение.
--srchost	-F	Адрес хоста источника (ip-адрес или имя хоста). Регулярное выражение.
--desthost	-D	Адрес хоста назначения (ip-адрес или имя хоста). Регулярное выражение.
--time	        -t	Временной промежуток в формате YYYYMM[DD[HH[MM[SS]]]].
--year		        Год файла, если нет YYYY в файле.
--nosort		Не сортировать файлы.
--debug 		Полный вывод, используется для отладки.
--man	        	Показать полную справку. Содержит примеры.

Примеры:
По умолчанию zmmsgtrace находится в папке /opt/zimbra/libexec, для удобства можно  создать символьную ссылку:
ln -s /opt/zimbra/libexec/zmmsgtrace /opt/zimbra/bin/zmmsgtrace

Заходим под пользователем zimbra:
su zimbra

Вывести трассировку всех сообщений из файла /var/log/zimbra.log:
$ zmmsgtrace

Вывести трассировку всех сообщений из файла /var/log/zimbra.log у которых имя отправителя содержит слово 'user_name':
$ zmmsgtrace -s user_name

Вывести все сообщения посланные 'user_name' между датой '20210517' и '20210721' из файла '/var/log/zimbra.log.1.gz' и '/var/log/zimbra.log':
Перейдем в каталог cd /var/log
$ cd /var/log
$ zmmsgtrace zimbra.log.1.gz zimbra.log -sender 'user_name' -srchost localhost -time 20210517,20210721

Найти любую электронную почту, посланную с адреса электронной почты, который начинается на 'р' кому-либо в 'example.com' во всех файлах /var/log/zimbra*:
#/opt/zimbra/libexec/zmmsgtrace
#Using '-s' shows all the emails sent by 'user@example.com':
zmmsgtrace -s '^p' -r '@example\.com$' /var/log/zimbra*
/opt/zimbra/libexec/zmmsgtrace -s user@example.com

# -r sorts emails by the receiver
/opt/zimbra/libexec/zmmsgtrace -r '@gmail.com'  
/opt/zimbra/libexec/zmmsgtrace -r '@gmail.com' /var/log/zimbra*


Статистику по размерам почтовых ящиков можно смотреть через веб-интерфейс. Но это не всегда удобно, а иногда и невозможно.
zmprov gqu имя_сервера|sort -k 3 -n|column -t

Создаем Белый список (Whitelist):

0. Входим под пользователем zimbra
su zimbra

1. Создадим файл postfix_rbl_override:
vim /opt/zimbra/conf/postfix_rbl_override
8.8.8.8 OK
google.com OK

2. Выполняем команду postmap для сохранения настроек в postfix:
postmap /opt/zimbra/conf/postfix_rbl_override

3. Команды  postmap и zmprov необходимо запускать каждый раз после изменения содержимого списка:
zmprov mcf +zimbraMtaRestriction 'check_client_access lmdb:/opt/zimbra/conf/postfix_rbl_override'

4. Перезапустим модуль антиспама:
zmamavisdctl restart


Создаем Черный список (BlackList):

0. Входим под пользователем zimbra
su zimbra

1. Создаем файл postfix_blacklist:
vim /opt/zimbra/conf/postfix_blacklist
1.2.3.4 REJECT
domain.com REJECT

2. Выполняем команду postmap для сохранения настроек в postfix:
postmap /opt/zimbra/conf/postfix_blacklist

3. Команды  postmap и zmprov необходимо запускать каждый раз после изменения содержимого списка:
zmprov mcf +zimbraMtaRestriction 'check_client_access lmdb:/opt/zimbra/conf/postfix_blacklist'

4. Перезапустим модуль антиспама:
zmamavisdctl restart

Еще один список фильтрации:

Для ручных списков фильтрации по адресам и доменам, вставляем нужные данные в файл salocal.cf.in
vim /opt/zimbra/conf/salocal.cf.in
blacklist_from sales@traveloforange.com
whitelist_from bill@yahoo.net
blacklist_from *@emn-zzxcsds.net

Рубрики
mail \ почта

Postfix: «fatal: parameter inet_interfaces: no local interface found for ::1»

Введение:

После отключения IPv6 на сервере перестал запускаться Postfix, но оставлялв логах слдующий след ошибки:
Postfix: «fatal: parameter inet_interfaces: no local interface found for ::1»

Решение:

0.) редактируем /etc/postfix/main.cf заменяя
inet_protocols=all
на
inet_protocols=ipv4

1.) Перезагружаем демон
service postfix restart
Рубрики
mail \ почта

Postfix relay \ yandex \ gmail \ отправка писем

Ссылки:

https://help.ubuntu.ru/wiki/postfix_relay_yandex
Configure Postfix to Use Gmail SMTP on Ubuntu
https://www.shellhacks.com/ru/postfix-gmail-relay-linux-mint-ubuntu-debian/

Решение для yandex:


0. Установка необходимых пакетов
sudo apt-get install postfix mutt

1. Заменяем содержимое /etc/postfix/main.cf
relayhost =
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
sender_canonical_maps = hash:/etc/postfix/private/canonical

2. Создаем папку /etc/postfix/private
sudo mkdir /etc/postfix/private


3. Создаем файлы для Postfix lookup tables
nano /etc/postfix/private/canonical
@yandex.ru	user@yandex.ru

nano /etc/postfix/private/sender_relay
@yandex.ru	smtp.yandex.ru

nano /etc/postfix/private/sasl_passwd
[smtp.yandex.ru]	user@yandex.ru:********

4. Создаем Postfix lookup tables
sudo postmap /etc/postfix/private/*

5. Пере запускаем сервис
sudo service postfix restart

6. Проверяем работу
Можно проверять работу с помощью, например, mutt 
Отправим тестовое сообщение на наш e-mail

echo "test" | mutt -s "test" nash@e-mail.ru
Чтобы добавить вложение используйте ключ -a

echo "test" | mutt -s "test" nash@e-mail.ru -a file

Решение для gmail

0. Установка Необходимых Пакетов
Выполните следующую команду для установки необходимых пакетов:
$ sudo apt-get install mailutils
Во время установки может появиться всплывающее окно. 
Если это произошло, выберите в качестве сервера Internet Site, а в качестве FQDN укажите domain.tld

1. Настройка Postfix с Релеем на Gmail

Откройте настройки Postfix:
$ sudo vi /etc/postfix/main.cf

Добавьте следующие строки:
# Relaying Postfix SMTP via GMAIL
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes


2. Установка Логина/Пароля от Gmail
Откройте (создайте) файл sasl_passwd:

$ sudo vi /etc/postfix/sasl_passwd
Добавьте следующую строку (укажите Ваш логин и пароль от Gmail):

[smtp.gmail.com]:587    ЛОГИН@gmail.com:ПАРОЛЬ
Установите права и скажите Postfix использовать файл sasl_passwd:

$ sudo chmod 400 /etc/postfix/sasl_passwd
$ sudo postmap /etc/postfix/sasl_passwd

3. Установка Сертификата

Добавьте в Postfix сертификат, выполнив следующую команду:
$ cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem


4. Проверка Postfix с SMTP Релеем через Gmail
Перезапустите Postfix для применения всех изменений.

$ sudo service postfix restart
Попробуйте отправить тестовое письмо на какой-нибудь почтовый ящик.

$ echo "Hello World" | mail -s "Test Message" you@example.com
Проверьте логи:

$ tail /var/log/mail.log
Рубрики
mail \ почта

bash: скрипт уведомлений на e-mail о не удачных попытках авторизации


Выполняется поиск по файлу лога веб-сайта, ищется одно из двух совпадений:

вхождение строки "authentication failure";
вхождение строки "user.*not found".

Срабатывает он так:
[Sun Nov 17 17:30:05 2013] [error] [client ***.37.***.**] user user: authentication failure for "/wp-login.php": Password Mismatch
[Sun Nov 17 17:29:52 2013] [error] [client ***.37.***.**] user sdcas not found: /wp-login.php
[Sun Nov 17 17:35:19 2013] [error] [client ***.37.***.**] user sadcsadc not found: /wp-login.php
Первая проверка — на случай, если пользователь был правильный, но пароль не верный. 
Вторая — на случай если пользователь был указан неверно.

Для записи результатов используется временный файл:


# touch /tmp/auth_errors.txt
Собственно, сам скрипт:
#!/usr/local/bin/bash
FILE="/var/log/apache/site.ua-error.log"
FAILF=`cat $FILE | grep -i "authentication failure"`
FAILN=`cat $FILE | grep -i "user.*not found"`
SUBJECT="Last auth failures for site"
EMAIL="mail@domain.com"
EMAILMESSAGE="/tmp/auth_errors.txt"

echo "" > /tmp/auth_errors.txt
echo "$FAILF" > /tmp/auth_errors.txt
echo "$FAILN" >> /tmp/auth_errors.txt

# проверяем не являются ли обе переменные пустыми, иначе  нечего будет отправлять
if [ -n "$FAILN" -o "$FAILF" ]
then
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE
fi
В целом, его можно будет ещё улучшить, 
и добавить автоматическое добавление в таблицу IPFW (по аналогии с утилитой SSHIT).

Добавляем задачу в cron:
# crontab -e
Раз в сутки вполне достаточно:
# crontab -l | grep auth
@daily /usr/home/setevoy/scripts/auth_failed.sh
В результате — получим письмо такого содержания:
# cat /usr/mail/domain.kiev.ua/box\@domain.kiev.ua/cur/1384707423.M869856P59034.akira.domain.kiev.ua\,S\=715\,W\=728\:2\,a
Return-Path: 
Delivered-To: box@domain.kiev.ua
Received: by akira.domain.org.ua (Postfix, from userid 0)
        id D2DFA50F32; Sun, 17 Nov 2013 18:57:03 +0200 (EET)
To: box@domain.kiev.ua
Subject: Last auth failures for site
Message-Id: <20131117165703.D2DFA50F32@akira.domain.org.ua>
Date: Sun, 17 Nov 2013 18:57:03 +0200 (EET)
From: box@domain.kiev.ua (Charlie Root)
[Sun Nov 17 17:30:05 2013] [error] [client ***.37.***.**] user user: authentication failure for "/wp-login.php": Password Mismatch
[Sun Nov 17 17:29:52 2013] [error] [client ***.37.***.**] user sdcas not found: /wp-login.php
[Sun Nov 17 17:35:19 2013] [error] [client ***.37.***.**] user sadcsadc not found: /

Рубрики
mail \ почта

E-mail \ head \ шапка \ test

Шапка:


Return-Path: vasyok185@mail.ru // Возвратный адрес
Received: from [212.111.94.2] (HELO stargate1.agtel.net) 
 by mail.agtel.net (CommuniGate Pro SMTP 4.0.3)
 with ESMTP id 30981304 for vadias@sendmail.ru; Wed, 25 Feb 2004 15:07:48 +0300
Received: from [212.98.163.107] (HELO sendmail.ru) //Первый сервак, на который поступила мессага
 by stargate1.agtel.net (CommuniGate Pro SMTP 4.0b8)
 with SMTP id 16708858 for vadias@sendmail.ru; Wed, 25 Feb 2004 15:07:33 +0300
From: vasyok185@mail.ru
To: vadias@sendmail.ru
Subject: hi
Date: Wed, 25 Feb 2004 14:07:43 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="75468812"
Message-ID: 

test smtp / тест smtp:


telnet nameserver.com 25

220 servename.com ESMTP Exim 4.80 Wed, 01 Nov 2017 23:36:43 +0300 - подключились к почтовому серверу 
helo imvasia - поприветствовали и представились
250 b14esh.com Hello terminal [192.168.15.50] - нас также поприветствовали
mail from: vasya@pupkin.ru - сказали от кого будем слать почту
250 OK - получили добро на отправку
rcpt to: e@b14esh.com - указали куда будем слать почту
250 Accepted - получили добро
data - попробовали начать отправку
354 Enter message, ending with "." on a line by itself - нам дали добро и сказали что нажать когда закончим =) 
Privet vasia
kak y tebi dela
vo i vese
.
250 OK id=1e9zlj-0001FE-MS - закончили отправку и получили номер письма

Рубрики
mail \ почта

Проверка подключения к почтовому серверу \ telnet \ nc

1. Проверка почты через telnet

Как проверить работоспособность почты на сервере mail.server.ua используя утилиту telnet?
Команда для входа на почтовый сервер:
telnet mail.server.ua 110
Задать имя пользователя: user user@server.ua
Задать пароль для пользователя: pass PassW0rd
Получить список писем: list
Прочитать письмо retr x (где x - это номер письма)
Для выхода введите команду quit

2. Проверка работы почтового сервера из командной строки

Доступ к SMTP через telnet (отправка почты).

telnet mail.mydomain.ru 25
mail.mydomain.ru - адрес smtp сервера


25 - smtp-порт сервера, с которым должен соединиться telnet
220 mail.mydomain.ru ESMTP Sendmail 8.13.1/8.13.1; Sat, 6 Oct 2007 09:50:16 +0400


ehlo lo
ehlo lo - здороваемся с удалённым smtp-сервером


250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP


mail from: test@mydomain.ru
здесь мы говорим, что адрес почтовый отправителя письма test@mydomain.ru
250 2.1.0 test@mydomain.ru... Sender ok
поверка отправителя прошла успешно
rcpt to: test@remote.ru
тут мы ввели почтовый адрес получателя нашего письма test@remote.ru
250 2.1.5 test@remote.ru... Recipient ok
проверка получателя прошла успешно
data
команда data говорит о том, что дальше пойдёт тело письма
354 Enter mail, end with "." on a line by itself


ответ сервера говорит нам о том, что закончить письмо мы должны набрать точку "." на новой строке после набранного нами сообщения (тела письма)
this test mail bla-bla-bla.
это наш текст
.
точка - даём понять серверу, что письмо набрано и его пора отправлять адресату.


250 2.0.0 l965oGGR025162 Message accepted for delivery
Ответ сервера - письмо ушло на отправку.


Доступ к POP3 через telnet (приём почты)


telnet pop3.myserver.ru 110
pop3.myserver.ru - наш pop3 сервер


110 - pop3-порт на который соединиться телнет
+OK
сервер сказал, что соединение прошло нормально
user test
ввели имя пользователя test.
pass parol
ввели пароль "parol"
теперь мы можем узнать количество и размер почтовых сообщений:
stat
для вывода полного листинга почтовых сообщений надо использовать команду:
list
для того чтобы прочитать нужное сообщение вводим:
retr номер письма
просмотреть только заголовок сообщения:
top номер письма 0 (в конце строки поставить ноль)
удалить письмо из ящика:
dele номер сообщения
выход:
quit

Дополнение:

Если SMTP сервер требует SMTP-аутентификацию, то после того как мы с ним поздоровались (ehlo lo) вводим команду AUTH LOGIN и после неё по очереди:
USERNAME имя-пользователя
PASSWORD наш-пароль

Как отправить файл по электронной почте из командной строки Linux.

Для отправки файла из командной строки можно воспользоваться несколькими способами:
Отправка текстового файла:
cat text.txt | mail -s TEST email@address
Отправка бинарного файла:
cat text.exe | uuencode text.txt | mail -s TEST email@address 
Отправка файла с архивированием на лету:
gzip -c text | uuencode text.gz | mail -s TEST email@address
Отправка с помощью утилиты mpack:
mpack -s “Attached file” file.jpg test@example.com
Отправка с помощью утилиты nail: 
nail -s "Let's send file" -a file_to_send.rar recepient@email.adr
Look at this funny file
.

Рубрики
mail \ почта

Roundcube \ установка \ mail webclient

Ссылки:

http://ttham.com/?p=444 - еще руководство
http://roundcube.ru/docs/Howto_Install.html - руководство
http://www.php.net/manual/en/timezones.php - временные зоны

Скачиваем:

0)Скачиваем с http://roundcube.net/download и устанавливаем по инструкции

Типичная ошибка:


suhosin.session.encrypt: NOT OK(is ’1′, should be ’0′)
To work around the problem, you need to do the following

nano  /etc/php5/conf.d/suhosin.ini
убрать кавычку suhosin.session.encrypt = 0 и выставить 0



Устанавливаем:

Установим пакеты без которых ничего не будет работать.
apt-get install php5-mcrypt
apt-get install php5-imap
apt-get install php5-intl

Настройка временной зоны:

nano  /etc/php5/apache2/php.ini
search within vi using the command /timezone
uncomment “date.timezone“
set the value to one of the supported timezone listed on this page
Restart apache2 - service apache2 restart
Рубрики
mail \ почта

exim paniclog \ Ошибка: /var/log/exim4/paniclog has non-zero

exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken
тупила почта на ровном месте.
1) rm /var/log/exim4/paniclog
2) /etc/init.d/exim4 restart
Рубрики
mail \ почта

Evolution \ Почтовый клиент

почтовый клиент Evolution
Evolution 2.30
Правка> Фильтр сообщений -тут все фильтры
все фильтры действуют на новые сообщения но можно запустить их вручную 
ctr+A -выделить все сообщения 
ctrl+Y -задействовать все фильтры
Рубрики
mail \ почта

Парсер почты \ mail parser \ perl

Описание работы скрипта:

Подключаемся к почтовому серверу(IMAP).
Проверяем входящие и все прочтённые письма складываем в папку read.
Все вложения из писем оправляем на шару

Настройка:
0) ставим apt-get install libnet-imap-simple-ssl-perl  libmailtools-perl ripmime smbclient
1) создаем пользователя
adduser parse

2) входим под юзакаом
su parse

3) переходим в домашний каталог 
cd ~

4) создаем файлы и каталог res
touch mailattach.pl public
mkdir res

5) nano /home/parse/mailattach.pl
---------------------------------
много букв, смотрим содержимое внизу 
Скрипт mailattach.pl
---------------------------------

6) nano /home/parse/public
--------------------------
username = parse
password = Password_User
domain = Name_server
--------------------------

7) расписание 
Каждые 5 минут запускать скрипт
crontab -e 
*/5 * * * * /home/parse/mailattach.pl

Скрипт mailattach.pl:


#!/usr/bin/perl
# mailattach.pl
  use strict;
  use warnings;
  use Net::IMAP::Simple;
  use Mail::Header;
# для крона - переходим в директорию локации скрипта
$0=~/^(.+[\\\/])[^\\\/]+[\\\/]*$/;
my $cgidir= $1 || "./";
chdir $cgidir;

# Чистим res
system ("/bin/rm -rf res/*");

# параметры windows ресурса
    my $SMBSERVER="//server_name";  # имя сервера
    my $SMBSHARE="/folder_share";     # имя общего ресурса на сервере
#my $SMBDIR="xml";        # папка, в которую будем выкладывать вложения
## параметры почтового ящика
    my $mailhost = "mail.server.ru";
    my $mailuser = 'parse@server.ru';
    my $mailpass = 'SUperPassWORD';
    my $mailfolder = "INBOX"; # папка, в которой проверяем почту
    my $mailNewFolder = "read"; # папка, в которую перекладываем прочтенные письма
# создаем подключение к серверу
my $imap = Net::IMAP::Simple->new(
    $mailhost,
    port    => 143,
    use_ssl => 0,
    debug => 0,
    ) || die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";

if(!$imap->login($mailuser,$mailpass)){
   print STDERR "Login failed: " . $imap->errstr . "\n";
   exit(64);
}
# Читаем входящие сообщения
my $nm = $imap->select($mailfolder);
# Последователь проходим по списку сообщений
for(my $i = 1; $i <= $nm; $i++){
    # Получаем список служебных заголовков письма
    my $header = $imap->top($i);
    # Разбиваем заголовки на отдельные составляющие
    my $head_obj = Mail::Header->new($header);
    # по теме письма формируем имя директории для сохранения вложений
    my $dir = $head_obj->get('Subject');
    # удаляем все не словарные символы,
    # для исключения проблем с созданием папок в windows
    #$dir =~ s/\W+//g; с длинными именами в заголовке будут проблемы. 
    #будем генерировать рандомные имена папок 
    $dir = rand;
    # Сохраняем текущее сообщение в файл
    open MSGFILE,"> res/msg" or die "Couldn't open file: \n";
    print MSGFILE @{ $imap->get($i) };
    close MSGFILE;
    # перемещаем сообщение в папу обработанных
    # если папка для перемещения не создана письмо будет только удалено
    $imap->copy($i,$mailNewFolder);
    $imap->delete($i);
    # разбираем письмо на вложения
    system ("/usr/bin/ripmime","-ires/msg","-dres/$dir");
    # копируем файлы на ресурс windows
    # переходим в папку с вложениями
    chdir "res/".$dir or die "Can't cd $!\n";
    # prompt - необходим, что бы не подтверждать копирование каждого файла в команде mput
    # в моем случае копируются все вложения
    my $SMBCMD="prompt;mput *;exit";
    system ("/usr/bin/smbclient","$SMBSERVER$SMBSHARE","-A../../public","-c$SMBCMD");
    chdir "../../";
}
# Закрываем подключение к imap серверу
$imap->quit;
# чистим директорию с временными файлами
system ("/bin/rm -rf res/*");
exit 0;

Рубрики
mail \ почта

postfix block \ блокировка приема почты

Ссылки:

https://www.opennet.ru/base/net/rejectmail.txt.html

Пример настройки postfix:

0. Редактируем:
/etc/postfix/main.cf:
   smtpd_sender_restrictions = hash:/etc/postfix/access

1. Создаем файл access:
/etc/postfix/access
    spamer@domain REJECT         # Заблокировать емайл.
    domain REJECT		 # Заблокировать всю почту с домена и поддоменов
    spamer@ REJECT		 # Заблокировать пользователя с любого домена
    spamer@domain 550 NO SPAM    # Выдать сообщение 
    192.168.1.1 REJECT		 # Не принимать почту с IP (или подсети)

2. Применяем:
# postmap /etc/postfix/access
# postfix reload


### Дополнение
Запрет на прием почты с сетей (с указанием маски) прописывается не в hash, а в cidr -таблицу. 
Синтаксис такой:
smtpd_sender_restrictions = cidr:/etc/postfix/mx_access
smtpd_recipient_restrictions = cidr:/etc/postfix/mx_access

В самом файле mx_access пишем так:
222.0.0.0/8 550 STOP SPAM!!!
213.0.0.0/8 REJECT
Рубрики
mail \ почта

postfix \ mailq \ postcat \ postuser \ письма \ очередь \ прочитать \ удалить

Посмотреть активные настройки Postfix:
postconf -d

Посмотреть конкретно что в очереди:
mailq

Прочитать письмо:
postcat -b 7E62A2C0354

Посмотреть сколько сообщений в очереди:
mailq | grep Requests 

Пнуть очередь на немедленную доставку:
postsuper -r ALL; postfix flush

Пнуть конкретное письмо по ID:
postsuper -r ID

Удалить письмо по ID:
postsuper -d ID

Удалить всю очередь:
postsuper -d ALL

Рубрики
mail \ почта

mutt \ mail \ Почтовые клиенты

MBOX - стандартный формат хранения почты на локальном пк

mail /var/spool/mail/user_box - смотрим свой ящик 
(? увидеть список команд)(v3 увидеть третие сообщение)
(h18 наченая с 18 писма  увидеть список заголовков)
(r7 ответит на сообщение номер 7) (d4 удалить четвертое сообщение)
(4d-8 удалить сообщения с 4 по 8 (включая 4 и 8))
(!bash затем exit выход из mail)
(клавиша X выйти ничего не соронять)(клавиша Q выйти сохронить изменения)

mail -f /var/spool/mail/user_box - смотрим чужой ящик
mail -s 'My Linux version' my_name@mail.com < /etc/lsb-release  - отправка письма. 
                                                                  заголовок 'My Linux version'. 
                                                                  текст берем из файла  /etc/lsb-release

ps auwx |mail -s 'My Process List'  my_name@mail.com - передать список процессов команде mail и отправить письмо

mutt - почтовый клиент

(Page Up и Page - Down прокрутка страниц в сообщении)
(I - для возврата к заголовкам сообщения) 
( / - искать далее, Esc+/ - поиск в обратном направлении )
(N - новый поиск)(Tab - перейти к новому непрочитанному сообщению)
(Esc+Tab - перейти к предыдущему сообщению)
(S - сохранение текущего сообщения в файл)
(D - удаление сообщения)(U - отмена удаления)
(M - отправка нового сообщения) ( A - присоединения файла к письму)
(? - помощь) (Y - отправка) (Q - прервать отправку)
(X - выйти без сохранения изменением) 
(Q - выйти и сохранить)

mutt -s 'My Linux version' /etc/lsb-release my_name@mail.com < email-body.txt - отправка письма
mutt -s 'My Linux version' -a /etc/lsb-release my_name@mail.com < dev/null - текст писма пуст. прикреплен файл



Рубрики
mail \ почта

gmail \ Как удалить все старые письма

Источник:

https://support.google.com/mail/answer/7190?hl=ru

Как удалить письма в Gmail из определенной папки.

in:inbox — поиск писем в папке входящие. 
in:sent - поиск писем в папке отправленные. 
in:trash - поиск писем в папке корзина. 
is:impotant — поиск писем в папке важные.

Как удалить старые письма Gmail за определенный период?

after:2015/08/01 before:2017/08/10 
указанной выше отразятся все письма за период c 2015.08.01 по 2017.08.10. 

Как удалить старые письма Gmail больше определенного размера.

size:1 000 000 — поиск писем больше 1МБ (1 000 000 байт)

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

in:inbox after:2015/08/01 before:2017/08/10  size:1 000 000 

Рубрики
mail \ почта

exim frozen \ Очередь \ smtp relay

Источник:

 
http://www.dnsbl.info/dnsbl-database-check.php
http://farmal.in/2011/07/ochered-exim-frozen-i-smtp-relay/
http://test.nettools.ru/

Решение:

exiqgrep -o 86400 -i |xargs exim -Mrm
Если же требуется удалить все замороженные сообщения из очереди, то следует воспользоваться командой:
exiqgrep -z -i | xargs exim -Mrm

Рубрики
mail \ почта

php mail() \ sendmail-bin \ setup \ настройка

Источники:

http://ubuntu-favorite-os.blogspot.ru/2011/10/php-mail-ubuntu.html
http://www.netangels.ru/support/hosting-howto/php-mail/
http://it-folio.ru/forum/index.php?topic=467.0
http://phpclub.ru/detail/article/mail
http://brahabr.ru/post/136735/

Задача: настроить на локальном сервере, под управлением ОС Ubuntu отправку почты средствами php-функции mail()


1. Установка SendMail из репозитория Ubuntu
sudo apt-get install sendmail

2. Проверка работоспособность smtp-сервера 
при помощи командной строки и telnet-протокола
# telnet localhost smtp
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost6.localdomain6 ESMTP Sendmail 
8.14.3/8.14.3/Debian-9.2ubuntu1; Thu, 9 Dec 2010 15:31:17 +0200;
(No UCE/UBE) logging access from: localhost.localdomain(OK)-
localhost.localdomain [127.0.0.1] 
HELO localhost 
250 localhost6.localdomain6 Hello localhost.localdomain [127.0.0.1], 
pleased to meet you 
MAIL FROM: no-reply@gmail.com
250 2.1.0 no-reply@gmail.com... Sender ok 
RCPT TO: my_exist@gmail.com
250 2.1.5 my_exist@gmail.com... Recipient ok
DATA 
354 Enter mail, end with "." on a line by itself
test message
. 
250 2.0.0 oB9DVHsE004837 Message accepted for delivery 

В результате выполнения последовательности комманд на указанный емейл (my_exist@gmail.com) должно прийти сообщение ("test message"). 

3. Настройка php.ini
gedit /etc/php5/apache2/php.ini  
1) Находим и редактируем следующую строчку
sendmail_path = /usr/sbin/sendmail -t -i 4. 
2) Проверка функции mail()
echo  mail ("my_exist@gmail.com","test message","test message","From:no-reply@gmail.com");

Для debian установка такая:

apt-get update - обновляем репозиторий
apt-get install sendmail-bin - ставим sendmail
Настройка завершена