Uy Stomatologiya Punctual inurl sendmail php. php yordamida elektron pochta xabarlarini yuborish

Punctual inurl sendmail php. php yordamida elektron pochta xabarlarini yuborish

Ushbu funktsiyalarning ishlashiga php.ini dagi sozlamalar ta'sir qiladi.

Pochta konfiguratsiyasi parametrlari
Ism Standart O'zgaruvchan O'zgarishlar jurnali
mail.add_x_header "0" PHP_INI_PERDIR PHP 5.3.0 dan beri mavjud.
mail.log NULL PHP_INI_PERDIR PHP 5.3.0 dan beri mavjud. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
mail.force_extra_parameters NULL PHP_INI_PERDIR PHP 5.0.0 dan beri mavjud. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
SMTP "localhost" PHP_INI_ALL
smtp_port "25" PHP_INI_ALL
sendmail_from NULL PHP_INI_ALL
sendmail_path "/usr/sbin/sendmail -t -i" PHP_INI_SYSTEM
PHP_INI_* rejimlarining qoʻshimcha maʼlumotlari va taʼriflari uchun qarang.

Bu erda konfiguratsiya ko'rsatmalarining qisqacha izohi.

Qo'shish X-PHP-Originating-Script u skriptning UID va keyin fayl nomini o'z ichiga oladi.

Mail.log ip

Hammasini qayd qiladigan jurnal fayliga yo'l pochta() qo'ng'iroqlar. Jurnal yozuvlari skriptning to'liq yo'lini, qator raqamini, Kimga

manzil va sarlavhalar. ip

Mail.force_extra_parameters Belgilangan parametrlarni qo'shishni sendmail ikkilik fayliga qo'shimcha parametrlar sifatida o'tkazishga majburlang. Bu parametrlar har doim bo'ladi pochta() 5-parametrning qiymatini ga almashtiring

, hatto xavfsiz rejimda ham. ip

SMTP pochta() Faqat Windows ostida foydalaniladi: SMTP serverining xost nomi yoki IP manzili PHP bilan yuborilgan pochta uchun foydalanishi kerak.

funktsiyasi. Smtp_port

int SMTP Faqat Windows tizimida foydalaniladi: serverga ulanish uchun port raqami pochta() bilan xat yuborishda sozlash

; standart 25 ga teng. ip

Sendmail_from Qaysi"Kimdan:" pochta manzili Windows ostida PHP dan yuborilgan pochtada ishlatilishi kerak. Ushbu ko'rsatma ham o'rnatadi

"Qaytish yo'li:" ip

sarlavha. Sendmail_path Qayerda yuborish dasturni topish mumkin, odatda /usr/sbin/sendmail yoki /usr/lib/sendmail . sozlash siz uchun bu joyni topishga halol harakat qiladi

va o'rnating Sendmail_path ushbu ko'rsatmani, agar mavjud bo'lsa, pochta tizimi takliflarini sendmail paketiga/almashtirishga o'rnatishi kerak.

Masalan, »Qmail foydalanuvchilari odatda uni /var/qmail/bin/sendmail yoki /var/qmail/bin/qmail-inject ga o'rnatishlari mumkin. qmail-inject

pochtani to'g'ri qayta ishlash uchun hech qanday variantni talab qilmaydi.

Ushbu direktiv Windows ostida ham ishlaydi. Agar o'rnatilgan bo'lsa, smtp , smtp_port va sendmail_from e'tiborga olinmaydi va belgilangan buyruq bajariladi.

5 yil oldin

Ubuntu 13.04 da, boshqa distroslarga ishonchim komil emas.

Agar siz oddiygina izohni bekor qilsangiz:

sendmail_path = "sendmail -t -i"

Sizning mail() funksiyalaringiz barbod bo'ladi. Buning sababi, siz FULL PATH ni joylashtirishingiz kerak (ya'ni /usr/sbin/sendmail -t -i)

Hujjatlarda aytilishicha, PHP to'g'ri jo'natish yo'lini topishga harakat qiladi, ammo bu men uchun muvaffaqiyatsiz bo'ldi.

Shunday ekan, har doim pochtani yuborish uchun FULLPATH-ga kiring, aks holda siz kutilmagan muvaffaqiyatsiz natijalarga duch kelishingiz mumkin.

Ikkilamchi eslatma sifatida: -f parametrini QO'LLASHNI xohlovchilar buni php.ini-da bajarishingiz mumkin: mail.force_extra_parameters =

[elektron pochta himoyalangan]

Siz sendmail yo'lini sharhlangan holda qoldirishingiz mumkin, u hali ham standart sozlamalardan foydalanadi (UNIX -t -i opsiyalari ostida, agar siz ularni qidirsangiz, o'rnatish juda muhim).

Biroq, endi buni o'zgartirishning hech qanday usuli yo'q, hatto mail() funktsiyasining 5-argumenti bilan ham. -f muhim, chunki agar o'rnatilmagan bo'lsa, PHP skripti qaysi foydalanuvchi tomonidan ishlayotganiga o'rnatiladi va siz buni xohlamasligingiz mumkin. Bundan tashqari, -f Qaytish yo'li: sarlavhasini o'rnatadi, agar xatolar yuzaga kelsa, ularni qayta ishlashingiz uchun Bounce manzili sifatida ishlatiladi. Siz siz

Qaytish yo'lini o'rnatib bo'lmaydi: mail() sarlavhalarida biron sababga ko'ra... avvalroq bo'lishi mumkin edi. Endi siz -f opsiyasidan foydalanishingiz kerak.

2 yil oldin
Agar kimdir PHP xato jurnallarida ushbu sirli xato xabarini olsa:
"sh: -t: buyruq topilmadi"

PHP 5.4 dan yangilaganingizdan so'ng, bu siz uchun yechim bo'lishi mumkin.

Men PHP ni 5.4 dan 5.6 ga yangiladim va bizning barcha mail() funksiyalarimiz to‘satdan ishlamay qoldi, hech qanday foydali xatolik qayd qilinmadi.

ini fayli; Agar siz tezda sendmail ikkilik fayliga yo'lni belgilash uchun ini_set() dan foydalansangiz, endi u e'tiborga olinmaydi.

Buning o'rniga php.ini da "sendmail_path" ni belgilang. Hammasi shu -- biz uchun barcha mail() funksiyalarini tuzatdi.

Umid qilamanki, bu kichik eslatma boshqa birovning vaqtini tejaydi, chunki men muammolarni bartaraf etish va tadqiq qilish uchun sarflaganman. Salom!

3 yil oldin

Qaytish yo'lini sozlash:

Qaytish yo'li sarlavhasi ishlamaydi, chunki u smtp qismi emas.
On * nix -f pochta buyrug'iga o'rnatilishi mumkin
muqobil ravishda
Eslatma: "Kimdan" dan keyin ikki nuqta qo'yilmaydi, sarlavhaning birinchi qatori bo'lishi kerak
yoki qaytish yo'li sarlavhalarini sharhlash uchun MTA ni qayta sozlashingiz mumkin

