Інтернет Windows Android

Налаштовуємо Sendmail. Встановлення та налаштування Sendmail у середовищі Ubuntu Встановлення та налаштування sendmail ubuntu

Вона з'явилася ще 1983 року, але активно використовується й досі. Серед ключових особливостей – підтримка багатьма платформами, які існують сьогодні, а також безкоштовність. Програма постачається разом із відкритим вихідним кодом. Це означає, що кожен бажаючий може додати до нього свою функціональність, або змінити за бажанням. В операційній системі Ubuntu, Sendmail, налаштування якої виконується завдяки командному рядку Linux, прижилося завдяки гарній підтримці та багатим можливостям.

Процесор повідомлення – Sendmail – набув широкого поширення у бізнес сфері.

На сьогодні досить поширений процесор повідомлень Сендмейл Sentrion, який був створений з урахуванням потреб великих компаній. Його відмінні риси – висока продуктивність та хороша інтегрованість з усіма бізнес-процесами. Sentrion пропонує поряд з новими технологіями використовувати і застарілі програми, які добре прижилися. Також додаток досить дружелюбно, щоб підходити домашнім користувачам.

Встановлення програми

Встановлювати Сендмейл потрібно з урахуванням локального сервера чи web-сервера. У другому випадку поштовий агент буде більш функціональним. Щоб отримати всі компоненти веб-сервера, вам знадобиться стек компонентів LAMP . Його можна знайти у репозиторії.

ВАЖЛИВО. Перед встановленням нового програмного забезпечення не забудьте оновити списки пакетів у локальному репозиторії за допомогою команди

$ sudo apt-get update

Інсталяція Сендмейл починається за допомогою команди sudo apt install sendmail, яка виконає завантаження пакетів поштового агента.

"mcedit /etc/hosts"
sudo sendmailconfig

Після цього потрібно перезапустити служби самої програми, а також web-сервера Apache:

"sudo /etc/init.d/sendmail restart"
"sudo /etc/init.d/apache2 restart"

Якщо потрібно, можна встановити утиліти для роботи з поштою:

«sudo install mailutils»

Перевіряємо тестування працездатності всієї системи:

«mail ваша_пошта< /dev/null»

де «ваша_пошта» – це актуальна поштова адреса.

І, нарешті, перевіримо log-файл. Це файл поштового сервісу, де будуть відображатися помилки інсталяції:

"tail -f /var/log/mail.log"

Залишилося тільки зайти до скриньки електронної пошти. У ньому вже має бути тестове повідомлення.

Отже, ви дізналися більше про програму для Ubuntu під назвою Sendmail, налаштування якої виявилося не таким складним. Якщо у вас є питання щодо інших аспектів роботи з програмами для Linux - шукайте відповіді на них на сторінках нашого сайту!

У книзі докладно розглянуто налаштування мережевих сервісів, що дозволяють створити сервер необхідної конфігурації та функціональності на основі ОС Linux. Ви зможете налаштувати сервер будь-якого типу: від сервера локальної мережі до Інтернет-сервера та сервера віддаленого доступу. Детально описано адміністрування Linux.

Виклад матеріалу побудовано на основі дистрибутивів Red Hat та Mandrake. Багато унікальної інформації: запуск Windows-ігор під Linux та створення Linux-сервера для ігрового залу, налаштування антивірусів Dr. Web та AVP під Linux, програма обліку трафіку MRTG, система захисту та виявлення атак LIDS, а також багато іншого. Особливу увагу приділено безпеці Linux-серверів. Досить докладно описано саму ОС Linux і наведено довідник її команд. Прочитавши книгу, ви станете володарями знань з налаштування та компілювання ядра, створення власних rpm-пакетів, командного інтерпретатора bash, використання масивів RAID. Ви дізнаєтесь про внутрішній світ Linux. Книга підійде як для професійних, так і для адміністраторів-початківців, оскільки виклад матеріалу починається з установки ОС Linux, а в першому розділі дано опис основних мережевих технологій і протоколів (Курс Молодого Адміністратора).

Всі наведені в книзі лістинги перевірені на практиці і розміщені на CD, що додається. Крім цього, на ньому міститься багато довідкової інформації (HOWTO, RFC), а також статей, присвячених Linux. Розміщений багатий набір допоміжних утиліт та програмного забезпечення для сервера (Apache, MySQL, MRTG та ін.).

