summaryrefslogtreecommitdiff
path: root/LINUX/MAILutils.md
blob: 029fd6ce47759cea3588bc131f0fdb3d6f2528f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
```sh
sudo apt update && sudo apt upgrade -y
sudo apt install postfix mailutils
```
### Настройка Postfix

Данный раздел покажет, как настроить Postfix для отправки сообщений с сервера, на котором он установлен (то есть, с локального хоста).

Для этого Postfix должен быть настроен на прослушивание только интерфейса внутренней петли (loopback interface) – это виртуальный сетевой интерфейс, который используется сервером для внутреннего взаимодействия. Откройте конфигурационный файл Postfix с помощью редактора nano:

`sudo nano /etc/postfix/main.cf`

Найдите в нем следующий блок кода:

`mailbox_size_limit = 0
`recipient_delimiter = +   
`inet_interfaces = all`

Замените строку 
`inet_interfaces = all 
строкой 
`inet_interfaces = loopback-only
Теперь этот блок выглядит так:

`mailbox_size_limit = 0   
`recipient_delimiter = +   
`inet_interfaces = loopback-only`

Вместо loopback-only можно также использовать localhost:

`mailbox_size_limit = 0   
`recipient_delimiter = +   
`inet_interfaces = localhost`

Завершив редактирование файла, сохраните изменения и закройте его (CTRL+X, затем Y и ENTER). После этого перезапустите Postfix:

`sudo service postfix restart`
`sudo systemctl restart postfix`

### 1. Синтаксис

(В ТЕМЕ И ТЕКСТЕ СООБЩЕНИЯ ИСПОЛЬЗОВАТЬ ТОЛЬКО ENG !!!)
Можно отправить сообщение следующей командой:

`echo "Test text" | mail -s "Test title" master@dmosk.ru

_* в данном примере будет отправлено письмо на электронный адрес **master@dmosk.ru** с темой **Test title** и телом письма — **Test text**._

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

`tail /var/log/mail.log

### 2. Отправка письма с вложением
`echo 'Attachment' | mail -s 'Subject attachment message' -a /var/log/maillog -a /var/log/maillog2 master@dmosk.ru

... или:

`echo 'Attachment' | mail -s 'Subject attachment message' -A /var/log/maillog -A /var/log/maillog2 master@dmosk.ru

_* где **/var/log/maillog** и **/var/log/maillog2** — файлы, которые будут прикреплены к письму. Обратите внимание, что обе команды отличаются по регистру опции **a** и **A** — все зависит от версии и сборки Linux (в каких-то нужно использовать маленькую, в каких-то — большую). Также обратите внимание, что в примере для Ubuntu мы отправим 2 файла — для этого просто добавляем к команде еще одну опцию прикрепления файла._

### 3. Несколько получателей

Для отправки письма нескольким получателям, просто перечисляем их через запятую:

`echo "Test text" | mail -s "Test title" master@dmosk.ru,shmaster@dmosk.ru

_* в данном примере мы отправил письмо на ящики **master@dmosk.ru** и **shmaster@dmosk.ru**._

### 4. Отправка с копией

Отправить копию на адрес master2@dmosk.ru:

`echo "Test copy" | mail -s "Test copy title" master@dmosk.ru -c master2@dmosk.ru

Отправить скрытую копию на адрес master3@dmosk.ru:

`echo "Test hidden copy" | mail -s "Test hidden copy title" master@dmosk.ru -b master3@dmosk.ru

### 5. Указать отправителя

`echo "Test text" | mail -s "Test title" master@dmosk.ru -aFrom:postmaster@dmosk.ru

### 6. Отправка через внешний SMTP сервер

**а) Для Ubuntu / Debian:**

`echo "Test text" | mail -s "Test title" -a "Smtp: smtp.mail.ru:25" -a "From: postmaster@dmosk.ru" -a "Return-path: postmaster@dmosk.ru" master@dmosk.ru

Однако, если сторонний почтовый сервер работает по шифрованному каналу и требует аутентификацию, необходимо ввести следующее:

`echo "Test text" | mail -v -s "Test title" -S smtp="smtp.dmosk.ru:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="master@dmosk.ru" -S smtp-auth-password="password" -S ssl-verify=ignore -S nss-config-dir=/etc/pki/nssdb -S from=postmaster@dmosk.ru master@dmosk.ru

* где:

- **smtp.dmosk.ru** — сервер smtp; 
- **587** — порт для подключения к серверу отправки; 
- **smtp-use-starttls** указывает на использование шифрования через TLS; 
- **smtp-auth=login** задает аутентификацию с использованием логина и пароля; 
- **smtp-auth-user** и **smtp-auth-password** — соответственно логин и пароль; 
- **ssl-verify=ignore** отключает проверку подлинности сертификата безопасности; 
- **nss-config-dir** указывает на каталог с базами nss; 
- **from** задает поле FROM