F - eng ishonchli usul, ammo bu qobiqdan qochish muammolari tufayli boshqa buyruq qatori opsiyasini o'rnata olmasligingizni anglatishi mumkin.

Shuningdek, e-pochtani formatlash talablari Windows va boshqa hamma narsada farq qilishini unutmang. sendmail faqat \n qator oxirlarini kutadi

Men yaqinda uy serverini o'rnatdim va u erda xat yuborishni sinab ko'rishim kerak edi. Ammo bu erda muammo: pochta jo'natadigan sahifani so'rashda 500 xatolik paydo bo'ldi.

Muammo

Men nima bo'layotganini ko'ra boshladim. Php-fpm jurnallarida hech qanday qiziq narsa yo'q, nginx jurnallarida php-fpm yuqori oqim vaqti tugashi sababli ishlamay qolganini ko'rishingiz mumkin.

2013/04/18 15:28:01 6928#0: *1409 yuqori oqim vaqti tugadi (110: Yuqori oqimdan javob sarlavhasini o‘qish paytida ulanish vaqti tugadi), mijoz: xx.xx.xx.xx, server: , so‘rov: "POST /page.php HTTP/1.1", yuqori oqim: "fastcgi://127.0.0.1:9010", xost: "site.ru", havola qiluvchi: "http://site.ru"

Va keyin xayolimga syslogni ko'rib chiqish g'oyasi keldi. U erda men qiziqarli satrlarni ko'rdim:

9-sentabr 18:53:20 mega sm-msp-navbat: Mening malakasiz xost nomi (mega) noma'lum; Qayta urinish uchun uxlab 9-sentabr 18:54:20 mega sm-msp-navbat: o'z domen nomimni (mega) belgilay olmayapman -- qisqa nomdan foydalanish

Ha, men sendmail yo'nalishida gunoh qila boshladim. Men uni buyruq bilan qayta ishga tushirishga harakat qilaman:

Sudo xizmati sendmail qayta ishga tushirildi

va men taxminimning tasdiqlanishini ko'raman.

Andrey@mega:/home/andrey# sudoservice sendmail restart sudo: host xyz.xyz-ni hal qilib bo'lmadi * Mail Transport Agent (MTA) qayta ishga tushirilmoqda sendmail andrey@mega:/home/andrey#

Yechim

Muammo server nomida bo'lib chiqdi. Men server nomini shunday (nuqta bilan) o'rnatganimdan so'ng, hamma narsa kerakli tarzda ishladi.

127.0.0.1 localhost localhost.localdomain mega mega.foobar

Rahmat!

Agar maqola sizga yordam bergan bo'lsa yoki mening tadqiqotim va blogimni qo'llab-quvvatlamoqchi bo'lsangiz - bu erda eng yaxshi yo'l buni bajaring:

Har safar mahalliy veb-serverni o'rnatganimda, men Sendmail uchun stub haqida savolga duch kelaman.

Windows uchun ajoyib yechim bor: Windows uchun soxta sendmail(sendmail.exe) http://glob.com.au/sendmail/
Habré-da ushbu yechim haqida maqola bor: Windows uchun PHP pochta http://habrahabr.ru/post/26518/
Windows uchun yana bir yechim: Pochta serverini sinab ko'rish vositasi http://www.toolheap.com/test-mail-server-tool/
Linux foydalanuvchilari uchun maqola ham mavjud: Linux uchun Sendmail stub http://habrahabr.ru/post/49665/

Shaxsan menga sof PHP-dagi yechim ko'proq yoqdi, bu haqda keyinroq muhokama qilinadi.

Ushbu yechimning o'ziga xosligi shundaki, uning konfiguratsiyasi minimaldir, agar siz xabarning mazmunini bilishingiz shart bo'lmasa, siz hatto faylning o'zisiz ham qilishingiz mumkin; Menimcha, agar boshqa PHP ishlab chiquvchilari bu haqda bilishsa, bu usul bunga arziydi.

Savol shundaki, ishlab chiquvchi sifatida sizning ustuvorliklaringiz, stubdagi ehtiyojlaringiz va bilim va mahorat darajangiz.

Taroziga soling:

  • Uchinchi tomon xizmatlari yo'q
  • PHP o'rnatilgan OT uchun o'zaro platforma yechimi
  • Minimal stub fayl hajmi
  • Minimal sozlash
  • PHP da barcha stub mantiqlarini tahrirlash mumkin
  • Xabarni faylga saqlash

Minuslardan:

  • Haqiqiy pochta qutisiga yo'naltirish yo'q
  • Yuborilgan xabarlarga qulay kirishning yo'qligi

Noto'g'ri argumentlar va imkoniyatlar ro'yxati:

  • --dir<Путь к папке> - Fayl papkasi
  • --fayl<имя файла> - Har bir xabarni umumiy faylda saqlang
  • --oldingi- Umumiy fayl boshiga yangi xabar qo'shing
  • --ochiq- Xabar faylini bloknotda avtomatik ravishda ochish

PHP.INI fayli parametrlari:

;SMTP = localhost ;smtp_port = 25 ;sendmail_from = mail.force_extra_parameters = sendmail_path = "php.exe C:\sendmail.php --dir C:\mail --open"

Agar php.exe yo'li PATH da ko'rsatilgan bo'lsa, uni PHP.INI da ko'rsatish shart emas, aks holda php.exe ni o'zgartirish tavsiya etiladi.<Путь к папке с PHP>\php.exe

Sendmail_path = "C:\server\bin\php\php.exe C:\sendmail.php --dir C:\mail --open"

Linuxda siz darhol faylga yo'lni belgilashingiz mumkin, avval uni ishga tushirishni unutmang: chmod 755 sendmail.php
sendmail_path = "/home/someuser/sendmail.php --dir /tmp/mail"

sendmail.php skriptining o'zi:

#!/usr/bin/env php

Va'da qilganimdek, umuman faylsiz qilish imkoniyati ham mavjud.

Sendmail_path = "C:\server\bin\php\php.exe -r "echo 1;""

Yoki soddalashtirilgan yechimdan foydalaning

Sendmail_path = "C:\server\bin\php\php.exe C:\sendmail.php"

sendmail.php:

#!/usr/bin/env php

Agar bu siz uchun foydali bo'lsa, xursand bo'laman.

Har safar mahalliy veb-serverni o'rnatganimda, men Sendmail uchun stub haqida savolga duch kelaman.

Windows uchun ajoyib yechim bor: Windows uchun soxta sendmail(sendmail.exe) http://glob.com.au/sendmail/
Habré-da ushbu yechim haqida maqola bor: Windows uchun PHP pochta
Windows uchun yana bir yechim: Pochta serverini sinab ko'rish vositasi http://www.toolheap.com/test-mail-server-tool/
Linux foydalanuvchilari uchun maqola ham mavjud: Linux uchun Sendmail stub

Shaxsan menga sof PHP-dagi yechim ko'proq yoqdi, bu haqda keyinroq muhokama qilinadi.