Книга:

Якщо ви використовуєте дистрибутив, сумісний з RedHat, вам потрібно буде встановити відповідні пакети. Я використовую sendmaiI-8.11.0 та imap-4.7c2. Останню версію sendmail можна викачати з Інтернету за адресою http://www.sendmail.org.

Перш ніж розпочати налаштування sendmail, вам необхідно правильно налаштувати DNS. Налаштування сервера DNS детально обговорювалося в гол. 10. Якщо ви налаштовуєте лише поштовий сервер, вам не обов'язково налаштовувати сервер DNS на цьому ж комп'ютері. Достатньо буде вказати DNS-сервера вашої мережі у файлі /etc/resolv.conf, щоб система дозволу імен коректно працювала. Втім, sendmail можна налаштувати для роботи без використання DNS, але цей варіант я не розглядатиму.

Для того, щоб розпочати базове налаштування sendmail, запустіть утиліту netconf (див. рис. 13.1). Вона працює як з-під Х-Window, так і з-під консолі. Утиліта netconf є в RedHat Linux, Mandrake, ASPLinux та інших дистрибутивах, її точно немає в KSI Linux. Звичайно, ви повинні бути зареєстровані у системі як root. Якщо ви не маєте програми netconf, ви отримаєте незабутнє задоволення від редагування файлу /etc/sendmail.cf вручну. Саме в цьому файлі зберігаються всі налаштування sendmail.


Рис. 13.1. Конфігуратор netconf

Виберіть у меню Mail delivery system, потім Basic sendmail configuration. У полі Present your system as просто введіть своє доменне ім'я. Потім обов'язково позначте прапорець "Accept email for your_domain.com" (див. рис. 13.2). Якщо ви цього не зробите, через сервер можна буде перенаправити повідомлення на інший сервер. При цьому через ваш сервер йтиме зайвий трафік, який вам зовсім ні до чого. Колись навіть існував такий вид атаки на відмову через електронну пошту. Принцип його наступний: надсилається лист від неіснуючого користувача [email protected]іншому неіснуючому користувачеві [email protected]Лист надсилається через комп'ютер hostcom, який дозволяє перенаправити повідомлення (не увімкнено режим «Accept email for domain.com»). Поштовий сервер домену B.com надсилає повідомлення на адресу [email protected]про те, що користувач [email protected]не існує. У свою чергу поштовик домену A.com повідомляє, що користувача [email protected]також не існує і надсилає повідомлення на адресу [email protected]Виникає непряма рекурсія. А тепер уявіть, що таке повідомлення не одне, а, скажімо, 100 та об'єм кожного хоча б 1 Мб! В результаті один із серверів у ланцюжку domain1.com – host.com – domain2.com повинен «впасти».


Мал. 13.2. Основна конфігурація sendmail

Прошу вибачення, я трохи відійшов від теми, продовжимо конфігурувати sendmail. Протокол надсилання повідомлень встановіть smtp (Mail gateway protocol).

Цієї інформації вже цілком достатньо, щоб ваш sendmail функціонував. Ви можете встановити додаткові опції програми sendmail за допомогою netconf.

Тепер зробіть так, щоб sendmail приймав пошту лише з дозволених адрес. Для цього навіть не потрібно налаштовувати сам sendmail – потрібно лише підправити файли /etc/hosts.allow та /etc/hosts.deny. У першому з них міститься список хостів, яким дозволено доступ до цієї машини, а у другому - яким заборонено. Зверніть увагу: незважаючи на назву - "дозволений" або "заборонений", обмеження, які встановлюються першим файлом набагато суворіше. Наприклад, для заборони доступу всім хостам, крім комп'ютерів вашої мережі, до файлу /etc/hosts.allow додайте рядок: 192.168.1.

Тут мається на увазі, що мережа має адресу 192.168.1.0 та маску 255.255.255.0. Більш детально про формат файлів hosts.allow та hosts.deny ви можете прочитати, ввівши команду man hosts.allow.

Тепер настала черга POP3. Після інсталяції пакета imap у вас практично все налаштовано, тобто. я хочу сказати, що можна перевіряти конфігурацію. Перезапустіть демон inetd або xinetd, залежно від того, який ви використовуєте, та введіть наступне:

telnet<имя_только_созданного_почтовика> 25

У відповідь ви повинні побачити приблизно таке:

Trying 192.168.1.1. . .
Connected to 192.168.1.1
Escape character is
220 de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 Sun, 17 Jun
2001 10:54:22 +300

Це означає, що sendmail працює, залишилося перевірити, наскільки правильно він це робить. З цією метою введіть приблизно таке:

mail from: [email protected]
220 2.1.0 [email protected]…. Sender Ok
rcpt to: [email protected]
220 2.1.5 [email protected]…. Recipient Ok

Після цього введіть data, потім текст повідомлення, а для закінчення введення поставте крапку в порожньому рядку. Sendmail повідомить, що повідомлення надіслано (точніше вміщено у чергу на відправку). Запис [email protected]- Ім'я користувача, якому ви надсилаєте пошту. Користувач має реально існувати. Запис den.dhsilabs.com – ім'я вашої поштовика.

Примітка. Імена [email protected]і dhsilabs.com дано як приклад. Замість них ви маєте вказати свої значення.

Зверніть увагу, що сайту my.host.com і в природі немає, а програма sendmail повідомляє, що "Sender Ok". Ось тому в налаштуваннях sendmail краще включити опцію Wait for DNS.

Тепер потрібно запустити якийсь поштовий клієнт, наприклад kmail, та отримати пошту. Використовуйте такі параметри мережі у програмі kmail: Мережа? Відправлення пошти встановіть SMTP, порт 25, ім'я сервера - ім'я вашої поштовика, у прикладі - це den.dhsilabs.com. Потім додайте обліковий запис POP3:

Ім'я користувача - den

Пароль – пароль, який використовується для входу в систему.

Сервер - den.dhsilabs.com

В результаті ви повинні отримати повідомлення, яке ввели після data. При цьому можливі проблеми під час вирішення імені. Щоб їх уникнути, необхідно правильно налаштувати DNS або замість імені поштового сервера використовувати його IP-адресу. При додаванні нового користувача не забудьте встановити пароль для входу в систему. Якщо цього не зробити, а намагатися отримати пошту без вказівки на пароль, ви отримаєте повідомлення «Збій аутентифікації».

Базове налаштування програми sendmail виконується дуже просто за допомогою конфігуратора, але іноді базового налаштування недостатньо. Для більш точного налаштування потрібно ознайомитись із файлами конфігурації програми sendmail.

Примітка.У більшості випадків вас буде влаштовувати базове налаштування до тих пір, поки вас не візьмуть під свій «протекторат» спамери - тоді вам потрібно буде прочитати гол. 23 про методи захисту від спаму. Однак може спрацювати один із законів Мерфі – для вашої системи не буде розроблений конфігуратор sendmail і тоді вам все одно доведеться розбиратися з файлами конфігурації.

Основним конфігураційним файлом sendmail є файл /etc/sendmail.cf. У деяких дистрибутивах цей файл розташований у каталозі /etc/mail. Про цей файл говорять, що він довший за лімузин у Білла Гейтса і що його редагування відбувається в режимі «очі бояться, руки роблять». Якщо ви не вірите мені, відкрийте цей файл і ви переконаєтеся в цьому. Редагувати файл вручну можуть тільки професіонали-адміністратори або розробники програми sendmail.

Зазвичай для редагування файлу використовується макропроцесор m4. Спочатку ви підготуєте спеціальний mc-файл. У цьому файлі записано налаштування.sendmail, але в більш «читабельному» вигляді. При редагуванні конфігураційних файлів також позначається їх розмір. Для порівняння: розмір мого mc-файлу – 2459 байт, а файлу sendmail.cf – 46302 байт. Одна справа, редагувати файл розміром у два кілобайти, і зовсім інше, якщо розмір файлу дорівнює 46 кілобайтам. На відміну від конфігураційного файлу sendmail, ви відразу зрозумієте, навіщо призначений той чи інший mc-файл. Потім, відредагувавши mc-файл, потрібно запустити макропроцесор m4 для створення конфігураційного файлу sendmail:

m4 my_config.mc > /etc/sendmail.cf