Ushbu yechimning o'ziga xosligi shundaki, uning konfiguratsiyasi minimaldir, agar siz xabarning mazmunini bilishingiz shart bo'lmasa, siz hatto faylning o'zisiz ham qilishingiz mumkin; Menimcha, agar boshqa PHP ishlab chiquvchilari bu haqda bilishsa, bu usul bunga arziydi.

Savol shundaki, ishlab chiquvchi sifatida sizning ustuvorliklaringiz, stubdagi ehtiyojlaringiz va bilim va mahorat darajangiz.

Taroziga soling:

  • Uchinchi tomon xizmatlari yo'q
  • PHP o'rnatilgan OT uchun o'zaro platforma yechimi
  • Minimal stub fayl hajmi
  • Minimal sozlash
  • PHP da barcha stub mantiqlarini tahrirlash mumkin
  • Xabarni faylga saqlash

Minuslardan:

  • Haqiqiy pochta qutisiga yo'naltirish yo'q
  • Yuborilgan xabarlarga qulay kirishning yo'qligi

Noto'g'ri argumentlar va imkoniyatlar ro'yxati:

  • --dir<Путь к папке> - Fayl papkasi
  • --fayl<имя файла> - Har bir xabarni umumiy faylda saqlang
  • --oldingi- Umumiy fayl boshiga yangi xabar qo'shing
  • --ochiq- Xabar faylini bloknotda avtomatik ravishda ochish

PHP.INI fayli parametrlari:

;SMTP = localhost ;smtp_port = 25 ;sendmail_from = mail.force_extra_parameters = sendmail_path = "php.exe C:\sendmail.php --dir C:\mail --open"

Agar php.exe yo'li PATH da ko'rsatilgan bo'lsa, uni PHP.INI da ko'rsatish shart emas, aks holda php.exe ni o'zgartirish tavsiya etiladi.<Путь к папке с PHP>\php.exe

Sendmail_path = "C:\server\bin\php\php.exe C:\sendmail.php --dir C:\mail --open"

Linuxda siz darhol faylga yo'lni belgilashingiz mumkin, avval uni ishga tushirishni unutmang: chmod 755 sendmail.php
sendmail_path = "/home/someuser/sendmail.php --dir /tmp/mail"

sendmail.php skriptining o'zi:

#!/usr/bin/env php

Va'da qilganimdek, umuman faylsiz qilish imkoniyati ham mavjud.

Sendmail_path = "C:\server\bin\php\php.exe -r "echo 1;""

Yoki soddalashtirilgan yechimdan foydalaning

Sendmail_path = "C:\server\bin\php\php.exe C:\sendmail.php"

sendmail.php:

#!/usr/bin/env php

Agar bu siz uchun foydali bo'lsa, xursand bo'laman.

Sergey Suprunov

Sendmail qanday ishlaydi? Foydali tafsilotlar

4-qism: Uchinchi tomon dasturlari bilan o'zaro aloqa

Qo‘y va ota sizga mehribon.

Qardosh xalqning donoligi

Sendmail qanchalik moslashuvchan va funktsional bo'lmasin, uning imkoniyatlari har doim ham turli xil muammolarni hal qilish uchun etarli emas. Ammo dasturiy ta'minotning ochiqligining yaxshi tomoni shundaki, u deyarli hech qanday cheklovlarsiz quvvatni oshirish imkonini beradi.

Ortiqcha himoya degan narsa yo'q

Sendmail, maqolaning oldingi qismlarida ko'rsatilganidek (2006 yil uchun № 5, 6, 7 - ; http ://www. samag. ru/ cgi-bin/ go. pl? q= maqolalar; n=06.2006; a=02; ), taxalluslar fayli yoki maxsus .forward fayllardan foydalanib, kiruvchi xabarlarni uchinchi tomon dasturlari tomonidan qayta ishlash uchun qayta yo'naltirish imkonini beradi. Mexanizmning o'zi juda oddiy: asl formatdagi xat belgilangan dastur yoki skriptning standart kirishiga (stdin) yuboriladi, keyin uni qayta ishlaydi. Python-da bunday stsenariyni amalga oshirishning oddiy misolini "Python Workshop: Kiruvchi elektron pochtani qayta ishlash" maqolasida topish mumkin (№ 2, 2006 - http ://www. samag. ru/ cgi-bin/ go. pl? q= maqolalar; n=02.2006; a=01).

Biroq, bu erda potentsial xavfsizlik muammosi mavjud - agar foydalanuvchi har qanday dasturni pochta ishlovchilari sifatida mustaqil ravishda belgilash imkoniyatiga ega bo'lsa, u odatda ruxsatsiz dasturga qo'ng'iroq qilish uchun undan foydalanishi mumkin ( masalan, buyruqlar qobig'iga kirish ruxsat etilmaydi, lekin veb-interfeys orqali .forward fayliga o'zgartirishlar kiritish mumkin). Albatta, Sendmail .forward fayliga egalik qiluvchi foydalanuvchi nomidan ushbu ishlovni amalga oshiradigan jarayonni ishga tushirish orqali ushbu xususiyatning salbiy ta'sirini kamaytiradi. Ammo shuni unutmasligimiz kerakki, tizimda suid bit o'rnatilgan bajariladigan fayllar bo'lishi mumkin, bu ba'zi hollarda dahshatli oqibatlarga olib kelishi mumkin ...

Ushbu muammoni hal qilish uchun Sendmail-ni "sendmail uchun cheklangan qobiq" - smrsh bilan ishlashga sozlash mumkin. Ushbu qobiqning o'ziga xosligi shundaki, u FreeBSD tizimlarida faqat o'z katalogidan dasturlarni ishga tushirishga imkon beradi, sukut bo'yicha bu /usr/libexec/sm.bin (uni -DSMRSH_CMDDIR bayrog'i bilan yordamchi dasturni qayta kompilyatsiya qilish orqali o'zgartirishingiz mumkin); .

Buning qanday ishlashini misol bilan ko'rish yaxshidir (-c tugmachasidan keyin bajarilayotgan dasturning nomi ko'rsatiladi):

#pwd

/usr/libexec/sm.bin

# ls –l

jami 0

# /usr/libexec/smrsh -c w

10:01 dan 20 kungacha, 21:44, 1 foydalanuvchi, o'rtacha yuklanish: 0,00, 0,02, 0,00

FOYDALANUVCHI TTY LOGIN@ BOShQA NIMA

serg p0 curs3.myserver. 8:48 - /usr/libexec/sm.bin/w

# /usr/libexec/smrsh -c kim

/usr/libexec/smrsh: "kim" sendmail dasturlari uchun mavjud emas (statistik muvaffaqiyatsiz)

# /usr/libexec/smrsh -c testi

SMRSH testi

Ko'rib turganingizdek, smrsh faqat havolalari (yoki ikkilik fayllari) /usr/libexec/sm.bin da joylashgan dasturlarni bajarishga imkon beradi. Xuddi shu narsa skriptlarga ham tegishli - skriptga havolani taqdim etish kifoya, tarjimonga havola qilish kerak emas; Agar xohlasangiz, har qanday dastur nomidan foydalanishingiz mumkin - asl "ikkilik" nomi emas, balki havola nomi ishlatiladi.

Qayta yo'naltirishlarni boshqarish uchun Sendmail standart sh shell o'rniga ushbu qobiqdan foydalanishi uchun mc fayliga quyidagi qatorni qo'shing:

XUSUSIYAT(smrsh)

cf faylini tahrir qilishni yoqtiradiganlar Mprog qatoridagi dastur nomini almashtirishi mumkin, ya'ni. o‘rniga “Mprog, P=/bin/sh . . . "foydalanish" Mprog, P=/usr/libexec/smrsh . . . "

Kirish faqat chipta orqali

Agar barcha foydalanuvchilaringiz faqat sizning pastki tarmoqingizdan ishlashi kutilsa (yoki o'ta og'ir holatlarda pochtaga kirish uchun tashqi tarmoqlarning cheklangan va barqaror ro'yxati mavjud bo'lsa), u holda sizning MTA-ga aylanmasligi uchun pochta uzatish rejimini cheklash vazifasi. "Ochiq o'rni" kirishni ishlatish bilan juda oson hal qilinadi.

Ammo dunyoning istalgan nuqtasidan o'z elektron pochtalariga kirish imkoniyatiga ega bo'lgan foydalanuvchilarga ega bo'lishingiz bilanoq, ma'lum bir muammo paydo bo'ladi. Va eng maqbul yechim autentifikatsiyadan foydalanish bo'ladi.

Ehtimol, Sendmail uchun eng qulay usul SASL-Auth paketi yordamida SASL autentifikatsiyasidan foydalanishdir. Odatiy bo'lib, FreeBSD-dagi Sendmail SASL-ni qo'llab-quvvatlamasdan qurilgan, chunki siz quyidagi buyruqni berish orqali tasdiqlashingiz mumkin:

$ sendmail -d0.1 -bv

va SASL haqida har qanday eslatma uchun "Tuzilgan" qatorlarini diqqat bilan o'rganing.

SASL yordami Sendmail-da paydo bo'lishi uchun uni qayta tiklashingiz kerak. Buning uchun siz tizimning manba kodlariga ega bo'lishingiz kerak. Harakatlar ketma-ketligi quyidagicha:

  1. Xavfsizlik/cyrus-sasl2-saslauthd portlaridan o'rnating. Konfiguratsiya sukut bo'yicha qoldirilishi mumkin.
  2. /usr/local/lib/sasl2/Sendmail.conf faylida pwcheck_method o'zgaruvchisining qiymatini tekshiramiz. Odatiy bo'lib, u saslauthd sifatida belgilanadi, ya'ni u umumiy demondan foydalanadi va ko'p hollarda yaxshi yechim bo'ladi.
  3. Biz /etc/make.conf ni tahrirlaymiz, u erda tizim dasturlarini yaratishda foydalaniladigan bir nechta qatorlarni qo'shamiz:
  4. Sendmail uchun # SASL bayroqlari

    SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2

    SENDMAIL_LDFLAGS=-L/usr/local/lib

    SENDMAIL_LDADD=-lsasl2

    # Sendmail uchun smtps portini qo'llab-quvvatlash (agar rejalashtirilgan bo'lsa)

    SENDMAIL_CFLAGS+= -D_FER_SMTP_SSL

    Bu erda biz Sendmail kompilyatsiya qilishda ushbu bayroqlarni qo'shishni belgilaymiz, shuningdek make dasturiga kerakli kutubxonalarga yo'llarni aytamiz.

  5. Endi Sendmail-ni qayta quramiz:

# cd /usr/src/lib/libsmutil/

# cd ../libsm

# make clean && make depend && make

# cd /usr/src/usr.sbin/sendmail

# make clean && make depend && make && make install

Cyrus-sasl paketini ilgari o'rnatganingizga ishonch hosil qiling (1-bandga qarang), aks holda siz kerakli kutubxonalar yo'qligi haqida xato olasiz. Aytgancha, ushbu kutubxonalarni butun disk bo'ylab qidirish shart emas, shuning uchun hamma narsani faqat portlar tizimidan o'rnatish tavsiya etiladi.

Chiqish endi SASLv2 ni eslatishi kerak:

$ sendmail -d0.1 –bv

8.13.6 versiyasi

Bilan tuzilgan: . . .SASLv2. . .

Bu shuni anglatadiki, agar kerak bo'lsa, Sendmail konfiguratsiyasini sozlash qoladi va siz tizimning ishlashini tekshirishingiz mumkin. Konfiguratsiyani talab qilishi mumkin bo'lgan birinchi narsa - ruxsat etilgan autentifikatsiya usullari ro'yxati. Telnet orqali 25-portga ulanish va EHLO buyrug'ini kiritish orqali qayta kompilyatsiya qilingandan so'ng darhol nimani olganingizni bilib olishingiz mumkin:

$telnet localhost 25

127.0.0.1 urinilmoqda...

Lokal xostga ulangan.

Escape belgisi "^]".

220 server.ru ESMTP Sendmail 8.13.6/8.13.6;

EHLO menga

250-server.ru Salom localhost, tanishganimdan xursandman

250-KUSHATLAYTILGAN STATUSKODLAR

250-QUVUR TURISH

250-8BITMIME

250-RAZMASI 12500000

250-DSN

250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5

250- Yetkazib berish

250 YORDAM

Oxiridan uchinchi qator qo'llab-quvvatlanadigan autentifikatsiya mexanizmlarini ko'rsatadi. Siz ularning ro'yxatini quyidagi ko'rsatmalar yordamida o'zgartirishingiz mumkin:

TRUST_AUTH_MECH(`DIGEST-MD5 LOGIN PLAIN")dnl

define(`confAUTH_MECHANISMS", `DIGEST-MD5 LOGIN PLAIN")dnl

Ikkinchi qatorda umuman qo'llab-quvvatlanadigan mexanizmlar ro'yxati keltirilgan, birinchi direktivada esa "ishonchli" mexanizmlar ro'yxati, ya'ni. foydalanilganda, mijozning manzili kirish ma'lumotlar bazasida RELAY yoki OK sifatida belgilanmagan bo'lsa ham, pochta jo'natmalariga ruxsat beriladi.

Bolalar! Ha, men menikiman!

Ba'zida sizning serveringiz biror joyga xabar yuborish uchun autentifikatsiyadan o'tishi kerak bo'lgan vaziyat yuzaga kelishi mumkin. Misol uchun, agar sizning MTA provayderingiz faqat provayder serveri orqali ishlayotgan bo'lsa va provayder barcha mijozlar autentifikatsiya protsedurasidan o'tishini talab qilib, hostingizni ishonchlilar ro'yxatiga qo'shish uchun kuch sarflashni istamasa, bu juda keng tarqalgan holat.

Buning uchun quyidagi tarzda ulangan authinfo fayli mavjud:

XUSUSIYAT(`authinfo", `xesh -o /etc/mail/authinfo")

Belgilangan faylda biz kerakli serverlar uchun autentifikatsiya parametrlarini quyidagi formatda yozamiz:

AuthInfo:servak.de "U:" "Men:" "P:" "M:LOGIN PLAIN"

Bu yerda servak.de - autentifikatsiya ma'lumotlarini taqdim etishingiz kerak bo'lgan masofaviy server nomi. M tugmasi ishlatilishi kerak bo'lgan usullarni belgilaydi. Ushbu faylning xeshini yaratishni unutmang.

LDAP - birlikka yo'l

Yirik korporativ tarmoqlar ko'pincha ushbu tarmoqlar foydalanuvchilari haqidagi ma'lumotlarni saqlash uchun LDAP ma'lumotlar bazalaridan foydalanadilar. Pochta serveringiz uchun ba'zi konfiguratsiya ma'lumotlarini saqlash uchun ushbu mexanizmdan foydalanish juda oqilona bo'lar edi.

Sendmail LDAP ma'lumotlar bazasi bilan ishlash qobiliyatini qo'llab-quvvatlaydi, bu sizga kirish fayllari, taxalluslar va boshqalar o'rniga katalog xizmatidan foydalanish imkonini beradi. Biroq, xuddi SASL misolida bo'lgani kabi, FreeBSD'da u LDAP qo'llab-quvvatlanmasdan kompilyatsiya qilinadi. Ushbu qo'llab-quvvatlash xuddi shu tarzda yoqiladi:

  1. Biz openldap-client yoki openldap-server portlaridan o'rnatamiz (agar bizda hali LDAP serveri bo'lmasa va biz uni xuddi shu mashinada ishga tushirmoqchi bo'lsak).
  2. Biz /etc/make.conf ga o'zgartirish kiritamiz:
  3. Sendmail uchun # LDAP bayroqlari

    SENDMAIL_CFLAGS+= -I/usr/local/include -DLDAPMAP

    SENDMAIL_LDFLAGS+= -L/usr/local/lib

    SENDMAIL_LDADD+= -lldap -llber

  4. Biz Sendmail-ni SASL uchun tavsiflanganidek qayta quramiz (4-bandga qarang).

Endi biz allaqachon tanish bo'lgan buyruq LDAP haqida eslatmani ko'rsatishi kerak:

# sendmail -d0.1 -bv root | grep LDAP

Sendmail-ni qayta kompilyatsiya qilgandan (yoki o'rnatgandan) so'ng, sendmail.schema sxemasi yoqilganligini bilish uchun /usr/local/etc/openldap/slapd.conf ni tekshiring.

Agar yo'q bo'lsa, qatorni qo'shing:

/usr/share/sendmail/cf/sendmail.schema-ni o'z ichiga oladi

Bu buyruq kerakli maydonlarni to'g'ri to'ldirish uchun zarur bo'lgan Sendmail (yaroqli post atributlari belgilangan) sxemasini bog'laydi.

Endi faqat LDAP katalogiga kerakli yozuvlarni qo'shish (LDAP hujjatlarida buni qanday qilishni ko'ring; maqola oxirida bir nechta foydali havolalar berilgan) va mc fayliga LDAP dan foydalanish kerakligini ko'rsatadigan ko'rsatmalar qo'shish qoladi. :

aniqlash(`confLDAP_DEFAULT_SPEC", `-h ldap.your.domain.ru -b dc=your,dc=domain,dc=ru")

XUSUSIYAT(`access_db", `LDAP")

aniqlash(`ALIAS_FILE", `ldap:")

Birinchi satr LDAP server parametrlarini belgilaydi, ikkinchisida biz /etc/mail/access o'rniga katalog xizmatidan foydalanish kerakligini ko'rsatamiz va uchinchi qator xuddi shunday taxalluslarni aniqlash uchun LDAP dan foydalanish kerakligini bildiradi.

Muqobil LDA

Sendmail sizga deyarli har qanday dasturni mahalliy etkazib berish agenti sifatida ulash imkonini beradi, albatta, agar ushbu dastur "LDA kabi harakat qilsa" (esingizdami? - "agar u o'rdakga o'xshasa, o'rdakdek qichqirsa va o'rdak kabi yursa, unda bu o'rdak "). Buning yordamida biz pochta qanday saqlanishiga juda ko'p ta'sir qilish imkoniyatiga egamiz. Shu sababli, standart FreeBSD mail.local bilan bir qatorda juda ko'p "muqobil" etkazib berish agentlari ishlab chiqilganligi ajablanarli emas.

Avvalo, men juda kuchli procmail dasturini eslayman, u foydalanuvchining pochta qutisiga etib borgunga qadar pochtani qayta ishlash uchun keng imkoniyatlarni beradi. Ba'zan spam bilan kurashish uchun shu qadar faol foydalaniladiki, xat, qoida tariqasida, foydalanuvchiga umuman etib bormasligi mumkin. Ko'pgina Linux distributivlarida sukut bo'yicha Sendmail bilan tandemda ishlashi bejiz emas. Uning afzalliklaridan foydalanish uchun ushbu LDA ni ulang (MAILER(procmail) direktivasidan foydalanib, mos keladigan m4 fayli standart Sendmail tarqatilishiga kiritilgan) va kerakli domenlar uchun ushbu LDA dan foydalanishni pochta xabarnomasida belgilang:

your.domain procmail

Ikkinchi variant - mc faylga FEATURE(`local_procmail') direktivasini kiritish, bu esa procmail-dan standart LDA (mahalliy deb e'lon qilingan) sifatida foydalanishga ko'rsatma beradi.

XUSUSIYAT(`local_procmail", `/usr/local/bin/maildrop", `maildrop -d $u")

Bu erda biz xuddi shu direktivadan foydalandik, faqat procmail yo'li o'rniga biz keraklisini ko'rsatdik. Aytgancha, agar sizda procmail nostandart tarzda o'rnatilgan bo'lsa (ya'ni /usr/local/bin ichida bo'lmasa), uni ulash uchun to'liq yo'lni ko'rsatishingiz kerak bo'ladi. Tabiiyki, Maildir bilan to'liq ishlash uchun sizning POP3/IMAP serveringiz ham ushbu format bilan ishlay olishi kerak, ammo bu butunlay boshqacha hikoya...

Mukammallikka keyingi qadam - DBMail

To'liq baxt uchun foydalanuvchi pochta qutilariga moslashuvchanlikni qo'shish yaxshi bo'lar edi. Yechimlardan biri ularni saqlash uchun DBMail loyihasi tomonidan amalga oshiriladigan relyatsion DBMSdan foydalanishdir.

Biz bu erda DBMail haqida batafsil gapirmaymiz (bu paket nafaqat Sendmail, balki boshqa mashhur MTAlar bilan ham muvaffaqiyatli ishlatilishi mumkin). Ba'zi umumiy ma'lumotlar DBMail yon panelida keltirilgan. Shuningdek, Evgeniy Prokopyevning "Relational DBMS asoslangan pochta serveri" (№ 1, 2006) maqolasiga qarang, bu erda DBMail ishi batafsil yoritilgan.

Kiruvchi yozishmalarni foydalanuvchining pochta qutilariga joylashtirish MTA funktsiyasi emasligi sababli (maqolaning birinchi qismida eslaganingizdek, bu mahalliy yetkazib berish agenti (LDA) tomonidan amalga oshiriladi), keyin Sendmail nuqtai nazaridan uning xabarlarni qayta ishlash mantig'i ishlaydi. umuman o'zgarmaydi. DBMail-ni LDA sifatida ro'yxatdan o'tkazish va Sendmail-ga, xuddi biz procmail uchun qilganimiz kabi, kiruvchi yozishmalarni yetkazib berish uchun foydalanishga ko'rsatma berish kifoya. Birinchi vazifa mc faylidagi quyidagi direktivalardan biri bilan hal qilinadi:

MAYLER(dbmail)

MAILER(dbmail-lmtp)

Ikkinchi vazifa (Sendmail ma'lum bir LDA uchun qaysi pochtadan foydalanishni bilishi uchun) bu LDA dan foydalanish uchun pochta jadvalini sozlash:

your.domain dbmail

other.domain dbmail-lmpt:

Tabiiyki, siz faqat kerakli domenlar uchun dbmail-dan foydalanishni belgilashingiz mumkin. O'zgarishlar kuchga kirishi uchun hamma narsani qayta tiklashni va sendmail jarayonini qayta ishga tushirishni unutmang.

O'ylaymanki, biz maildrop-ni ulashda qo'llagan texnikamizdan og'riqsiz foydalanishimiz mumkin (ya'ni, bizning dbmail-imiz procmail ko'rinishini yaratish va ushbu LDA uchun tayyor shablonlardan foydalanish). To'g'ri, men buni amalda boshdan kechirmaganman.

Kengaytirilgan filtrlash imkoniyatlari

Xabarlarni qayta ishlash uchun juda keng imkoniyatlar pochta filtrlari yoki 8.11.6 versiyasida (norasmiy ravishda - 8.10 dan) paydo bo'lgan "milters" (milter, Mail FILTER qisqartmasi) tomonidan taqdim etiladi.

Pochta filtrlari antiviruslar, spam-filtrlar va boshqalar kabi dasturlar bilan o'zaro aloqada bo'lish uchun keng qo'llaniladi. Ya'ni, ular mohiyatan, tarmoq yoki UNIX rozetkasi orqali qayta ishlangan xabarni uchinchi tomon dasturiga "o'rash" imkoniyatini beradi. Aytgancha, o'zaro ta'sir qilish uchun rozetkalardan foydalanish filtr dasturini tarmoqdagi boshqa mashinaga joylashtirish imkonini beradi, bu ba'zi hollarda ishlov berishni markazlashtirish yoki asosiy serverdagi yukni kamaytirish uchun foydali bo'lishi mumkin, agar filtrlash muhim hisoblash resurslarini talab qilsa yoki disk quyi tizimiga katta yuk. Ammo bu holatda qo'shimcha kechikishlar, shuningdek, rozetka orqali uzatiladigan ma'lumotlarning xavfsizligi haqida unutmasligimiz kerak.

Filtr uzoq server bilan ulanish o'rnatilgan paytdan to to'liq qabul qilinmaguncha xatning qayta ishlanishini nazorat qilish imkonini beradi. Qayta ishlashni istalgan vaqtda qaytarish bayroqlaridan biri yordamida to‘xtatish mumkin: ACCEPT (xabarni qabul qilish), REJECT (jo‘natuvchiga bildirishnoma bilan rad etish) yoki DISCARD (hech qanday bildirishnomasiz o‘chirish). Ya'ni, agar xabarni rad etish zarurati sessiyaning boshida aniqlansa, masalan, sarlavhada joylashtirilgan ma'lumotlarga asoslanib, bu xat to'liq qabul qilinishidan oldin amalga oshirilishi mumkin. Ushbu xususiyatdan foydalanishning yana bir misoli, agar sarlavhada bunday skanerlash jo'natuvchining serveri tomonidan allaqachon amalga oshirilganligi haqida xabar topilgan bo'lsa, barcha qo'shimchalarni viruslar uchun skanerdan o'tkazmasdan ACCEPT xabarini olishdir (garchi bunday sarlavhalar, albatta, bo'lmasligi kerak). to'liq ishonchli).

Milter xabarni qabul qilish yoki rad etish to'g'risida qaror qabul qilishdan tashqari, xabarning mavzusi yoki tanasiga o'zgartirishlar kiritish, sarlavhaga qatorlar qo'shish va hokazolarni amalga oshirishga imkon beradi. Buning yordamida siz, masalan, anti-ma'lumotni qo'yishingiz mumkin. -sarlavhada virusni skanerlash amalga oshirildi yoki xabar spam bo'lishi mumkinligi haqida eslatma qoldiring. Ko'pgina antivirus va antispam paketlari aynan shunday qiladi.

An'anaviy ravishda, ulangan filtrlar orqali xatning oqim diagrammasi shaklda ko'rsatilgan. 1. Filtrlar xohlagancha ko'p bo'lishi mumkin (haqiqiy cheklov faqat tizimdagi yuk va xabarlarni qayta ishlashda ruxsat etilgan kechikish talablari bilan belgilanadi). Filtrlarni qo'llash tartibi ularning konfiguratsiya faylida ulanish tartibi bilan belgilanadi.

Aytgancha, konfiguratsiya haqida ... Milter quyidagi direktiva bilan bog'liq:

INPUT_MAIL_FILTER(`clmilter", `S=local:/var/run/clamav/clmilter.sock,F=, T=S:4m;R:4m")

Birinchi argument - filtr nomi, ikkinchisi - parametrlar qatori. Uchta parametr bo'lishi mumkin:

  • S, foydalanish uchun rozetkani belgilaydi (mahalliy yoki inet bo'lishi mumkin);
  • Milter bilan bog'liq muammolar yuzaga kelganda xat bilan qanday munosabatda bo'lishni aniqlaydigan F (F=T jo'natuvchiga vaqtinchalik xatoni qaytarishni anglatadi (vaqtinchalik muvaffaqiyatsizlik), F=R - ulanishni rad etadi, F= ning bo'sh qiymatini beradi. milter bilan bog'liq muammolarni e'tiborsiz qoldirish va ulanishni filtrlashsiz qayta ishlash bo'yicha ko'rsatmalar);
  • T bir nechta kutish vaqtini o'rnatadi (jadvalga qarang), shundan so'ng filtr "javob bermayapti" deb hisoblanadi.

Vaqt tugashi belgilari

Bizning misolimizda, agar clamav-milter to'rt daqiqa ichida Sendmail'dan xabarni qabul qilishni boshlamasa yoki bir vaqtning o'zida javob bermasa, xabar filtrlashsiz keyingi ishlov berish uchun uzatiladi.

Yuqoridagi direktiv o'rniga siz filtrlarni shu tarzda ulashingiz mumkin:

MAIL_FILTER(`miltergreylist", `S=local:/var/milter-greylist/milter-greylist.sock,F=, T=S:4m;R:4m")dnl

aniqlash(`confINPUT_MAIL_FILTERS", `miltergreylist")

Bu erda filtrni ulash tartibi ikki bosqichga bo'linadi - birinchi direktiva bilan biz belgilangan parametrlarga ega milterni e'lon qilamiz, ikkinchisi - biz ko'rsatilgan milterni xabarlarni qayta ishlash uchun filtr sifatida ro'yxatdan o'tkazamiz. Agar siz ushbu sxema yordamida bir nechta pochta filtrlarini ulashingiz kerak bo'lsa, unda faqat bitta aniqlovchi direktivasi kerak bo'ladi, unda barcha ro'yxatdan o'tgan filtrlar kerakli tartibda vergul bilan ajratilgan.

Aytish kerakki, milterni ishlab chiqish uchun sizga Sendmail-ning ona C tilida filtrlarni tezda yaratishga imkon beruvchi ajoyib API mavjud (qo'shimcha adabiyotlar ro'yxatida siz chiquvchi xatlarni ma'lum bir manzilga ko'paytirish uchun milterni ishlab chiqish misoliga havolani topasiz. manzil). Ushbu API uchun boshqa dasturlash tillari uchun "bog'lash" mavjud, masalan, Perl (Sendmail::Milter moduli, portlar to'plamida - mail/p5-Sendmail-Milter) va Python (Python Milter interfeysi, Portlarda - mail/ py-milter). Python-da filtrni ishlab chiqishning ajoyib namunasi Roman Susining "Pochta filtri yoki Milter = Pochta + Filtr" maqolasida muhokama qilingan (2003 yil № 2, maqolani jurnal veb-saytidagi "Maqolalar" bo'limida topishingiz mumkin).

Elektron pochta turli shakllarda keng qo'llaniladi. Albatta, agar guruh muhokamalarini o'tkazish haqida gapiradigan bo'lsak, qulayroq vositalar mavjud: ARM, yangiliklar xizmatlari (NNTP), veb-forumlar va nihoyat. Shunga qaramay, elektron pochta ro'yxatlari ba'zi muammolarni muhokama qilishning juda mashhur usulidir. Ko'pgina ochiq kodli loyihalar (masalan, FreeBSD.org, ALT Linux) o'z foydalanuvchilariga texnik yordam ko'rsatish, sinov versiyalarining yangi xususiyatlarini muhokama qilish, aniqlangan xavfsizlik muammolari haqida xabar berish uchun pochta ro'yxatlaridan foydalanadi...

Eng mashhur pochta ro'yxatini boshqarish tizimlaridan biri bu Majordomo. U Sendmail serverlari bilan juda yaxshi integratsiyalashgan va pochta ro'yxatlari bilan ishlash uchun etarli funktsiyalar to'plamiga ega.

Portlar to'plamidan o'rnatish hech qanday qiyinchilik tug'dirmaydi, bitta kichik nuancedan tashqari: FreeBSD 5.x dan boshlab, Perl tizimning bir qismi emas va portlardan o'rnatilishi kerak, ya'ni. /usr/local/bin da joylashgan. Biroq, Majordomo porti /usr/bin/perl ni eski uslubda ko'rishni xohladi. Men havola qo'yishim kerak edi (garchi siz, albatta, Makefile faylini to'g'rilashingiz mumkin):

# ln /usr/local/bin/perl /usr/bin/perl

Shundan so'ng siz qaysi MTA qo'llanilishini belgilashingiz kerak bo'ladi (2-rasmga qarang; bizning tanlovimiz aniq, menimcha). Qisqa kompilyatsiyadan so'ng biz FreeBSD uchun biroz nostandart fayllarni joylashtirish sxemasini olamiz: "ikkilik" va konfiguratsiya fayllari /usr/local/majordomo-da joylashgan bo'ladi. Bu erda ikkita eng muhim konfiguratsiya fayli - majordomo.cf, bu yerda siz asosiy sozlamalarni o'zgartirishingiz mumkin va aliases.majordomo, unda Majordomo ishlashi uchun sozlangan taxalluslar to'plami mavjud.

Ushbu paketning Sendmail bilan o'zaro ta'siri printsipi juda oddiy va taxalluslarga asoslangan. Masalan, kelgan xabar mail.force_extra_parameters =/usr/local/majordomo/wrapper-ga yo'naltiriladi va ro'yxat sozlamalariga muvofiq qayta ishlanadi.

Majordomo ishlay boshlashi uchun siz uning taxallus faylini Sendmail-ga ulashingiz kerak (garchi siz shunchaki kerakli satrlarni /etc/mail/aliases-ga nusxalashingiz mumkin):

aniqlash(`ALIAS_FILE", `/etc/mail/aliases, /usr/local/majordomo/aliases.majordomo")

Hammasi - Mayordomo ketishga tayyor. Majordomo domeningizga tanadagi "lists" buyrug'i bilan elektron pochta xabarini yuborish orqali siz mavjud pochta ro'yxatlari haqida ma'lumot olasiz (odatda test-l va test-l-digest bo'ladi). Xuddi shu tarzda, siz o'zingizning ro'yxatlaringizni yaratishingiz mumkin, ular uchun /usr/local/majordomo/lists-da pochta ro'yxati nomiga mos keladigan bo'sh fayl yaratishingiz kerak, shuningdek aliases.majordomo-da pochta jo'natmalari uchun taxalluslarni kiriting. ro'yxatning o'zi, jamoalar, egalarining manzillari va boshqalar. – xuddi shu demo ro‘yxati uchun misolni ko‘rishingiz mumkin, test-l.

Qo'shimcha boshqaruv elektron pochta orqali amalga oshirilishi mumkin. Misol uchun, test-l ro'yxati bilan tajriba o'tkazish uchun birinchi qadam test-l-request-ga "passwd test-l test mynewpas" iborasi bilan xat yuborish orqali administrator parolini o'zgartirish, bu erda test-l - bu nom. parol o'zgartirilayotgan ro'yxat, test - eski parol (sukut bo'yicha ishlatiladi), mynewpas - yangi parol. Muvaffaqiyatli bo'lsangiz, sizga "Parol o'zgartirildi" xabari bilan elektron pochta xabari keladi.

Biroq, pochta ro'yxatlari bilan ishlash boshqa mavzu va biz bu erda tafsilotlarga kirmaymiz. Bundan tashqari, sizning xizmatingizda ajoyib yordam sahifasi mavjud, man majordomo.

Aysbergning suv osti qismi

Sendmail bilan tanishuvimizni shu yerda tugatamiz. Tabiiyki, hatto bunday hajmli tsiklda ham ushbu kuchli paketning ishlashining barcha jihatlarini qamrab olish mumkin emas. Shuning uchun, xulosa qilib, men qo'shimcha ma'lumot olishingiz mumkin bo'lgan havolalar ro'yxatini (shuningdek, to'liq emas) taqdim etishga qaror qildim.

Ana xolos! Omad tilaymiz!

Ilova

Cyrus SASL

SASL (Simple Authentication and Security Layer) autentifikatsiya mexanizmi boshqa Internet protokollari bilan birgalikda xavfsiz autentifikatsiyani amalga oshirish uchun ishlatiladi. Autentifikatsiyadan tashqari, SASL ma'lumotlar yaxlitligini tekshirish mexanizmlarini taqdim etadi.

Eng mashhur SASL ilovalaridan biri Cyrus SASL kutubxonasidir. Cyrus IMAP Server ehtiyojlari uchun ishlab chiqilgan bo'lsa-da, u boshqa vazifalar, jumladan SMTP autentifikatsiyasi uchun keng qo'llaniladi.

Cyrus SASL autentifikatsiya mexanizmlarining keng doirasini qo'llab-quvvatlaydi - CRAM-MD5, DIGEST-MD5, Kerberos, GSSAPI (Kerberos 5 spetsifikatsiyasi). Agar kerak bo'lsa, LOGIN va PLAIN kabi "tekis" autentifikatsiya mexanizmlarini qo'llab-quvvatlashni yoqish mumkin, ammo ulardan faqat xavfsiz ulanish orqali ishlashda foydalanish tavsiya etiladi.

Autentifikatsiyani amalga oshirish uchun Cyrus SASL tarkibiga kiritilgan saslauthd demonidan foydalaniladi. U o'zining ma'lumotlar bazasidan foydalangan holda va PAM, LDAP mexanizmlari, tizim parol fayli /etc/passwd va boshqalar yordamida parollarni tekshirishi mumkin.

LDAP

Yengil vaznli katalogga kirish protokoli - bu katalog xizmati deb ataladigan xizmatning ishlashini ta'minlash uchun mo'ljallangan protokol. Katalog xizmatlari turli xil ma'lumotlarni, masalan, foydalanuvchi hisoblari, manzillar kitoblari va turli xil sozlamalarni markaziy saqlash uchun ishlatiladi.

Katalog xizmati (X.500 protokolida belgilangan) dastlab OSI tomonidan ishlab chiqilgan X.400 pochta tarmoqlariga xizmat ko'rsatish uchun mo'ljallangan. Ushbu xizmatga kirish uchun oddiyroq va qulayroq LDAPni ishlab chiqish uchun asos bo'lgan DAP protokoli ishlatilgan.

LDAP kataloglarida saqlangan yozuvlar noyob nom (ajraladigan nom) va sxemalar deb ataladigan bir qator atributlar bilan ifodalanadi. Yozuv tuzilmasi sizning yozuvlaringizni daraxt ko'rinishida osongina tartibga solish imkonini beradi.

LDAP ning tekis fayllar yoki relyatsion ma'lumotlar bazalariga nisbatan asosiy afzalligi uning yuqori o'qish tezligiga qaratilganligidir. Juda samarali keshlashni hisobga olgan holda, LDAP-dan foydalanish axborotni markazlashtirishdan tashqari, unga texnik xizmat ko'rsatishni soddalashtiradi (shu jumladan zaxira), agar ma'lumotlar hajmi sezilarli miqdorga yetsa, ma'lumot olishdagi kechikishlarni kamaytiradi.

UNIX/Linux oilasi tizimlarida keng qo'llaniladigan ma'lumotnoma xizmati - OpenLDAP-ni bepul amalga oshirishdan tashqari, bir qator boshqa xizmatlar mavjud (masalan, Windows tarmoqlarini boshqarish uchun mo'ljallangan Active Directory).

LDAP protokolining o'zi RFC 1777, RFC 2251 (3-versiya) da belgilangan. Bundan tashqari, ko'plab kengaytiruvchi va qo'shimcha hujjatlar mavjud.

DBMail

Ikki Daniya kompaniyasi - IC&S va NFG tomonidan ishlab chiqilgan DBMail dasturi umumiy maqsadli ma'lumotlar bazasida foydalanuvchi pochta qutilarini saqlashni tashkil qilish imkonini beradi. MySQL va PostgreSQL qo'llab-quvvatlanadi (2.2 versiyasi ushbu ro'yxatga SQLite qo'shishi kutilmoqda). Korxonangizning mahalliy tarmog'iga xizmat ko'rsatadigan kichik pochta serverlari uchun foydalanuvchilar uchun "pochta xizmatlari" zanjiridagi qo'shimcha havola faqat ishonchlilikni pasaytiradi va tizimga texnik xizmat ko'rsatishni murakkablashtiradi, buning evaziga deyarli hech narsa bermaydi.

Biroq, foydalanuvchilari ko'p bo'lgan tizimlarda yoki pochta tizimi maksimal moslashuvchanlikni va turli xil xizmatlarni (masalan, veb-interfeys yordamida butun pochta qutisini to'liq matnli qidirish) amalga oshirish qobiliyatini talab qiladigan tizimlarda barcha xabarlarni saqlash. ma'lumotlar bazasi deyarli cheksiz imkoniyatlarni taqdim etadi. Masalan, DBMail sizga pochta qutisining maksimal hajmini osongina o'rnatishga imkon beradi (an'anaviy xotiradan foydalanilganda, fayl tizimida kvotalar o'rnatish uchun tizim mexanizmiga murojaat qilishingiz kerak): siz uni faqat buyruqda ko'rsatishingiz kerak. yangi foydalanuvchi yarating yoki uning hisob parametrlarini o'zgartiring:

# dbmail-users -c vasya -m 100M

Har qanday statistik ma'lumotlarni to'g'ridan-to'g'ri ma'lumotlar bazasidan oddiy SQL so'rovi yordamida olish mumkin. Bundan tashqari, siz relyatsion ma'lumotlar bazalarining barcha afzalliklaridan foydalanishingiz mumkin, masalan, ortiqcha, alohida serverda xosting, klasterlash (hozirda qo'llab-quvvatlanadigan DBMSlarga nisbatan, uni amalga oshirish biroz qo'shimcha kuch talab qiladi; masalan, Andrey Treninning maqolasiga qarang. "PostgreSQL uchun klaster yaratish" (№ 1 http://reki.ru/sendmail_setup.html http://unix1.jinr.ru/~lavr/sendmail+sasl2 http://www.milter.org.

  • Roman Susi, Pochta filtri yoki Milter = Pochta + Filtr - .
  • Chiquvchi xatlarni ko'paytirish uchun C tilidagi milter misoli - http://www.opennet.ru/base/met/mail_copy_milter.txt.html.
  • Boshqalar

    1. DBMail loyihasining asosiy veb-sayti http://www.dbmail.org hisoblanadi.
    2. DBMail hujjatlari - http://www.helgrim.com/dbmaildocs/installation.html.
    3. sendmail/Secure Switch-da SMTP STARTTLS – http://linuxnews.ru/docs/new/starttls.html.
    4. Majordomo va MajorCool QANDAY -



    Saytda yangi

    >

    Eng mashhur