Перед виконанням цієї команди я настійно рекомендую зберегти десь вихідний файл sendmail.cf. У разі некоректного налаштування ви завжди зможете відновити його.

Стандартний файл конфігурації, який використовується макропроцесором т4 для створення файлу конфігурації програми sendmail (sendmail.cf), знаходиться в каталозі /usr/share/sendmail-cf/cf. У старіших версіях програми sendmail він може бути розташований у каталозі /usr/lib/sendmail.

Як правило, цей файл називається sendmail.mc. Іноді він може називатися по-іншому, наприклад, redhat.mc, якщо ви використовуєте операційну систему Red Hat або сумісну з нею.

Приклад стандартного файлу /usr/share/sendmail-cf/cf/redhat.mc наведено у лістингу 13.1.

Лістинг 13.1. Стандартний файл redhat.mc

divert(-1)
dnl Цей sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm налагоджено і буде це generate a
dnl /etc/sendmail.cf by running the following command: dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl
include("../m4/cf.m4")
VERSIONID("Linux Setup for Red Hat Linux")dnl
OSTYPE("linux")
define("confDEF_USER_ID","8:12") dnl
undefine("UUCP_RELAY")dnl
undefine("BITNET_RELAY")dnl
define("confAUTO_REBUILD")dnl
define("confTO_CONNECT", "1m")dnl
define("confTRY_NULL_MX_LIST",true)dnl
define("confDONT_PROBE_INTERFACES",true)dnl
define("PROCMAIL_MAILER_PATH", "/usr/bin/procmail")dnl
define("ALIAS_FILE", "/eto/aliases")dnl
dnl define("STATUS_FILE", "/etc/mail/statistics")dnl
define("UUCP_MAILER_MAX", "2000000")dnl
define("conf USERDB_SPEC", "/etc/mail/userdb.db")dnl
define("confPRIVACY_FLAGS", "authwarnings,novrfy,noexpn,restrictqrun")dnl
define("confAUTH_OPTIONS", "A")dnl
dnl TRUST_AUTH_MECH("DIGEST-MD5 CRAM-MD5 LOGIN PLAIN") dnl
dnl define("confAUTH_MECHANISMS", "DIGEST-MD5 CRAM-MD5 LOGIN PLAIN")dnl
dnl define("confTO_QUEUEWARN", "4h")dnl
dnl define("confTO_QUEUERETURN", "5d")dnl
dnl define("confQUEUE_LA", "12")dnl
dnl define("confREFUSE_LA", "18")dnl
dnl FEATURE(delay_checks)dnl
FEATURE("no_default_msa", "dnl")dnl
FEATURE("smrsh",Vusr/sbin/smrsh")dnl
FEATURE("mailertable", "hash-o /etc/mail/mailertable.db")dnl
FEATURE("virtusertable", "hash –o /etc/mail/virtusertable.db")dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, "", "procmail –t –Y –a $h –d $u")dnl
FEATURE("access_db","hash –o /etc/mail/access.db")dnl
FEATURE("blacklist_recipients")dnl
EXPOSED_USER("root") dnl
dnl Ці зміни sendmail to only listen on loopback device 127.0.0.1
dnl і не на будь-якій іншій мережі пристроїв. Comment this out if you want
dnl для отримання електронної пошти через мережу.
DAEMON_OPTIONS("Port=smtp,Addr=127.0.0.1, Name=MTA")
dnl NOTE: binding both IPv4 and IPv6 daemon to same port requires
dnl a kernel patch
dnl DAEMON_OPTIONS (xport=smtp,Addr=::1, Name=MTA-v6, Family=inet6")
dnl We strongly recomend to comment this one out if you want to protect
dnl yourself від spam. However, laptop and users на комп'ютерах that
do dnl not have 24x7 DNS do need this.
FEATURE("accept_unresolvable_domains")dnl
dnl FEATURE("relay_based_on_MX")dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Cwlocalhost.localdomain

За допомогою директиви FEATURE можна підключити ту чи іншу функцію sendmail. Наприклад, функція mailertable призначена для перевизначення маршрутизації для конкретних доменів. Ви можете легко розширити функціональні можливості програми sendmail, додавши потрібні функції в mc-файл.

Припустимо, що ви хочете, щоб назви комп'ютерів домену були приховані. Це легко досягається за допомогою додавання функції masquerade_envelope у ваш mc-файл. Для цього скопіюйте файл redhat.mc у файл hide_hosts.me і додайте до кінця файлу hide_hosts.me рядки:

MASQUERADE_AS(my-domain.ru)dnl
FEATURE(masquerade_envelope)dnl

Потім виконайте команду:

m4 /usr/share/sendmail-cf/cf/hide_hosts.me>/etc/sendmail.me

От і все! Назви вузлів будуть приховані. Опис інших функцій наведено в табл. 13.1.

Функції програми sendmail Таблиця 13.1

Функція Опис
access_db Визначає таблицю доступу. У цій таблиці вказані хости, яким дозволено або заборонено надсилання пошти через ваш поштовий сервер. Ця опція ефективно використовується для боротьби зі спамом. Захист від спаму докладно розглянуто в однойменному розділі гол. 23
accept_unresolvable_domains Дозволяє надсилати пошту доменам, які не можуть бути розпізнані
bestmx_is-local Повідомлення прийматимуться лише в тому випадку, якщо запис DNS-сервера вказує на цей поштовий сервер
blacklist_recipients "Чорний список". Ще одна опція для боротьби зі спамом. Для її роботи потрібна опція access_db
dnsbl Використовується для роботи з чорним списком, dnsbl - це скорочення від DNS Black List. У попередніх версіях ця опція називалася (Resolve Black List)
domaintable Використовується для дозволу імен доменів
genericstable Використовується для зміни адреси надсилання у повідомленнях
local_procmail Вказує, що доставляти пошту потрібно за допомогою локальної програми procmail
mailertable Перевизначає маршрутизацію для конкретних доменів
masquerade_entire_domain Використовується для маскування (приховування) всього домену. Ця функція повинна використовуватися разом з директивою MASQUERADE AS (або MASQUERADE_DOMAIN), наприклад MASQUERADE_AS(f117.ru)dnl
masquerade_envelope Дозволяє приховати імена хостів домену. Замінює поле received from заголовка повідомлення перед передачею повідомлення іншим
redirect Використовується для перенаправлення на інший поштовий сервер. Означає відмову від прийняття пошти з видачею повідомлення please try
(спробуйте використати цю адресу)
relay_based_on_MX Дозволяє перенаправлення (ретрансляцію) пошти тільки для вузлів, зазначених у записах МХ-сервера DNS
relay_hosts_only Дозволяє ретрансляцію лише для вузлів, вказаних у access_db
relay_mail_from Дозволяє ретрансляцію лише, якщо відправник вказаний у списку бази RELAY accessdb
smrsh Використання обмеженої оболонки sendmail
use_cf_file При вказанні цієї функції sendmail звертатиметься до файлу sendmail.cf за списком довірених користувачів
use_cw_file При вказанні цієї функції sendmail звертатиметься до файлу sendmail.cw за списком локальних вузлів
virtusertable Перетворює адресу одержувача на адресу локального користувача

У файлі /etc/mail/sendmail.cw перелічені всі псевдоніми поштового сервера. Припустимо, що ім'я сервера mail.dhsilabs.ru. Якщо відправник надішле пошту на адресу [email protected], лист буде без проблем доставлений користувачеві den. А якщо хтось надішле лист за адресою [email protected], то його доставка викликає певні труднощі, тому що не зрозуміло якому вузлу домену dhsilabs адресовано повідомлення? Щоб вирішити цю проблему, у файл sendmail.cw потрібно помістити рядок.

Навряд чи вам потрібен web-сервер, який не може надіслати пошту з вашого сайту. Нижче простий спосіб швидко розгорнути sendmailяк MTA (Mail Transfer Agent), що надсилає пошту для сайту.

Для початку встановлення

Sudo apt-get install sendmail

Друге і найголовніше - правильне налаштування самого хоста. Пошти потрібно чітко знати яке DNS FQDN ім'я у хоста і що воно існує на просторах світової мережі.

Припустимо, що сервер, на якому працює sendmailмає IP адресу 123.123.123.123

Також ми маємо доменне ім'я domainame.com, яке правильно делеговано на IP адресу сервера.

Редагуємо файл /etc/hostsщоб сервер сам знав своє DNS ім'я (природно, що воно має бути правильним і реальним)

Sudo nano -w /etc/hosts

Другий рядок, який варто дописати і є опис доменного імені сервера, його зіставлення з реальною IP адресою хоста та внутрішньою системною назвою:

127.0.0.1 localhost 123.123.123.123 box1.domainname.com your-web-server

Після чого потрібно внести зміни у файл /etc/hostname

Sudo nano -w /etc/hostname

І вписати туди правильне ім'я сервера, яке було вписано в /etc/hostsу нашому прикладі це your-web-server.

Вміст файлу /etc/hostname після редагування:

Your-web-server

Після цих дій потрібно перезавантажити сервер або виконати:

/etc/init.d/hostname restart І виконати 2 команди: hostname hostname -f

Якщо все правильно, система має видати однакові імена в обох випадках: your-web-server

Раджу перевірити відправку листатаким чином

# 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 вводимо: HELO localhost нам видає: 250 localhost6.localdomain6 Hello localhost.localdomain , pleased to meet you вводим: [email protected]нам видає: 250 2.1.0 [email protected] Sender ok вводимо: RCPT TO: [email protected]нам видає: 250 2.1.5 [email protected] Recipient ok вводимо: DATA нам видає: 354 Enter mail, end with "." on a line by itself вводимо test message. я сподіваюся що ви здогадалися що вказану пошту вище потрібно було замінити на своє останнє що пише нам телнет 250 2.0.0 oB9DVHsE004837

В результаті виконання послідовності команд на вказаний e-mail ( [email protected]) має прийти повідомлення ("test message").

Налаштування php.ini

gedit/etc/php5/apache2/php.ini

Знаходимо і редагуємо наступний рядок

sendmail_path = /usr/sbin/sendmail -t -i

Перевірка функції mail()

echo mail (" [email protected]"," test message " , " test message " , " From: [email protected]"); ?>

Налаштування завершено я сподіваюся у вас вийшло налаштувати Sendmail на Ubuntu

Посібник зі встановлення та налаштування одного з найстаріших MTA (Mail Transfer Agent), програма для відправки електронної пошти - sendmail, який доступний для встановлення на будь-якій операційній системі. У багатьох ОСях sendmail встановлений за умовчанням і змінювати цей стандартний MTA на іншу особливу потребу немає. При цьому той же PHP по дефолту налаштований на роботу саме з цим MTA. Якщо налаштування sendmail затягується – ставте postfix(), не варто втрачати багато часу.

Підготовка

Перевірте, чи встановлено у вас sendmail , а не exim4 або інший MTA:

Ls -la `which sendmail` # lrwxrwxrwx 1 root root 26 2011-01-17 19:58 /usr/sbin/sendmail -> /etc/alternatives/sendmail

Встановлення

sudo apt-get install sendmail sasl2-bin

Налаштування /etc/hosts

127.0.0.1 localhost localhost.localdomain e5530
Примітка

Необхідно вказати ваш основний хост (ім'я комп'ютера, у мене це e5530) і localhost.localdomain інакше ви отримаєте помилку: My unqualified host name (myhostname) unknown; sleeping for retry» та «unable to qualify my own domain name (e5530) – using short name, sendmail довго стартує та повільно відправляє пошту. Можливо хост localhost.localdomain можна пропустити, не певен.

Після цього потрібно вказати імена локальних хостів, від яких sendmailприйматиме запити на відправку email повідомлень, у файлі /etc/mail/local-host-names:

AuthInfo:smtp.gmail.com "U: [email protected]" "I: [email protected]" "P:YourPass" "M:PLAIN" AuthInfo:smtp.gmail.com:465 "U: [email protected]" "I: [email protected]" "P:YourPass" "M:PLAIN"

Примітка

Замість порту 465 можете спробувати стукати на 587 (якщо є проблеми з авторизацією):

AuthInfo:smtp.gmail.com:587 "U: [email protected]" "I: [email protected]" "P:YourPass" "M:PLAIN"

Chmod 600 /etc/mail/auth/*

Конфіг sendmail.mc

Файл конфіга /etc/mail/sendmail.mc . Порівняйте конфіг. Повинен бути якось так. Порядок інструкцій важливий!

Dnl # include(`/etc/mail/m4/dialup.m4")dnl include(`/etc/mail/m4/provider.m4")dnl include(`/etc/mail/tls/starttls.m4")dnl include(`/etc/mail/sasl/sasl.m4")dnl FEATURE(`authinfo",`hash /etc/mail/auth/client-info")dnl define(`SMART_HOST",`smtp.gmail.com" )dnl define(`RELAY_MAILER_ARGS", `TCP $h 587")dnl define(`ESMTP_MAILER_ARGS", `TCP $h 587")dnl dnl # dnl # Default Mailer setup MAILER('lm" )dnl define(`confAUTH_MECHANISMS", `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN")dnl # dnl define(`confDOMAIN_NAME", `e5530")dnl

Застосовуємо конфіг sendmail

cd /etc/mail sudo su # просто sudo не спрацює! m4 sendmail.mc > sendmail.cf makemap -r hash authinfo.db< auth/client-info make /etc/init.d/sendmail restart # Перезагрузка конфига

Проблеми та рішення

Якщо все налаштовано правильно, але повідомлення потрапляють у «відкладену чергу» і не релеяться на інший SMTP:

  1. Перевірте ваш IP-шник у блек-листах. Перевірити бан IP можна тут smart-ip.net, мій IP потрапив у базу spamhaus”а.
  2. Перевірте, чи не блокує провайдер вихідні пакети на 25 порт.
Проблеми з Інтертелекомом!

У мене так і не вдалося налаштувати релей повідомлень на GMail через sendmail на Інтертелекомівському підключенні - sendmail завзято стукав на 25 порт, закритий провайдером. Довелося налаштовувати postfix.

Налаштування PHP (якщо потрібно)

Вкажіть параметри запуску sendmail у конфізі /etc/php5/apache2/php.ini (/etc/php5/cli/php.ini):

## Налаштування sendmail для PHP: sendmail_path = /usr/sbin/sendmail -t; sendmail_path = "/usr/sbin/sendmail -t -f [email protected]-i"

Перевіримо налаштування

echo "Текст повідомлення" | mail -s "Subjet" [email protected] sendmail -t [email protected]-f [email protected]-v -i< ~/mail-body.txt

Для перевірки postfix спробуйте надіслати кілька повідомлень із консолі. Як це робити, я розписав у цій статті: «».

Управління sendmail

Переглянути всю чергу повідомлень:

Sudo mailq

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

Sudo mailq | grep " [email protected]" | wc -l

Очистити всю чергу повідомлень sendmail:

Sudo rm -r /var/spool/mqueue-client/*

Очистити чергу повідомлень sendmail за адресатом:

Cd /var/spool/mqueue ls | xargs -ti sh -c "grep" [email protected]" "()" > /dev/null && rm -f "()""

#sendmail, #LAMP, #MTA

P.S.Якщо ви хочете вивчити консоль Linux на досить хорошому рівні - рекомендую до прочитання свіжу книгу Дениса Колесніченка « Командний рядок Linux та автоматизація рутинних завдань».

Для початку невеликий відступ

SMTP – Simple Mail Transfer Protocol – сервіс у мережах TCP/IP для передачі повідомлень (тобто пошти). Зазвичай для SMTP використовується 25 порт (див. файл /etc/services)

POP – Post Office Protocol – використовується для отримання пошти з сервера. Стандартний порт - 110 (для протоколу POP3)

Зараз я спробую пояснити, як налаштувати невеликий поштовий сервер, який використовує POP3 та SMTP

Для початку встановимо необхідний софт. Нам знадобляться sendmail та imap. Якщо ви використовуєте RH-сумісну версію Linux, вам потрібно встановити відповідні пакети.
Я використовую
sendmail-8.11.0
imap-4.7c2

Перш ніж розпочати налаштування sendmail, вам необхідно правильно налаштувати DNS, інакше ця програма буде працювати некоректно (хоча можна налаштувати sendmail для роботи без використання dns).

Зробимо базове налаштування sendmail. Для цього потрібно запустити утиліту
netconf. Вона працює як з-під Х, і з-під консолі.
Утиліта netconf є в RH, Mandrake – щодо інших версій я точно не знаю. (її немає у KSI Linux). Звичайно, ви повинні бути зареєстровані у системі під root"ом

Виберіть у меню Mail delivery system, потім Basic sendmail configuration
У полі Present your system as просто введіть своє доменне ім'я
Потім позначте прапорець Accept email for ...
Протокол надсилання повідомлень встановіть у smtp ( Mail gateway protocol)

Цієї інформації вже цілком достатньо, щоб ваш sendmail функціонував.
Ви можете встановити додаткові опції програми sendmail за допомогою
netconf. Якщо у вас немає програми sendmail, ви отримаєте незабутнє
задоволення від ручного редагування файлу /etc/sendmail.cf – у ньому
зберігаються налаштування) :)

Тепер зробимо так, щоб sendmail приймав пошту лише з дозволених
адрес. Для цього навіть не потрібно налаштовувати сам sendmail - потрібно лише
підправити файли /etc/hosts.allow та /etc/hosts.deny
У першому з них міститься список хостів, яким дозволено доступ до цієї
машині, а в другому – заборонено. Зверніть увагу: незважаючи на назву
(дозволено|заборонено), обмеження, які встановлюються першим файлом
набагато суворіше.

приклад. Для заборони доступу всім хостам, крім комп'ютерів вашої
мережі у файл /etc/hosts.allow додайте рядок
"192.168.1.
Тут мається на увазі, що мережа має адресу 192.168.1.0 та маску 255.255.255.0
Більш детально про формат файлів hosts.allow та hosts.deny ви можете прочитати,
ввівши команду man /etc/hosts.allow

Для того, щоб приймати пошту тільки зі "своїх" доменів, потрібно додати
mc-файл (зазвичай /etc/mail/sendmail.mc) наступні рядки (використовуйте
табуляцію, а не прогалини)
LOCAL_CONFIG
FR-o /etc/sendmail.cR

LOCAL_RULESETS
Scheck_rcpt
# anything terminating locally is ok
R< $+ @ $=w > [email protected] OK
R< $+ @ $=R > [email protected] OK

# anything originating locally is ok
R$* $: $(dequote "" $&(client_name) $)
R$=w [email protected] OK
R$=R [email protected] OK
[email protected] [email protected] OK

# anything else is bogus
R$* $#error $: "550 Relaying Denied"

Тепер створіть файл /etc/sendmail.cR та введіть у нього імена "своїх" доменів -
по одному в кожному рядку.
Тільки на ці домени поштовик зможе отримувати пошту – всі інші отримають
повідомлення 550 Relaying Denied

Тепер настала черга POP3. Після інсталяції пакету imap у вас практично
все налаштовано, тобто. я хочу сказати, що можна перевіряти конфігурацію.

Для початку перезапустіть демон inetd
Після перезапуску сервіси sendmail і popd будуть активовані (точніше
один sendmail, а popd викликається при необхідності)

Спробуйте зробити таке:
введіть telnet<имя_только_созданного_почтовика> 25
Ви повинні побачити приблизно таке:
Trying 192.168.1.1 ...
Connected to 192.168.1.1
Escape character is "^]"
220 de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 Sun, 17 Jun 2001 10:54:22 +300

Це означає, що sendmail працює, залишилося перевірити наскільки правильно:)

Вводимо
mail from: [email protected]
220 2.1.0 [email protected].... Sender Ok
rcpt to: [email protected]
220 2.1.5 [email protected].... Recipient Ok
Тепер вводимо data, потім текст повідомлення, для закінчення введення ставимо крапку
у порожньому рядку

Sendmail повідомить, що повідомлення надіслано (точніше розміщено в
черга на відправлення)

[email protected]-ім'я користувача, якому я надсилаю пошту.
den.dhsilabs.com - ім'я моєї поштовики
Зверніть увагу, що сайту my.host.com і в природі немає, а Sender Ok.
Саме тому в налаштуваннях sendmail краще включити опцію Wait for DNS

Тепер потрібно запустити якийсь поштовий клієнт, наприклад kmail
та забрати пошту.
Налаштування мережі в kmail
Мережа -> Надсилання пошти встановіть SMTP, 25-ий порт, ім'я сервера -
ім'я вашої поштовики,
у мене – den.dhsilabs.com

Потім додайте акуант для POP3
Логи - den
Пароль - пароль, який використовується для входу в систему
Сервер - den.dhsilabs.com
Порт - 110

Ви повинні отримати повідомлення, яке ввели після data.