Бүлэг 29. Цахим Шуудан | FreeBSD Documentation Portal

# Бүлэг 29. Цахим Шуудан

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

## 29.1. Ерөнхий Агуулга

"Цахим Захидал" буюу имэйл гэж нийтэд илүүтэй танигдсан энэ зүйл нь өнөө үед хамгийн өргөн хэрэглэгдэх болсон харилцааны хэлбэр юм. Энэ бүлэгт FreeBSD дээр захидлын серверийг зохион байгуулах анхан шатны танилцуулга болон FreeBSD ашиглан цахим захидал илгээх болон хүлээн авах талаар үзэх болно; гэвч, энэ нь бүрэн хэмжээний танилцуулга болж чадахгүй бөгөөд олон чухал зүйлсийг оруулаагүй болно. Энэ сэдвээр бүрэн дүүрэн мэдээлэл авахыг хүсвэл, Ном зүй хэсэгт байгаа номнуудын жагсаалтыг үзнэ үү.

Энэ бүлгийг уншсаны дараа та дараах зүйлсийг мэдэж авах болно:

- Цахим захидал хүлээн авах болон илгээхэд ямар програмууд оролцдог талаар

- sendmail-н үндсэн тохиргооны файлууд FreeBSD дээр хаана байрладаг талаар

- Алсын болон дотоодын захидлын хайрцгуудын ялгаа

- Спам тараагчдыг өөрийн серверийг хууль бусаар дамжуулагч (relay) болгон ашиглахаас хэрхэн сэргийлэх талаар

- sendmail-н оронд өөр Захидал Дамжуулах Агентийг хэрхэн суулгаж тохируулах талаар

- Захидлын сервертэй холбоотой түгээмэл тохиолддог асуудлуудыг хэрхэн шийдвэрлэх талаар

- SMTP-г UUCP-тэй хэрхэн ашиглах

- Системийг хэрхэн зөвхөн захидал илгээдэг болгож тохируулах талаар

- Утасны үзүүр ашигласан холболтоор захидлыг хэрхэн хэрэглэх талаар

- Аюулгүй байдлыг нэмэгдүүлэхийн тулд SMTP Магадлалтыг хэрхэн нэмэх талаар

- mutt гэх мэт Хэрэглэгчийн Захидлын Агентийг хэрхэн суулгаж тохируулах талаар

- Өөрт ирсэн захидлыг алсын POP эсвэл IMAP серверээс хэрхэн татаж авах талаар

- Гаднаас ирэх захидлыг хэрхэн автоматаар шүүлтүүр болон дүрмүүдээр шалгах талаар

Энэ бүлгийг уншихын өмнө та дараах шаардлагыг хангасан байх ёстой:

- Сүлжээний холболтоо зөв гүйцэтгэсэн байх (Сүлжээний нэмэлт ойлголтууд).

- Захидлын хост дээрээ DNS мэдээллийг зөв оруулж өгсөн байх (Сүлжээний орчны Серверүүд).

- Гуравдагч этгээдийн програмыг хэрхэн суулгах талаар мэдлэгтэй байх (Програм суулгах. Багцууд болон портууд).

## 29.2. Цахим Захидлыг Хэрэглэх нь

Цахим захидал солилцоход дараах үндсэн таван бүрэлдэхүүн оролцоно. Үүнд: хэрэглэгчийн програм, сервер дэмон, DNS, алсын эсвэл дотоод захидлын хайрцаг ба мэдээж захидлын хост өөрөө юм.

### 29.2.1. Хэрэглэгчийн Програм

Захаас нь эхлээд дурдвал эдгээрт mutt, alpine, elm, `mail` зэрэг тушаалын мөрний програмууд, мөн balsa, xfmail зэрэг GUI програмууд, дээр нь WWW хөтөч зэрэг илүү "нарийн төвөгтэй" програмууд ч орно. Дээрх програмууд нь цахим захидлын гүйлгээг дотоод "захидлын хост"-од сервер демонуудын аль нэгийг дуудан шилжүүлэн өгөх, эсвэл TCP-р дамжуулан очих газар нь хүргэх ажлыг гүйцэтгэдэг.

### 29.2.2. Захидлын Хостын Сервер Демон

FreeBSD нь анхдагч байдлаар sendmail-г агуулсан байдаг, гэхдээ бусад олон захидлын серверийн дэмонг дэмждэг. Үүнээс заримыг дурдвал:

- exim;

- postfix;

- qmail.

Сервер дэмон ихэвчлэн хоёр үүрэг гүйцэтгэнэ-гаднаас ирж байгаа захидлыг хүлээн авах болон гадагшаа явж байгаа захидлыг очих газар нь хүргэх үүрэгтэй. Сервер дэмон нь захидлаа уншихын тулд POP эсвэл IMAP зэрэг протоколыг ашиглан захидлыг цуглуулж авах, эсвэл дотоод mbox эсвэл Maildir захидлын хайрцгууд руу холбогдох зэргийн аль алиных нь үүргийг хүлээдэггүй. Үүний тулд нэмэлт дэмон шаардлагатай.

| sendmail-н хуучин хувилбаруудад халдагч таны машины дотоод болон алсын хандалтыг гартаа оруулж болох аюулгүй байдлын хувьд хүндхэн асуудлууд гарч байсан. Иймэрхүү асуудал гарахаас сэргийлж хамгийн сүүлийн хувилбарыг ашиглаж байгаа эсэхээ нягтлах шаардлагатай. Нэмэлт сонголт байдлаар, өөр MTA-г FreeBSD Портуудын Цуглуулгаас суулгаарай.

### 29.2.3. Цахим Захидал ба DNS

Домэйн Нэрийн Систем (DNS) ба түүний дэмон `named` нь цахим захидлыг хүргэх ажилд чухал үүрэг гүйцэтгэдэг. Танай байгаа газраас өөр тийш захидал хүргэхийн тулд, сервер дэмон очих газрын хаягийг өөрөөр хэлбэл захидал хүлээж авах хостыг DNS-с асууна. Энэ үйл явц нөгөө талаас танд захидал явуулахад мөн давтагдана.

DNS нь хост нэрийг IP хаягт буулгах үүрэгтэйгээс гадна, MX бичлэгүүд гэгддэг захидал хүргэхтэй холбоотой тусгай мэдээллийг агуулж байдаг. MX (Mail eXchanger буюу Захидал Солилцогч) бичлэг нь ямар хост, эсвэл хостууд, тухайн домэйны хаяглагдсан захидлыг хүлээж авах ёстойг заана. Хэрэв тухайн домэйны хувьд MX бичлэг байхгүй бол, захидлуудыг тухайн домэйноор нэрлэгдсэн хостын A бичлэгт харгалзах хост руу шууд дамжуулна.

Ямар ч домэйны хувьд MX бичлэгүүдийг host(1) тушаалыг ашиглан үзэж болно. Жишээг дор үзүүлэв:

    % host -t mx FreeBSD.org
    FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org

### 29.2.4. Захидал хүлээн авах нь

Захидал хүлээж авах ажлыг захидлын хост гүйцэтгэнэ. Энэ хост таны домэйнд хаяглагдсан бүх захидлыг хүлээж авах ба түүнийг таны тохиргооноос хамаарч эсвэл mbox (захидал хадгалах анхдагч арга зам) эсвэл Maildir хэлбэрээр хадгална. Захидлыг хадгалсан л бол, түүнийг дотоодоос mail(1) эсвэл mutt зэрэг програмыг ашиглан уншиж болно. Эсвэл алсаас хандан, POP эсвэл IMAP зэрэг протоколыг ашиглан цуглуулж авсны дараа уншиж болно. Энэ нь хэрэв та захидлаа зөвхөн дотоодоос шалгах хүсэлтэй байгаа бол, POP эсвэл IMAP сервер суулгах шаардлагагүй гэсэн үг юм.

#### 29.2.4.1. POP ба IMAP ашиглан алсын захидлын хайрцагт хандах нь

Захидлын хайрцагт алсаас хандахын тулд, та POP эсвэл IMAP сервер руу хандах хэрэгтэй болно. Эдгээр протоколууд нь хэрэглэгчдэд өөрсдийн захидлын хайрцагт алсаас төвөггүйгээр хандах боломжийг олгодог. Хэдийгээр POP ба IMAP хоёул хэрэглэгчдэд захидлын хайрцагтаа алсаас хандах боломжийг олгодог боловч, IMAP нь илүү давуу талтай, дурдвал:

- IMAP нь алсын серверээс захидлыг зөөж авчрахаас гадна мөн хадгалж чадна.

- IMAP нь зэрэг хийх өөрчлөлтийг дэмждэг.

- IMAP нь захидлыг бүтнээр нь биш, зөвхөн түүний төрхийг нь татаж авах боломжийг хэрэглэгчдэд олгодог тул, хурд удаантай холболттой үед үнэхээр хэрэгтэй байж чаддаг. Мөн сервер болон харилцагчийн хооронд дамжих өгөгдлийг хамгийн бага байлгахын тулд, сервер дээр хайлт явуулах зэрэг үйлдлийг хийж чаддаг.

POP эсвэл IMAP сервер суулгахын тулд, дараах алхмуудыг хийх хэрэгтэй:

1. Өөрийнхөө хэрэгцээ, шаардлагад тохирсон IMAP эсвэл POP серверийг сонгож авах. Өргөн хэрэглэгддэг зарим POP ба IMAP серверүүдийг жишээ болгон дурдвал:

   - qpopper;

   - teapop;

   - imap-uw;

   - courier-imap;

   - dovecot;

2. Өөрийн сонгосон POP эсвэл IMAP дэмонг портуудын цуглуулгаас суулгах.

3. Шаардлагатай бол, POP эсвэл IMAP серверийг ачаалахын тулд /etc/inetd.conf файлыг засварлах.

| POP ба IMAP хоёул хэрэглэгчийн нэр, нэвтрэх үг зэрэг чухал мэдээллийг цэвэр текст чигээр нь дамжуулдаг болохыг энд тэмдэглэх хэрэгтэй болов уу. Энэ нь эдгээр протоколоор мэдээлэл дамжуулалтыг аюулгүй болгоё гэвэл сессүүдээ ssh(1) хонгилоор эсвэл SSL ашиглан дамжуулах хэрэгтэй гэсэн үг юм. Сессүүдийг хонгилоор дамжуулах талаар SSH туннель хийх хэсэгт болон SSL-ийн талаар OpenSSL хэсэгт тайлбарласан байгаа.

#### 29.2.4.2. Дотоод захидлын хайрцгуудад хандах нь

Захидлын хайрцаг байрлаж байгаа сервер дээрх MUA-уудын тусламжтай захидлын хайрцгуудад дотоодоос нь шууд хандаж болно. Үүний тулд mutt эсвэл mail(1) зэрэг програмуудыг ашиглана.

### 29.2.5. Захидлын хост

Захидлын хост гэж таны хост, магадгүй таны сүлжээнд хаяглагдсан захидлыг хүлээн авах, илгээх үүргийг гүйцэтгэж байгаа серверийг нэрлэнэ.

## 29.3. sendmail-г Тохируулах нь

FreeBSD-н хувьд sendmail(8) бол анхдагч Mail Transfer Agent буюу Захидал Дамжуулах Агент(MTA) юм. sendmail-н үүрэг бол Mail User Agent буюу Хэрэглэгчийн Захидлын Агент(MUA)-с захидал хүлээн авч, тохиргооны файлд хэрхэн зааж өгснөөс хамааран зохих захидал түгээгчид дамжуулна. sendmail нь мөн сүлжээний холболтуудыг хүлээн авч, захидлыг дотоод захидлын хайрцагт эсвэл өөр програмд дамжуулах чадвартай.

sendmail дараах тохиргооны файлуудыг ашигладаг:

Файлын Нэр | Үүрэг
--- | ---
/etc/mail/access | sendmail-н хандалтын өгөгдлийн сангийн файл
/etc/mail/aliases | Захидлын хайрцагны хуурамч дүрүүд
/etc/mail/local-host-names | sendmail эдгээр хостуудаас захидал хүлээж авна.
/etc/mail/mailer.conf | Захидал түгээгч програмын тохиргоо
/etc/mail/mailertable | Захидал түгээгчийн түгээлтийн хүснэгт
/etc/mail/sendmail.cf | sendmail-н гол тохиргооны файл
/etc/mail/virtusertable | Хийсвэр хэрэглэгчид болон домэйн хүснэгтүүд

### 29.3.1. /etc/mail/access

Хандалтын өгөгдлийн санд ямар хостууд болон IP хаягуудаас дотоод захидлын серверт хандах, ямар төрлийн хандалт хийхийг зааж өгсөн байна. Хостуудыг `OK`, `REJECT`, `RELAY` гэж тэмдэглэж болно эсвэл sendmail-н алдаа зохицуулах дэгд тодорхой алдааг зааж өгөн дамжуулж болно. `OK` гэсэн анхдагч утгаар тэмдэглэгдсэн хостууд энэ хостод хаяглагдсан захидлыг дамжуулах эрхтэй. `REJECT` гэж тэмдэглэгдсэн хостуудаас үүсэх холболтыг хүлээж авахгүй. `RELAY` гэж тэмдэглэгдсэн хостуудын хувьд энэ захидлын серверээр дамжуулан хааш нь ч хамаагүй захидал илгээж болно.

Жишээ 1. sendmail Хандалтын Өгөгдлийн санг Тохируулах нь

    cyberspammer.com                550 We do not accept mail from spammers
    FREE.STEALTH.MAILER@            550 We do not accept mail from spammers
    another.source.of.spam          REJECT
    okay.cyberspammer.com           OK
    128.32                          RELAY

Энэ жишээн дээр бид таван бүртгэл харж байна. Захидал илгээгчийн хувьд хүснэгтийн зүүн баганад байгаа утгатай дүйвэл баруун баганад байгаа үйлдлийг гүйцэтгэнэ. Эхний хоёр жишээний хувьд sendmail-н алдаа зохицуулах дэгд алдааны мэдээллийг өгөх болно. Хүснэгтийн зүүн баганад байгаа утгатай захидал дүйсэн тохиолдолд алсын хостод энэ мэдээллийг өгөх болно. Дараагийн жишээн дээр, `another.source.of.spam` гэсэн тодорхой хостоос ирэх захидлыг бүгдийг буцаах болно. Түүний дараагийн жишээн дээр, `okay.cyberspammer.com` гэсэн хостоос ирэх холболтуудыг хүлээж авах болно. Энд хостын нэр өмнөх мөрний `cyberspammer.com`-г бодвол илүү тодорхой байна. Илүү тодорхой заалт нь ерөнхий заалтыг дарж хүчингүй болгоно. Хамгийн сүүлийн жишээн дээр, `128.32`-р эхэлсэн IP хаягтай хостуудаас ирэх захидлыг өртөөлөн дамжуулахыг зааж байна. Эдгээр хостууд бусад серверт хаягласан захидлыг энэ захидлын серверээр дамжуулах боломжтой гэсэн үг юм.

Энэ файлд өөрчлөлт оруулсны дараа, /etc/mail/ дотор `make` тушаалыг өгөн өгөгдлийн санг шинэчлэх хэрэгтэй.

### 29.3.2. /etc/mail/aliases

Хуурамч дүрүүдийн өгөгдлийн санд хэрэглэгчид, файлууд, програмууд эсвэл бусад хуурамч дүрүүд рүү задардаг хийсвэр захидлын хайрцгуудын жагсаалтыг хадгалж байдаг. /etc/mail/aliases дотор хэрэглэж болох хэдэн жишээг дор үзүүлэв:

Жишээ 2. Захидлын Хуурамч дүрүүд

    root: localuser
    ftp-bugs: joe,eric,paul
    bit.bucket:  /dev/null
    procmail: "|/usr/local/bin/procmail"

Бичих хэлбэр нь амархан; тодорхойлох хоёр цэгний зүүн талд байгаа захидлын хайрцагны нэр нь баруун талд байгаа зүйл болон задарна. Эхний жишээн дээр `root` захидлын хайрцгийг `localuser` захидлын хайрцаг болгон задалж байна. Энэ нэрийг цааш дахин хуурамч дүрийн өгөгдлийн сангаас хайх болно. Хэрэв энэ нэр олдохгүй бол, захидлыг `localuser` нэртэй дотоод хэрэглэгчид хүргэх болно. Дараагийн жишээн дээр захидлын жагсаалтыг үзүүлсэн байна. `ftp-bugs` захидлын хайрцагт ирэх захидлыг `joe`, `eric`, ба `paul` гэсэн гурван дотоод хэрэглэгчдэд задлах болно. Алсын захидлын хайрцгийг user@example.com хэлбэрээр оруулж болохыг энд тэмдэглэх хэрэгтэй. Дараагийн жишээн дээр захидлыг файлд, энэ жишээн дээр /dev/null-д бичихийг зааж байна. Хамгийн сүүлийн жишээн дээр, захидлын програмд илгээхийг, энэ тохиолдолд захидлыг UNIX® хоолойгоор дамжуулан /usr/local/bin/procmail-н стандарт оролтод өгч байна.

Энэ файлд өөрчлөлт оруулсны дараа, /etc/mail/ дотор `make` тушаалыг өгөн өгөгдлийн санг шинэчлэх хэрэгтэй.

### 29.3.3. /etc/mail/local-host-names

Энэ бол sendmail(8) дотоод хостууд байдлаар хүлээн авах хостуудын нэрийн жагсаалт юм. sendmail захидлыг нь хүлээж авах домэйн болон хостын нэрийг энэ файлд бичих хэрэгтэй. Жишээлбэл, хэрэв энэ захидлын сервер `example.com` домэйн болон `mail.example.com` хостын захидлыг хүлээж авах ёстой бол, local-host-names файл дараах байдалтай байна:

    example.com
    mail.example.com

Энэ файлд өөрчлөлт ороход, өөрчлөлтүүдийг хүчинтэй болгохын тулд sendmail(8)-г дахин эхлүүлэх шаардлагатай.

### 29.3.4. /etc/mail/sendmail.cf

sendmail-н гол тохиргооны файл болох sendmail.cf нь захидлын хаягийг дахин бичихээс эхлүүлээд алсын захидлын серверт татгалзсан зурвас илгээх хүртэл бүх зүйлийг оруулаад sendmail-н ерөнхий үйл ажиллагааг хянана. Мэдээжийн хэрэг, ийм олон талын үүрэгтэй энэ тохиргооны файл нилээд ойлгомжгүй байх ба нарийвчлан авч үзэх нь энэ бүлгийн мэдлээс хальсан асуудал болно. Нэг баярлууштай нь, стандарт захидлын сервер байдлаар ашиглахад энэ файлд өөрчлөлт оруулах бараг шаардлагагүй байдаг.

sendmail-н гол тохиргооны файлыг sendmail-н шинж чанар, төлвийг илэрхийлсэн m4(1) макронуудаас үүсгэж болно. Дэлгэрэнгүйг /usr/src/contrib/sendmail/cf/README файлаас үзэж болно.

Энэ файлд өөрчлөлт ороход, өөрчлөлтүүдийг хүчинтэй болгохын тулд sendmail-г дахин эхлүүлэх шаардлагатай.

### 29.3.5. /etc/mail/virtusertable

virtusertable нь хийсвэр домэйнууд ба захидлын хайрцгийн хаягуудыг жинхэнэ захидлын хайрцгуудад буулгана. Эдгээр захидлын хайрцгууд нь дотоод, алсын, /etc/mail/aliases дотор тодорхойлогдсон хуурамч дүр эсвэл файл байж болно.

Жишээ 3. Хийсвэр Домэйны Захидлын Буулгалтын Жишээ

    root@example.com                root
    postmaster@example.com          postmaster@noc.example.net
    @example.com                    joe

Дээрх жишээн дээр, `example.com` домэйны хувь дахь буулгалтыг үзүүлсэн байна. Энэ файлыг дээрээс нь доош нь, эхний таарсныг авах байдлаар боловсруулна. Эхний мөрөнд root@example.com-г `root` гэсэн дотоод захидлын хайрцагт буулгаж байна. Дараагийн мөрөнд postmaster@example.com-г `noc.example.net` хост дээр байгаа `postmaster` захидлын хайрцагт буулгаж байна. Эцэст нь, хэрэв `example.com`-той хаяг дээр дурдсаны алинд ч тохироогүй бол, хамгийн сүүлийн мөрөнд тохирох болно. Энэ мөрөнд `example.com` домэйнтой бүх захидлын хаяг тохирох бөгөөд бүгд `joe` гэсэн дотоод захидлын хайрцагт буулгагдах болно.

## 29.4. Өөрийн Захидал Дамжуулах Агентийг Солих нь

Урьд нь дурдсан шиг, FreeBSD дотор sendmail нь MTA (Mail Transfer Agent буюу Захидал Дамжуулах Агент) байдлаар аль хэдийн суучихсан ирдэг. Тиймээс анхдагч байдлаар, таны явуулж байгаа болон ирж байгаа захидлыг хариуцан ажиллаж байгаа.

Гэвч янз бүрийн шалтгаанаар зарим системийн администраторууд системийнхээ MTA-г солих хүсэлтэй байдаг. Шалтгаан нь өөр MTA-г хэрэглэж үзэх хүсэлдээ хөтлөгдсөнөөс, эсвэл бусад захидал дамжуулагчдаас улбаалсан тусгай чадвар эсвэл багц шаардлагатай болох зэрэг янз бүр байдаг. Баярлууштай нь, ямар ч шалтгаантай байсан гэсэн FreeBSD нь өөрчлөлт хийхэд амархан байх боломжийг олгодог.

### 29.4.1. Шинэ MTA суулгах нь

Танд олон төрлийн MTA-н сонголт байна. Өргөн сонголттой FreeBSD Портуудын Цуглуулгаас эхлэх нь хамгийн зөв эхлэл болно. Мэдээж FreeBSD дээр ажиллуулж чадаж л байвал, та хүссэн газраасаа хүссэн MTA-аа суулгах эрхтэй.

Эхлээд шинэ MTA-аа суулгаж эхлэх хэрэгтэй. Нэгэнт суулгасны дараа, шинэ програм таны хэрэгцээг үнэхээр хангаж чадаж байна уу гэдгийг шалгах, sendmail-г бүрэн солихоос өмнө шинэ програмын тохиргоог хийх боломжтой. Ингэх явцад таны суулгаж байгаа шинэ програм /usr/bin/sendmail зэрэг системийн хоёртын файлуудыг дарж бичихгүй байхыг анхаарч байх хэрэгтэй. Үгүй бол, таныг тохиргоо хийхээс чинь өмнө захидлын шинэ програм чинь ажиллаж эхлэх болно.

Сонгож авсан MTA програмынхаа тохиргоог хийхдээ тухайн програмын өөрийн холбогдох баримт бичгүүдийг үзнэ үү.

### 29.4.2. sendmail-г идэвхгүй болгох нь

| Хэрэв та sendmail-н гадагш захидал илгээх үйлчилгээг идэвхгүй болгосон бол, өөр захидал түгээх системээр түүнийг орлуулах нь чухал юм. Хэрэв тэгэхгүй бол periodic(8) гэх мэт системийн функцууд өөрсдийн үр дүнгээ цахим захидлаар илгээх боломжгүй болж, хэвийн үйл ажиллагаа нь доголдох болно. Системийн нилээд хэсэгт sendmail ашигладаг байхаар бодолцсон байгаа. Хэрэв sendmail-г идэвхгүй болгосны дараа програмууд sendmail-н хоёртын файлыг ашиглан захидлыг үргэлжлүүлэн илгээсээр байвал, тэдгээр захидлууд sendmail-н идэвхгүй дараалалд орж, хэзээ ч хүрэх газраа очиж чадахгүй болно.

sendmail-г бүхэлд нь идэвхгүй болгохын тулд, гадагш захидал илгээх үйлчилгээг оруулаад, дараах мөрүүдийг:

    sendmail_enable="NO"
    sendmail_submit_enable="NO"
    sendmail_outbound_enable="NO"
    sendmail_msp_queue_enable="NO"

/etc/rc.conf файлд оруулж өгөх шаардлагатай.

Хэрэв та sendmail-н зөвхөн захидал хүлээн авах үйлчилгээг идэвхгүй болгох хүсэлтэй бол, дараах мөрийг:

    sendmail_enable="NO"

/etc/rc.conf файлд оруулж өгөх шаардлагатай. sendmail-н эхлэл тохируулгуудын талаар дэлгэрэнгүй мэдээллийг rc.sendmail(8) заавар хуудаснаас үзнэ үү.

### 29.4.3. Өөрийн шинэ MTA-г систем ачаалах үед ажиллуулах нь

postfix-д зориулсан дараах жишээн дээрх шиг тохиргооны мөрийг /etc/rc.conf файлд нэмэн шинэ MTA-г ачаалах үед эхлүүлж болно.

    # echo 'postfix_enable=«YES»' >> /etc/rc.conf

MTA нь одоо автоматаар ачаалах үед эхлэх болно.

### 29.4.4. sendmail-г Системийн Анхдагч Захидал Түгээгч болгох нь

sendmail нь UNIX® системүүдийн стандарт програм байхаар хаа сайгүй хэрэглэгддэг болохоор, зарим програм түүнийг системд аль хэдийн суучихсан, ажиллаж байгаа гэж тооцсон байдаг. Тиймээс, бусад олон MTA-ууд sendmail-н тушаалын мөрний интерфэйстэй нийцтэй шийдлүүдийг гаргадаг бөгөөд энэ нь sendmail-н оронд тэдгээр MTA-уудыг ашиглах боломжтой болгодог.

Тиймээс, хэрэв өөр захидал түгээгч хэрэглэж байгаа бол, програмууд sendmail-н /usr/bin/sendmail гэх зэрэг хоёртын файлын оронд таны сонгосон захидал түгээгчийг хэрэглэж байгаа эсэхийг нягтлаарай. Аз болоход, FreeBSD танд энэ ажлыг хийж өгөх mailwrapper(8) гэсэн системийг агуулж байдаг.

sendmail нь анх суусан байдлаараа ажиллаж байх үед, /etc/mail/mailer.conf файл дотор дараах мөрүүдийг харах болно:

    sendmail	 /usr/libexec/sendmail/sendmail
    send-mail	/usr/libexec/sendmail/sendmail
    mailq		/usr/libexec/sendmail/sendmail
    newaliases	/usr/libexec/sendmail/sendmail
    hoststat	/usr/libexec/sendmail/sendmail
    purgestat	/usr/libexec/sendmail/sendmail

Энэ нь, эдгээр өргөн хэрэглэгддэг тушаалуудын аль нэгийг (sendmail өөрөө гэх мэт) ажиллуулахад, систем үнэн хэрэгтээ sendmail нэртэй захидлын дундын хянагчийн хуулбарыг дуудна гэсэн үг юм. Энэ захидлын дундын хянагч mailer.conf файлыг шалгаж, /usr/libexec/sendmail/sendmail-г оронд нь ажиллуулна. Энэ системийн тусламжтай дээрх анхдагч sendmail функцүүдийг дуудахад үнэндээ ажиллах хоёртын файлуудыг солиход амархан болгодог.

Тиймээс хэрэв та sendmail-н оронд /usr/local/supermailer/bin/sendmail-compat-г ажиллуулах хүсэлтэй бол, /etc/mail/mailer.conf файлыг дараах байдлаар засаж бичих хэрэгтэй:

    sendmail	 /usr/local/supermailer/bin/sendmail-compat
    send-mail	/usr/local/supermailer/bin/sendmail-compat
    mailq		/usr/local/supermailer/bin/mailq-compat
    newaliases	/usr/local/supermailer/bin/newaliases-compat
    hoststat	/usr/local/supermailer/bin/hoststat-compat
    purgestat	/usr/local/supermailer/bin/purgestat-compat

### 29.4.5. Төгсгөл

Өөрийн хүссэнээр бүх зүйлсийг тохируулсны дараа, нэгэнт хэрэггүй болсон sendmail процессуудыг зогсоож шинэ програмд хамаарах процессуудыг эхлүүлэх, эсвэл зүгээр л системийг дахин ачаалах хэрэгтэй. Системийг дахин ачаалах нь систем ачаалах явцад таны шинэ MTA-г ачаалах тохиргоог зөв хийсэн эсэхээ шалгахад тань тусална.

## 29.5. Гэмтэл саатлыг арилгах нь

### 29.5.1. Яагаад би өөрийн сүлжээнд байгаа хостуудын хувьд FQDN-г хэрэглэх ёстой вэ?

Үнэндээ тухайн хост өөр домэйнд байгаа болохыг та анзаарах байх; жишээ нь, хэрэв та өөрөө `foo.bar.edu` домэйнд байгаа бөгөөд `bar.edu` домэйнд байгаа `mumble` хост руу хандах хүсэлтэй бол түүнийг зүгээр `mumble` гэхийн оронд `mumble.bar.edu` гэсэн fully-qualified domain name буюу бүрэн-баталгаажсан домэйн нэрээр нь заах хэрэгтэй.

Урьд нь, BSD BIND тайлагчийн хувьд дээрх шиг хэрэглэж болдог байсан. Гэвч FreeBSD-тэй хамт ирдэг BIND-н одоогийн хувилбар дээр өөрийн оршин байгаа домэйноос бусад бүрэн баталгаажаагүй домэйн нэрийн хувьд анхдагч товчилсон нэрүүдийг хэрэглэж болохгүй болсон. Тиймээс баталгаажаагүй `mumble` гэсэн хостыг эсвэл `mumble.foo.bar.edu` гэж ойлгоно, эсвэл эх домэйнд хайх болно.

Хайлт цааш `mumble.bar.edu`, ба `mumble.edu` болж үргэлжлэх бөгөөд энэ нь санаснаас шал өөр зүйл болон хувирна. Үүнийг яагаад буруу үйлдэл, бүр аюулгүй байдлын цоорхой гэж тооцох болсныг RFC 1535-с олж үзээрэй.

Дээрх байдлаас гарахын тулд, өөрийн /etc/resolv.conf файл дотор:

    search foo.bar.edu bar.edu

гэсэн мөрийг:

    domain foo.bar.edu

мөрийн оронд бичих хэрэгтэй. Гэхдээ, хайлт хийх дэс дараалал нь RFC 1535-д заасны дагуу "дотоод болон гадаад удирдлагын хязгаар"ыг давах ёсгүйг анхаараарай.

### 29.5.2. sendmail захидал өөр дээр минь тойроод ирж байна гээд байна

Энэ асуултанд sendmail-н FAQ дараах байдалтай хариулсан байгаа:

    I'm getting these error messages:

    553 MX list for domain.net points back to relay.domain.net
    554 <user@domain.net>... Local configuration error

    How can I solve this problem?

    You have asked mail to the domain (e.g., domain.net) to be
    forwarded to a specific host (in this case, relay.domain.net)
    by using an MX record, but the relay machine does not recognize
    itself as domain.net. Add domain.net to /etc/mail/local-host-names
    [known as /etc/sendmail.cw prior to version 8.10]
    (if you are using FEATURE(use_cw_file)) or add Cw domain.net
    to /etc/mail/sendmail.cf.

sendmail-н FAQ-г http://www.sendmail.org/faq/ хаягаар орж үзэж болох ба хэрэв та захидлын серверийнхээ тохиргоогоор нилээд "оролдох" бол эхлээд үүнийг уншихыг зөвлөж байна.

### 29.5.3. Утсаар залгаж холбогддог PPP хост дээр захидлын серверийг хэрхэн ажиллуулах вэ?

Та LAN-д байгаа FreeBSD машиныг Интернэтэд холбох хүсэлтэй байна. Энэ FreeBSD машин тухайн LAN-ий хувьд захидлын гарц байх болно. PPP холболт бол тусгайлан бий болгосон зориулагдсан холболт биш юм.

Үүний тулд хоёр арга байна. Нэг арга нь UUCP ашиглах юм.

Нөгөө арга нь таны домэйны хувьд хоёрдогч MX үйлчилгээг үзүүлэх байнгын холболттой Интернэт сервертэй болох явдал юм. Жишээлбэл, хэрэв танай байгууллагын домэйн нэр `example.com` бөгөөд танай Интернэтийн үйлчилгээ үзүүлэгч танай домэйны хувьд хоёрдогч MX үйлчилгээг үзүүлэхээр `example.net` домэйныг дараах байдалтай тохируулжээ:

    example.com.          MX        10      example.com.
                          MX        20      example.net.

Зөвхөн ганц хост эцсийн захидал хүлээн авагч байх ёстой (`example.com` хостын /etc/mail/sendmail.cf файлд `Cw example.com`-г нэмнэ).

Захиа явуулах гэж байгаа `sendmail` захидлыг явуулахаар оролдох үед эхлээд модем холбоосоор тантай (`example.com`) холбогдохыг оролдоно. Та Интернэтэд холбогдоогүй байгаа учраас ихэнх тохиолдолд тантай холбогдож чадахгүй. Энэ тохиолдолд, sendmail автоматаар хоёрдогч MX сервер рүү, өөрөөр хэлбэл танай Интернэтийн үйлчилгээ үзүүлэгчид (`example.net`) илгээх болно. Хоёрдогч MX сервер танай сервертэй холбогдохыг тогтмол оролдох ба ийм замаар анхдагч MX хост руу (`example.com`) захидлыг хүргэх болно.

Та дор үзүүлсэнтэй төстэй нэвтрэх скриптийг хэрэглэхийг хүсэж болзошгүй:

    #!/bin/sh
    # Put me in /usr/local/bin/pppmyisp
    ( sleep 60 ; /usr/sbin/sendmail -q ) &
    /usr/sbin/ppp -direct pppmyisp

Хэрэв та хэрэглэгчийн хувьд тусдаа нэвтрэх скрипт үүсгэх гэж байгаа бол дээрх скрипт дээр байгаагийн оронд `sendmail -qRexample.com`-г хэрэглэж болох юм. Энэ нь таны захидлын дараалалд байгаа `example.com`-д очих бүх захидлыг тэр дор нь боловсруулахыг шаардана.

Байдлыг хэрхэн цааш сайжруулахыг дор үзнэ үү:

FreeBSD Интернетийн үйлчилгээ үзүүлэгчийн захидлын жагсаалт-с хулгайлсан зурвас.

    > we provide the secondary MX for a customer. The customer connects to
    > our services several times a day automatically to get the mails to
    > his primary MX (We do not call his site when a mail for his domains
    > arrived). Our sendmail sends the mailqueue every 30 minutes. At the
    > moment he has to stay 30 minutes online to be sure that all mail is
    > gone to the primary MX.
    >
    > Is there a command that would initiate sendmail to send all the mails
    > now? The user has not root-privileges on our machine of course.

    In the privacy flags section of sendmail.cf, there is a
    definition Opgoaway,restrictqrun

    Remove restrictqrun to allow non-root users to start the queue processing.
    You might also like to rearrange the MXs. We are the 1st MX for our
    customers like this, and we have defined:

    # If we are the best MX for a host, try directly instead of generating
    # local config error.
    OwTrue

    That way a remote site will deliver straight to you, without trying
    the customer connection.  You then send to your customer.  Only works for
    hosts, so you need to get your customer to name their mail
    machine customer.com as well as
    hostname.customer.com in the DNS.  Just put an A record in
    the DNS for customer.com.

### 29.5.4. Бусад хостоос захидал явуулахад яагаад Relaying Denied гэсэн алдаа байнга гараад байна вэ?

FreeBSD-н анхдагч суулгацад sendmail-г зөвхөн ажиллаж байгаа хостоосоо захидал илгээдэг байхаар тохируулсан байдаг. Жишээ нь, хэрэв нэг POP сервер байгаа бол, хэрэглэгчид сургууль, ажил, эсвэл бусад алсын байршлаас захидлаа шалгах боломжтой байх болно. Гэвч гаднаас захидал илгээж чадахгүй хэвээр байх болно. Ихэвчлэн, оролдого хийснээс хэдэн хормын дараа, MAILER-DAEMON `5.7 Relaying Denied` гэсэн алдааны мэдээлэлтэй захидлыг илгээх болно.

Энэ байдлаас гарах хэд хэдэн зам байна. Хамгийн энгийн арга бол өөрийн ISP-н хаягийг /etc/mail/relay-domains-д байгаа өртөөлөх (дамжуулах) домэйнуудын файлд бичих хэрэгтэй. Үүнийг хийх амархан аргыг үзүүлэв:

    # echo "your.isp.example.com" > /etc/mail/relay-domains

Энэ файлыг үүсгэсэн эсвэл зассаны дараа, sendmail-г дахин эхлүүлэх хэрэгтэй. Хэрэв та сервер хариуцагч байгаад, захидлыг дотооддоо явуулах хүсэлгүй, эсвэл өөр машин дээрээс эсвэл бүр өөр ISP-с хулганы товч дараад л хийчих хялбар систем ашиглах хүсэлтэй байгаа бол энэ арга яг тохирно. Энэ арга ганцхан эсвэл хоёрхон захидлын бүртгэл үүсгэсэн тохиолдолд мөн тус болно. Хэрэв дээрх файлд олон тооны хаяг нэмэх шаардлагатай бол, зүгээр өөрийн дуртай засварлагч програмаар нээгээд домэйнуудаа мөр болгонд нэг байхаар нэмж бичих хэрэгтэй:

    your.isp.example.com
    other.isp.example.net
    users-isp.example.org
    www.example.org

Одоо, энэ жагсаалтад (хэрэглэгч таны систем дээр бүртгэлтэй гэсэн нөхцөлтэйгөөр) байгаа ямар ч хостоос, таны системээр дамжуулан явуулсан захидал амжилттай явах болно. Энэ бол хэрэглэгчиддээ таны системээр дамжуулан SPAM явуулах боломжийг олголгүйгээр, таны системээс алсаас захидал илгээх боломжийг олгох үнэхээр сайн арга юм.

## 29.6. Дээд түвшний сэдвүүд

Энэ хэсэг захидлын серверийн тохиргоо, бүхэл домэйнд зориулсан захидлын серверийг зохион байгуулах зэрэг илүү гүнзгий сэдвүүдийг хамрах болно.

### 29.6.1. Үндсэн Тохиргоо

Хэрэв та өөрийн нэрийн сервер ажиллуулж байгаа эсвэл /etc/resolv.conf-г тохируулсан л бол гадаад хостууд руу захидал илгээж чадах ёстой. Хэрэв та өөрийн хостод хаягласан захидлыг таны өөрийн FreeBSD машин дээрх MTA (жишээ нь sendmail) хүлээж авдаг болгохыг хүсэж байгаа бол, дараах хоёр арга зам байна:

- Өөрөө нэрийн сервер ажиллуулаад, өөрийн домэйн нэр авах. Жишээлбэл, `FreeBSD.org`

- Захидлыг шууд өөрийн хост дээр хүлээж авдаг байх. Үүний тулд өөрийн машины одоогийн DNS нэрээр захидлыг хүлээн авах. Жишээлбэл, `example.FreeBSD.org`.

Дээрхээс алийг нь ч сонгосон бай, өөр дээрээ захидал шууд хүлээн авдаг байхын тулд байнгын статик IP хаягтай байх ёстой (ихэнх PPP залгадаг холболтынх шиг динамик хаяг биш). Хэрэв галт ханын цаана байгаа бол, галт хана тань руу чиглэсэн SMTP урсгалыг нэвтрүүлэх ёстой. Захидлыг шууд өөрийн хост дээр хүлээн авахын тулд, дараах хоёр нөхцөлийн аль нэгийг хангасан байх ёстой:

- Таны DNS дээрх (хамгийн бага дугаартай) MX бичлэг таны хостын IP хаяг руу заасан байх ёстой.

- Таны DNS дээр таны хостын IP хаяг руу заасан MX бичлэг байх ёсгүй.

Дээр дурдсаны аль нэгийг хангасан байхад, та өөрийн хост дээр захидал хүлээн авах боломжтой болно.

Туршаад үзээрэй:

    # hostname
    example.FreeBSD.org
    # host example.FreeBSD.org
    example.FreeBSD.org has address 204.216.27.XX

Хэрэв дээрхтэй адил хариу гарч байвал, yourlogin@example.FreeBSD.org хаяг руу илгээсэн захидал ямар ч асуудалгүй хүрэх газраа очих ёстой (`example.FreeBSD.org` дээр sendmail зөв ажиллаж байгаа гэж үзэв).

Үүний оронд доор дурдсантай адил хариу авбал:

    # host example.FreeBSD.org
    example.FreeBSD.org has address 204.216.27.XX
    example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org

таны хост руу илгээсэн бүх захидлууд (`example.FreeBSD.org`) шууд таны хост руу илгээгдэхийн оронд `hub` дээр адилхан хэрэглэгчийн нэр дээр цугларах болно.

Дээрх мэдээллийг DNS сервер зохицуулан ажиллана. DNS-н Mail eXchange буюу MX бичлэгт захидлыг хааш нь чиглүүлэх талаар мэдээлэл агуулагддаг. Хэрэв ямар ч MX бичлэг байхгүй бол, захидлыг IP хаягаар нь хостод дамжуулна.

`freefall.FreeBSD.org`-н MX бичлэг дараах байдалтай байна:

    freefall		MX	30	mail.crl.net
    freefall		MX	40	agora.rdrop.com
    freefall		MX	10	freefall.FreeBSD.org
    freefall		MX	20	who.cdrom.com

Таны харж байгаачлан, `freefall`-н хувьд олон MX бичлэг байна. Хамгийн бага MX дугаартай хост ажиллаж байвал захидлыг шууд хүлээж авах болно; хэрэв ямар нэг байдлаар энд хост руу хандах боломжгүй байвал бусад нь (заримдаа "нөөц MX-үүд" гэж нэрлэх нь бий) түр хугацаанд захидлыг хүлээж аваад, арай бага дугаартай хосттой холбоо тогтоох боломжтой болмогц түүн рүү дамжуулах гэм мэтчилэн явсаар, эцэст нь хамгийн бага дугаартай хост захидлыг хүлээн авах болно.

Бусад MX-үүд таныхаас тусдаа Интернэт холболттой байх шаардлагатай. Таны ISP эсвэл өөр найрсаг газрууд танд энэ үйлчилгээг үзүүлэхэд асуудал байх ёсгүй.

### 29.6.2. Таны домэйнд хаягласан Захидал

"Захидлын хост" (захидлын сервер гэж нэрлэх нь бий) зохион байгуулахын тулд, янз янзын ажлын машин руу явуулсан захидлыг энэ сервер рүү чиглүүлсэн байх ёстой. Үндсэндээ, өөрийн домэйнд байгаа ямар ч хостын захидлыг "нэхэмжилж аваад"(энэ тохиолдолд `*.FreeBSD.org`) түүнийг өөрийн захидлын сервер рүү дахин чиглүүлнэ гэсэн үг юм. Ингэснээр таны хэрэглэгчдийн захидлууд эзэн захидлын сервер дээр цуглах болно.

Үүнийг хялбар болгохын тулд, нэг хэрэглэгчийн нэртэй хэрэглэгчийн данс хоёр машин дээр хоёулан дээр нь байх шаардлагатай. Үүнийг хийхдээ adduser(8)-г ашиглаарай.

Таны хэрэглэх захидлын хост таны сүлжээнд байгаа бүх ажлын машины хувьд томилж гаргасан захидал солилцогч байх ёстой. Энэ тохиргоог DNS сервер дээр дараах байдалтай хийнэ:

    example.FreeBSD.org	A	204.216.27.XX		; Workstation
    			MX	10 hub.FreeBSD.org	; Mailhost

Энэ нь ажлын машинд хаягласан захидлыг, A бичлэг хааш нь заахаас үл хамааран захидлын хост руу дахин чиглүүлэх болно. Ингэснээр захидал MX хост руу илгээгдэх болно.

Та DNS сервер ажиллуулдаггүй бол дээр дурдсаныг өөрөө бие даан хийх боломжгүй юм. Хэрэв та DNS сервер ажиллуулдаггүй, эсвэл DNS сервер ажиллуулах боломжгүй бол өөрийн ISP эсвэл DNS үйлчилгээ үзүүлдэг газартаа хандаарай.

Хэрэв та хийсвэр захидал байршуулах үйлчилгээ үзүүлдэг бол, дараах мэдээлэл тус болно. Таны үйлчлүүлэгч өөрийн домэйн нэртэй, тухайлбал `customer1.org`, ба та `customer1.org`-д хаягласан бүх захидлыг өөрийн захидлын хост `mail.myhost.com` руу чиглүүлэх хүсэлтэй байна гэж бодъё. Тэгвэл таны DNS дээрх бичлэг дараах байдалтай байх болно:

    customer1.org		MX	10	mail.myhost.com

`customer1.org` домэйны зөвхөн захидлыг хариуцахын тулд A бичлэг шаардлагагүй.

| A бичлэг байхгүй бол `customer1.org` руу ping хийх боломжгүй болохыг анхаарна уу.

Хамгийн сүүлд хийх нэг зүйл бол өөрийн захидлын хост дээрх sendmail-д ямар ямар домэйнууд ба/эсвэл хостуудад хаягласан захидлыг хүлээн авахыг хэлж өгөх явдал юм. Үүнийг хэд хэдэн өөр аргаар хийж болно. Дараах аргуудын алийг ч хэрэглэж болно:

- Хэрэв та `FEATURE(use_cw_file)`-г хэрэглэж байгаа бол хостуудыг /etc/mail/local-host-names файл дотор нэмж бичих.

- Хэрэв та sendmail 8.10 эсвэл түүнээс хойно гарсан хувилбарыг хэрэглэж байгаа бол `Cwyour.host.com` гэсэн мөрийг /etc/sendmail.cf эсвэл /etc/mail/sendmail.cf файл дотор бичих.

## 29.7. UUCP-тэй SMTP

FreeBSD-тэй цуг ирдэг sendmail-ийн тохиргоо нь Интернэт рүү шууд холбогддог сайтуудад зориулагдсан юм. Өөрсдийн захидлыг UUCP-ээр солилцохыг хүссэн сайтууд sendmail-ийн өөр тохиргооны файлыг суулгах ёстой.

/etc/mail/sendmail.cf-г гараар тохируулах нь илүү нарийн, нэмэлт сэдэв юм. sendmail хувилбар 8 нь тохиргооны файлуудаа m4(1) урьдчилан процесс хийлтээр үүсгэдэг. Жинхэнэ тохиргоо нь илүү дээд хийсвэрлэлтийн түвшинд болдог. m4(1)-ийн тохиргооны файлуудыг /usr/shared/sendmail/cf сангаас олж болно. cf сан дахь README файл нь m4(1) тохиргооны үндсэн танилцуулга болон үйлчилдэг.

UUCP хүргэлтийг дэмжих хамгийн шилдэг арга бол `mailertable` боломжийг ашиглах явдал юм. Энэ нь чиглүүлэлтийн шийдвэрүүд гаргахдаа sendmail-ийн ашигладаг мэдээллийн баазыг үүсгэдэг.

Эхлээд та өөрийн .mc файлыг үүсгэх хэрэгтэй. /usr/shared/sendmail/cf/cf сан цөөн хэдэн жишээнүүдийг агуулдаг. Таныг өөрийнхөө файлыг foo.mc гэж нэрлэсэн гэж үзэх юм бол түүнийг зөв sendmail.cf болгож хөрвүүлэхийн тулд хийх зүйл тань:

    # cd /etc/mail
    # make foo.cf
    # cp foo.cf /etc/mail/sendmail.cf

Ердийн .mc файл иймэрхүү харагдаж болно:

    VERSIONID(`Your version number') OSTYPE(bsd4.4)

    FEATURE(accept_unresolvable_domains)
    FEATURE(nocanonify)
    FEATURE(mailertable, `hash -o /etc/mail/mailertable')

    define(`UUCP_RELAY', your.uucp.relay)
    define(`UUCP_MAX_SIZE', 200000)
    define(`confDONT_PROBE_INTERFACES')

    MAILER(local)
    MAILER(smtp)
    MAILER(uucp)

    Cw    your.alias.host.name
    Cw    youruucpnodename.UUCP

`accept_unresolvable_domains`, `nocanonify`, болон `confDONT_PROBE_INTERFACES` боломжуудыг агуулсан мөрүүд нь захидал хүргэх явцын үед DNS-ийг ашиглуулахгүй байх болно. `UUCP_RELAY` гэдэг нь UUCP хүргэлтийг дэмжихэд шаардлагатай. .UUCP псевдо домэйн хаягуудтай ажиллаж чаддаг Интернэтийн хостын нэрийг тавих хэрэгтэй; та өөрийн ISP-ийн захидал өртөөлөгчийг энд бараг оруулах байх даа.

Ингэснийхээ дараа танд /etc/mail/mailertable файл хэрэгтэй болно. Хэрэв танд таны бүх захидлуудад ашиглагддаг, гадагш холбогдсон зөвхөн ганц холболт байвал дараах файл хангалттай байх болно:

    #
    # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
    .                             uucp-dom:your.uucp.relay

Арай илүү төвөгтэй жишээ иймэрхүү харагдаж болно:

    #
    # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
    #
    horus.interface-business.de   uucp-dom:horus
    .interface-business.de        uucp-dom:if-bus
    interface-business.de         uucp-dom:if-bus
    .heep.sax.de                  smtp8:%1
    horus.UUCP                    uucp-dom:horus
    if-bus.UUCP                   uucp-dom:if-bus
    .                             uucp-dom:

Эхний гурван мөр нь домэйн руу хаяглагдсан захидал анхдагч чиглүүлэлт рүү биш, харин хүргэх замыг "товчлохын" тулд UUCP хөрш рүү илгээгдэхийг зохицуулдаг. Дараагийн мөр нь локал Ethernet домэйн руу хаяглагдсан, SMTP ашиглан хүргэгдэж болох захидалтай ажилладаг. Эцэст нь .UUCP псевдо домэйн маягаар бичигдсэн UUCP хөршүүд `uucp-neighbor !recipient`-д анхдагч дүрмүүдийг дарж бичих боломжийг олгохын тулд дурдагдсан. Сүүлийн мөр нь үргэлж нэг цэг байдаг. Энэ нь UUCP хүргэлтээр дэлхий рүү гарах таны универсал захидлын гарц болон үйлчилдэг UUCP хөрш рүү гаргана гэж бусад бүгдийн хувьд зааж өгч байна. `uucp-dom:` түлхүүр үгийн ард байрлах бүх цэгийн нэрс зөв UUCP хөршүүд байх ёстой бөгөөд та тэдгээрийг `uuname` тушаал ашиглан шалгаж болно.

Санаж явах зүйл бол энэ файл нь ашиглагдахаасаа өмнө DBM мэдээллийн баазын файл руу хөрвүүлэгдэх шаардлагатай байдаг. Үүнийг хийх тушаалын мөрийг mailertable файлын дээр хэсэгт тайлбар маягаар хийх нь зүйтэй. Өөрийн mailertable файлыг өөрчлөх бүртээ та энэ тушаалыг ажиллуулах ёстой юм.

Төгсгөлийн зөвлөгөө: хэрэв та тухайн нэг захидлын чиглүүлэлт ажиллаж байгаа эсэхэд эргэлзэж байгаа бол sendmail-ийн `-bt` тохируулгыг тогтоох хэрэгтэй. Энэ нь sendmail-ийг хаягийн тест горимд эхлүүлдэг; `3,0` гэж оруулаад захидал чиглүүлэлтийг тест хийхийг хүссэн хаягаа оруулах хэрэгтэй. Сүүлийн мөр нь ашиглагдсан дотоод захидлын агент, энэ агентийн дуудаж холбогдох хүрэх хост болон (магадгүй хөрвүүлэгдсэн) хаягийг хэлдэг. Энэ горимоос `Ctrl`+`D` даран гарна.

    % sendmail -bt
    ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
    Enter <ruleset> <address>
    > 3,0 foo@example.com
    canonify           input: foo @ example . com
    ...
    parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
    > ^D

## 29.8. Зөвхөн илгээхээр тохируулах нь

Өртөөлөх серверээр дамжуулан захидлыг илгээхийг зөвхөн хүсэх олон тохиолдлууд байдаг. Зарим жишээнүүдийг дурдвал:

- Таны компьютер ширээний машин, гэхдээ та send-pr(1) зэрэг програмуудыг ашиглахыг хүсэж байна гэж бодъё. Ингэхийн тулд та өөрийн ISP-ийн захидал өртөөлөх серверийг ашиглах ёстой.

- Компьютер нь захидлыг локалаар зохицуулдаггүй сервер боловч бүх захидлуудыг боловсруулахын тулд өртөөлөх сервер рүү дамжуулах хэрэгтэй байгаа.

Бараг MTA бүр үүнийг хийх чадвартай байдаг. Харамсалтай нь захидлыг зөвхөн дамжуулахын тулд өргөн боломжтой MTA-г зөв тохируулах нь маш төвөгтэй байдаг. sendmail болон postfix зэрэг програмуудыг энэ зорилгоор ашиглах нь хэтэрхий юм.

Мөн хэрэв та энгийн Интернэт хандалтын үйлчилгээг ашиглаж байгаа бол таны гэрээ таныг "захидлын сервер" ажиллуулахыг хориглож магадгүй юм.

Тэдгээр хэрэгцээнүүдийг хангах хялбар арга бол mail/ssmtp портыг суулгах явдал юм. Дараах тушаалуудыг `root` хэрэглэгчээр ажиллуулна:

    # cd /usr/ports/mail/ssmtp
    # make install replace clean

Суулгасны дараа mail/ssmtp-г /usr/local/etc/ssmtp/ssmtp.conf-д байрлах дөрвөн мөр бүхий файлаар тохируулж болно:

    root=yourrealemail@example.com
    mailhub=mail.example.com
    rewriteDomain=example.com
    hostname=_HOSTNAME_

`root`-д зориулж өөрийн жинхэнэ захидлын хаягаа ашиглахаа мартуузай. `mail.example.com`-ийн оронд өөрийн ISP-ийн гарах захидлын өртөөлөх серверийг оруулаарай (зарим ISP-ууд нь үүнийг "гарах захидлын сервер" эсвэл "SMTP сервер" гэдэг).

Гарах захидлын үйлчилгээг нь оролцуулаад sendmail-г хориглохоо мартуузай. Дэлгэрэнгүйг sendmail-г идэвхгүй болгох нь хэсгээс үзнэ үү.

mail/ssmtp нь бас бусад тохируулгуудтай байдаг. Жишээнүүд болон дэлгэрэнгүй мэдээллийг /usr/local/etc/ssmtp доторх жишээ тохиргооны файл эсвэл ssmtp-ийн гарын авлагын хуудаснаас үзнэ үү.

Энэ маягаар ssmtp-г тохируулах нь зөв ажиллахын тулд захидал илгээхийг шаарддаг, таны компьютер дээрх ямар ч програмыг зөвшөөрөх болно. Ингэхдээ таны ISP-ийн хэрэглээний бодлогыг зөрчилгүйгээр эсвэл таны компьютерийг спам илгээх зорилгоор булаан эзлэхийг зөвшөөрдөггүй байна.

## 29.9. Гадагш залгах холболтоор захидлыг ашиглах нь

Хэрэв танд статик IP хаяг байгаа бол та анхдагч утгуудыг өөрчилж тааруулах шаардлагагүй юм. Өөрийн хостын нэрийг өөрт заагдсан Интернэтийн нэрээр тохируулах хэрэгтэй бөгөөд sendmail үлдсэнийг нь хийх болно.

Хэрэв та динамикаар заагдсан IP хаягтай бөгөөд Интернэт рүү диал ап PPP холболтыг ашигладаг бол та өөрийн ISP-ийн захидлын сервер дээр магадгүй захидлын хайрцагтай байна байх. Таны ISP-ийн домэйн `example.net`, таны хэрэглэгчийн нэр `user`, та өөрийн машиныг `bsd.home` гэж нэрлэсэн бөгөөд таны ISP танд `relay.example.net`-г захидал өртөөлөх сервер болгож ашиглаж болно гэж хэлсэн гэж үзье.

Өөрийн захидлын хайрцгаас захидал авахын тулд та татаж авах агентийг суулгах ёстой. fetchmail хэрэгсэл нь олон төрлийн протоколуудыг дэмждэг болохоор үүнд сайн сонголт болох юм. Энэ програм нь багц хэлбэрээр эсвэл портын цуглуулгад байдаг (mail/fetchmail). Ихэвчлэн таны ISPPOP үйлчилгээ үзүүлдэг. Хэрэв та хэрэглэгчийн PPP ашиглаж байгаа бол /etc/ppp/ppp.linkup дахь дараах оруулгыг ашиглан Интернэтийн холболт тогтох үед өөрийн захидлыг автоматаар авч болох юм:

    MYADDR:
    !bg su user -c fetchmail

Хэрэв та sendmail-г локал биш бүртгэлүүдэд захидал илгээхийн тулд ашиглаж байгаа бол (доор үзүүлсэн шиг) та өөрийнхөө Интернэтийн холболтыг тогтоосныхоо дараа өөрийн захидлын дарааллыг sendmail-ээр процесс хийлгэхийг хүсэх байх. Үүнийг хийхийн тулд энэ тушаалыг /etc/ppp/ppp.linkup файлд `fetchmail` тушаалын дараа байрлуулах хэрэгтэй:

      !bg su user -c "sendmail -q"

Та `bsd.home` дээр `user`-т зориулсан бүртгэлтэй гэж бодъё. `bsd.home` дээрх `user`-ийн гэрийн санд .fetchmailrc файлыг үүсгэх хэрэгтэй:

    poll example.net protocol pop3 fetchall pass MySecret

Энэ файл нь `MySecret` гэсэн нууц үгийг агуулдаг болохоор уг файлыг `user`-ээс өөр хэн ч унших ёсгүй юм.

Зөв `from:` толгойтойгоор захидал илгээхийн тулд та sendmail-д user@bsd.home-ийн оронд user@example.net-г ашиглахыг хэлж өгөх ёстой. Та бас sendmail-д хурдан захидал дамжуулах боломжийг бүрдүүлэхийн тулд бүх захидлыг дамжуулахдаа `relay.example.net`-ийг ашиглахыг бас хэлж өгөхийг хүсэж болох юм.

Дараах .mc файл нь хангалттай байх болно:

    VERSIONID(`bsd.home.mc version 1.0')
    OSTYPE(bsd4.4)dnl
    FEATURE(nouucp)dnl
    MAILER(local)dnl
    MAILER(smtp)dnl
    Cwlocalhost
    Cwbsd.home
    MASQUERADE_AS(`example.net')dnl
    FEATURE(allmasquerade)dnl
    FEATURE(masquerade_envelope)dnl
    FEATURE(nocanonify)dnl
    FEATURE(nodns)dnl
    define(`SMART_HOST', `relay.example.net')
    Dmbsd.home
    define(`confDOMAIN_NAME',`bsd.home')dnl
    define(`confDELIVERY_MODE',`deferred')dnl

Энэ .mc файлыг sendmail.cf файл болгож хэрхэн хувиргах тухай дэлгэрэнгүйг өмнөх хэсгээс лавлана уу. Бас sendmail.cf-г шинэчилснийхээ дараа sendmail-г дахин эхлүүлэхээ мартуузай.

## 29.10. SMTP нэвтрэлт танилт

Өөрийн захидлын сервертээ SMTP Authentication буюу нэвтрэлт танилттай байх нь хэд хэдэн талаараа ашигтай байдаг. SMTP нэвтрэлт танилт нь sendmail-д аюулгүй байдлын өөр давхарга нэмж чадах бөгөөд хостоо сольдог хөдөлгөөнт хэрэглэгчдийн хувьд өөрийн захидлын клиентийнхээ тохиргоог дахин тохируулалгүйгээр захидлын серверээ ашиглах боломжийг олгодгоороо ашигтай байдаг.

1. security/cyrus-sasl2-г портоос суулгана. Та энэ портыг security/cyrus-sasl2 сангаас олж болно. security/cyrus-sasl2 порт нь хэд хэдэн эмхэтгэх үеийн тохируулгуудыг дэмждэг. Бидний ашиглах SMTP нэвтрэлт танилтын аргын хувьд `LOGIN` тохируулга хаагдаагүй эсэхийг шалгаарай.

2. security/cyrus-sasl2-г суулгасны дараа /usr/local/lib/sasl2/Sendmail.conf-г (байхгүй бол үүсгээрэй) засварлаж дараах мөрийг нэмэх хэрэгтэй:

       pwcheck_method: saslauthd

3. Дараа нь security/cyrus-sasl2-saslauthd-г суулгаж дараах мөрийг нэмэхийн тулд /etc/rc.conf-г засварлана:

       saslauthd_enable="YES"

   тэгээд эцэст нь saslauthd дэмонг эхлүүлнэ:

       # service saslauthd start

   Энэ дэмон нь таны FreeBSD passwd мэдээллийн баазаас нэвтрэлт таниулахын тулд sendmail-ийн хувьд зуучлагч болдог. Энэ нь SMTP нэвтрэлт танилт ашиглах хэрэгтэй хэрэглэгч бүрийн хувьд шинэ хэрэглэгчийн нэрс болон нууц үгсийг үүсгэх шаардлагагүй болгож нэвтрэлт болон захидлын нууц үгийг өөрчлөлгүйгээр хэвээр байлгадаг юм.

4. Одоо /etc/make.conf-г засварлаад дараах мөрүүдийг нэмэх хэрэгтэй:

       SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
       SENDMAIL_LDFLAGS=-L/usr/local/lib
       SENDMAIL_LDADD=-lsasl2

   Эдгээр мөрүүд нь sendmail-д cyrus-sasl2 руу эмхэтгэх үед холбоос хийхэд шаардлагатай зөв тохиргооны сонголтуудыг өгөх болно. sendmail-ийг суулгахаас өмнө cyrus-sasl2 суусан байгаа эсэхийг баталгаажуулаарай.

5. Дараах тушаалуудыг ажиллуулж sendmail-г дахин эмхэтгэнэ:

       # cd /usr/src/lib/libsmutil
       # make cleandir && make obj && make
       # cd /usr/src/lib/libsm
       # make cleandir && make obj && make
       # cd /usr/src/usr.sbin/sendmail
       # make cleandir && make obj && make && make install

   /usr/src тийм ч ихээр өөрчлөгдөөгүй бөгөөд хэрэгцээтэй хуваалцдаг сангууд байгаа тохиолдолд sendmail-ийн эмхэтгэлт ямар нэгэн асуудалгүй хийгдэх ёстой.

6. sendmail эмхэтгэгдэж дахин суулгагдсаны дараа өөрийн /etc/mail/freebsd.mc файлыг (аль эсвэл өөрийн .mc файл болгож ашигладаг тэр файлыг. Дахин давтагдахгүй байхын тулд олон администраторууд hostname(1)-ээс гарах гаралтыг ашиглан .mc файлаа болгон сонгодог) засварлах хэрэгтэй. Эдгээр мөрүүдийг нэмэх хэрэгтэй:

       dnl set SASL options
       TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
       define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl

   Хэрэглэгчдийн нэвтрэлт танилтын хувьд sendmail-д байдаг өөр аргуудыг эдгээр тохируулгууд нь тохируулдаг. Хэрэв та pwcheck-с өөр аргыг ашиглахыг хүсэж байгаа бол хамт ирсэн баримтаас үзнэ үү.

7. Эцэст нь /etc/mail дотор байхдаа make(1)-г ажиллуулна. Энэ нь таны шинэ .mc файлыг ажиллуулж freebsd.cf гэгдэх (өөрийн .mc файлд зориулж ашигласан тэр) .cf файлыг үүсгэх болно. Дараа нь `make install restart` тушаалыг ашиглах хэрэгтэй. Энэ нь файлыг sendmail.cf руу хуулж sendmail-г зөв ажиллуулах болно. Энэ процессийн тухай дэлгэрэнгүй мэдээллийг /etc/mail/Makefile файлаас лавлана уу.

Хэрэв бүгд зөв явсан бол та өөрийн нэвтрэх мэдээллийг захидлын клиент уруугаа оруулж тест захидал илгээж чадах ёстой. Илүү судлахын тулд sendmail-ийн `LogLevel`-г 13 болгон тохируулж /var/log/maillog файлд алдаа гарах эсэхийг харах хэрэгтэй.

SMTP нэвтрэлт танилттай холбоотой дэлгэрэнгүй мэдээллийг sendmail хуудаснаас үзнэ үү.

## 29.11. Хэрэглэгчийн захидал дамжуулагчид

Mail User Agent (MUA) буюу хэрэглэгчийн захидал дамжуулагч гэдэг нь захиаг илгээх болон хүлээн авах зориулалттай програмууд байдаг. Мөн цаашилбал хоорондоо холбогдож "захидал" чулуудацгааснаар хэрэглэгчдийн ажлыг түргэтгэж амарчилж чаддагаараа MUA нар нь илүү хүчирхэг болж байгаа билээ. FreeBSD нь өөртөө маш олон захиа дамжуулагч програмуудыг дэмждэг бөгөөд FreeBSD портын цуглуулгаас та суулгах боломжтой. Хэрэглэгчид магадгүй график дүрслэлтэй evolution эсвэл balsa, мөн консол дээр тулгуурлаж ажилладаг програмууд болох mutt, alpine эсвэл `mail`, үгүй бол том байгууллагуудад ихэнхдээ хэрэглэгддэг вэб харуулалттай захиа үзэгч зэргүүдээс сонгон хэрэглэх боломж буй.

### 29.11.1. mail

mail(1) бол FreeBSD-н хэрэглэгчийн хэрэглэж болох анхдагч захиа дамжуулагч програм юм. Энэ нь консол дээр ажилладаг бөгөөд текст хэлбэрийн захиануудыг дамжуулах болон хүлээж авах бүх ерөнхий гүйцэтгэлийг санал болгодог ч зарим хавсаргасан файлуудтай ажиллахад зарим хүчин чадал нь дутмаг бөгөөд зөвхөн дотоод захианы хайрцган дээр ажилладаг.

Хэдийгээр `mail` гуай анхнаасаа POP эсвэл IMAP серверүүдийг дэмждэггүй боловч эдгээр сервер дээрх захианы хайрцгуудыг өөрийнхөө дотоод mbox файл уруу fetchmail програмыг ашиглан хуулж чаддаг. fetchmail-н талаар энэ бүлэгт сүүлд танилцуулах болно (fetchmail-г ашиглах нь).

Захиа хүлээж авах болон илгээхийн тулд `mail` тушаал өгнө:

    % mail

Хэрэглэгч бүрд зориулсан /var/mail доторх захианы хайрцаг нь `mail` хэрэгслээр уншигддаг. Хэрэв захианы хайрцаг хоосон байвал ямар ч захиа алга байна гэсэн мэдэгдэл харуулаад энэ хэрэгсэл гардаг. Захианы хайрцаг доторх захиа уншигдах үед энэ хэрэгслийн харуулах нүүр хэсэг ажиллаж эхлэн захиануудыг жагсаалт болгож харуулдаг. Дараах маягаар захианууд нь автоматаар дугаарлагдаж харуулагддаг:

    Mail version 8.1 6/6/93.  Type ? for help.
    "/var/mail/marcs": 3 messages 3 new
    >N  1 root@localhost        Mon Mar  8 14:05  14/510   "test"
     N  2 root@localhost        Mon Mar  8 14:05  14/509   "user account"
     N  3 root@localhost        Mon Mar  8 14:05  14/509   "sample"

Захиануудыг одоо `t` `захианы-дугаар` гэж тушаал өгснөөр тухайн дугаартай захиаг уншина. Доорх жишээнд эхний захиаг уншиж харуулав:

    & t 1
    Message 1:
    From root@localhost  Mon Mar  8 14:05:52 2004
    X-Original-To: marcs@localhost
    Delivered-To: marcs@localhost
    To: marcs@localhost
    Subject: test
    Date: Mon,  8 Mar 2004 14:05:52 +0200 (SAST)
    From: root@localhost (Charlie Root)

    This is a test message, please reply if you receive it.

Дээрх жишээн дээр харуулснаар `t` товч дарж уншссан захианы толгой хэсгийг бүтнээр нь харуулж байна. Захианы үндсэн жагсаалт уруу буцаж очихын тулд `h` товчлуур хэрэглэгддэг.

Хэрэв захианд хариулж бичих тохиолдол гарвал `mail`-н `R` эсвэл `r` товчнуудыг ашигладаг. `R` товч нь `mail`-д зөвхөн илгээсэн хүнд нь хариулж бичихийг зааж өгдөг байхад `r` товч нь илгээсэн хүнээс гадна мөн өөр бусад хүлээн авагчид уруу илгээх боломж өгдөг. Та мөн энэ тушаалуудын ард нь захианы дугаар бичиж өгөн тухайн оноосон захианд хариулт бичиж болно. Ингэж хариулж бичих үйлдэл хийх үед захианы хамгийн сүүлд нэг `.` гэсэн цэгтэй мөр нэмэгддэгийг доорх жишээнээс харна уу:

    & R 1
    To: root@localhost
    Subject: Re: test

    Thank you, I did get your email.
    .
    EOT

Шинэ захиа илгээхийн тулд `m` товч хэрэглэгддэг бөгөөд энэ товчлуурын араас хүлээн авах хүний захианы хаягийг бичиж өгдөг. Олон хаяг бичигдэх тохиолдолд захианы хаяг бүр `,` гэсэн таслал тэмдгээр тусгаарлагддаг. Дараа нь захианы гарчгийг бичиж сүүлд нь захиагаа бичдэг. Захианы төгсгөл хэсгийг тусдаа нэг мөрөнд `.` гэж цэг оруулж өгснөөр захиаг дуусгадаг.

    & mail root@localhost
    Subject: I mastered mail

    Now I can send and receive email using mail ... :)
    .
    EOT

`mail` хэрэгсэл дотор `?` товчлуур дарснаар ямар ч үед тусламж мэдээллийг харуулж болдог бөгөөд мөн mail(1)-н гарын авлаганд илүү дэлгэрэнгүй мэдээллийг харах боломж бий.

| Өмнө тайлбарлаж байсны дагуу mail(1) хэрэгсэл нь анхнаасаа хавсралт файлтай ажиллах зориулалттай хийгдээгүй болохоор жаахан ядуувтар хэрэглэгддэг. Сүүлийн үеийн захидал дамжуулагчид болох mutt нь хавсралт файлтай арай ухаалаг ажилладаг. Гэхдээ та заавал `mail`-г хэрэглэмээр байгаа бол converters/mpack порт танд хэрэг болох байх аа.

### 29.11.2. mutt

mutt бол жижигхэн боловч маш хүчтэй захидал дамжуулагч бөгөөд дараах аятайхан шинж чанаруудыг өөртөө агуулсан байдаг нь:

- Захиануудтай давхар зэрэг ажиллах

- Захианд нууцлалын хувиргалт хийх болон цахим гарын үсэг зурахад зориулагдсан PGP дэмжлэгтэй

- MIME дэмжлэгтэй

- Maildir дэмжлэгтэй

- Дурын өөрчлөлт хийх боломжтой.

Эдгээр шинж чанаруудын ачаар mutt нь хамгийн өргөн тархсан хэрэглэгчийн захидал дамжуулагч болж чадсан юм. http://www.mutt.org хаягнаас mutt-н тухай дэлгэрэнгүй мэдээллийг харна уу.

mutt-н тогтвортой хувилбарыг mail/mutt портоос суулгаж болох бөгөөд хэрэв яг одоо хөгжүүлж буй хувилбарыг нь суулгахыг хүсвэл mail/mutt-devel портоос суулгаарай.Портоо суулгасны дараа mutt-г эхлүүлэхдээ дараах тушаалыг өгдөг:

    % mutt

mutt нь хэрэглэгчийн захианы хайрцгийг автоматаар /var/mail сангаас уншиж хэрэв дотор нь захиа байвал харуулдаг. Хэрэв ямар ч захиа байхгүй байвал хэрэглэгчээс тушаал оруулахыг mutt хүлээх болно. Доорх жишээнд mutt-н захидал харуулалтыг үзүүлэв:

Захиаг уншихын тулд сумтай товчоор захидлыг сонгож `Enter` товч дарна. mutt-н захидал хэрхэн дэлгэж харуулсныг доорх зурган дээр харуулав:

mail(1) хэрэгсэлтэй ижилхэн mutt нь мөн зөвхөн илгээсэн хүнд нь юм уу эсвэл олон хүлээн авагч уруу хариулт бичиж болдог. Зөвхөн илгээсэн хүнд нь хариу бичихийн тулд `r` товч дарна. Захиа илгээсэн хүнийг нь оруулаад бүлэг хүмүүс рүү захиа хариулж бичихийн тулд `g` товч дардаг.

| mutt нь захиа бичих болон хариулахын тулд vi(1) програмыг ашиглан захиа засварлалт хийлгэдэг. Гэхдээ өөрийн эхлэл сан дотроо .muttrc файл үүсгэж `editor` хувьсагч үүсгэх эсвэл `EDITOR` гэсэн орчны хувьсагч үүсгэж өөрийн дуртай засварлагчаа зааж өгч бас болно. http://www.mutt.org/ хаягнаас та mutt-н талаар хэрхэн тохируулж болох дэлгэрэнгүй зааврыг харна уу.

Шинэ захиа бичихийн тулд `m` товч хэрэглэнэ. Гарчгийг оруулсны дараа vi(1) програмыг mutt ажиллуулж захиагаа бичих боломж олгодог. Захиаг бичиж дууссаны дараа `vi` програмаас хадгалаад гарсны дараа илгээх захиаг mutt програм нэгтгэж харуулдаг. Захиагаа илгээхдээ `y` товч дарна. Илгээхийн өмнөх нэгтгэсэн харуулалтыг дор зурганд үзүүлье:

mutt нь өөртөө мөн тусламжийн мэдээлэлтэй өгөөд `?` товч дарж харуулагдана. Дэлгэцийн дээд хэсэгт ямар товч дарж болох тухай тайлбар мэдээлэл харуулаастай байдаг.

### 29.11.3. alpine

alpine програмыг эхлэн хэрэглэгчдэд зориулж үүсгэсэн бөгөөд нэмэлт шинж чанаруудыг агуулсан байдаг.

| alpine-н өмнөх хувилбаруудад алсаас холбогдсон халдагчид тусгай кодыг хэрэглэгч маягаар холбогдон захиа маягаар илгээж уг аюултай кодыг гүйцэтгэж болдог аюултай нүх байжээ. Эдгээр мэдэгдсэн хүндрэлүүд нь засагдсан боловч alpine-ы програмын аюулгүйн хамгаалалт загвар нь тун сул болохоор FreeBSD-н аюулаас хамгаалагч нөхдүүд уг програмд өөр онгорхой нүх бий гэж итгэдэг юм байна. Та өөртөө гарах эрсдэлийг тооцож мэдэж байгаа бол alpine-г суулгаарай.

alpine-н одоогийн хөгжүүлж байгаа хувилбарыг mail/alpine портоос суулгана. Порт суугдсаны дараа alpine-г дараах тушаалаар эхлүүлдэг:

    % alpine

Анх удаагаа alpine ажиллах үедээ мэндчилгээ болон товч заавар харуулаад alpine зохиосон хүмүүст мэдээлэх журмын нэргүй захиа илгээхийг хүсдэг. Тэр нэргүй захиаг илгээхийн тулд `Enter` товч дарах эсвэл мөн `E` товч дарж нэргүй захиа илгээх хэсгээс хадгалахгүй гардаг. Мэндчилгээний хуудас дараах маягаар харагддаг:

Хэрэглэгчдэд дараа нь сумтай товчоор сонгож болдог үндсэн цэс харуулагддаг. Үндсэн цэс дотор шинэ захиа бичих, захиа агуулсан сан доторхоо харах, мөн хаяг хадгалалтаа зохицуулах зэрэг боломж байдаг. Доорх зурагт эдгээр боломжуудын цэсийг харуулсан үндсэн цэсийг үзүүлэв.

alpine-р нээгдсэн үндсэн сан бол inbox гэсэн нэртэй сан байдаг. Захианы жагсаалтыг харахын тулд `I` товч дарах, эсвэл MESSAGE INDEX цэсийг сонгоно:

Захианы санд буй захиануудыг жагсааж харуулсны дараа сумтай товчоор сонгож `Enter` товч дарж уншина.

Доорх зурган дээр alpine дээр энгийн захиаг харуулав. Дэлгэцийн доод хэсэгт лавлах болгож гарын товчлууруудыг харуулдаг. Жишээ нь `r` товч дарснаар одоогийн харуулж байгаа захианд хариу бичнэ.

alpine дээр захианд хариу бичих үед pico засварлагч хэрэглэгддэг бөгөөд энэ засварлагч нь alpine-тай хамт суугддаг. pico хэрэгсэл нь захиа бичихэд маш энгийн бөгөөд vi(1) эсвэл mail(1) зэргийг ашиглагчдыг бодвол шинэ хэрэглэгчид рүү илүү дөхүүлсэн байдаг. Хариулт захиагаа бичиж дуусаад `Ctrl`+`X` товч дарж илгээдэг. Илгээхийн өмнө alpine танаас лавлаж асуух болно.

Үндсэн цэснээс SETUP гэж сонгосноор alpine програмыг та хүссэнээрээ өөрчлөх боломжтой. http://www.washington.edu/alpine/ хаягаас дэлгэрэнгүй мэдээллийг харна уу.

## 29.12. fetchmail-г ашиглах нь

fetchmail нь хэрэглэгчдэд алсын IMAP болон POP серверүүдээс захидал автоматаар татан авч локал захидлын хайрцгуудад хадгалах боломжийг олгодог, өргөн боломжтой, IMAP болон POP клиент юм. Тэдгээр захидлын хайрцгуудад дараа нь хандахад илүү хялбар байдаг. fetchmail-г mail/fetchmail портыг ашиглан суулгаж болох бөгөөд төрөл бүрийн боломжуудыг санал болгодгоос заримыг дурдвал:

- POP3, APOP, KPOP, IMAP, ETRN болон ODMR протоколуудын дэмжлэг.

- SMTP-г ашиглан захидал дамжуулах чадвар. Энэ нь шүүлт хийх, дамжуулалт хийх болон хэвийн ажиллахын тулд хуурамч дүр үзүүлэх боломжийг олгодог.

- Шинэ захидлуудыг байнга шалгахын тулд дэмон горимоор ажиллуулж болно.

- Олон захидлын хайрцгуудыг хүлээн авч тэдгээрийг тохиргооноос хамааран өөр локал хэрэглэгчүүд рүү дамжуулж чаддаг.

fetchmail-ийн бүх боломжуудыг тайлбарлах нь энэ баримтын хүрээнээс гадуур боловч зарим нэг үндсэн боломжуудыг тайлбарлах болно. fetchmail хэрэгсэл нь зөв ажиллахын тулд .fetchmailrc гэгддэг тохиргооны файлыг шаарддаг. Энэ файл нь серверийн мэдээлэл болон нэвтрэх итгэмжлэлүүдийг агуулдаг. Энэ файлын агуулгын мэдрэмтгий чанараас болоод энэ файлыг зөвхөн эзэмшигч нь уншиж чаддаг байхаар болгон дараах тушаал ашиглаж хийхийг зөвлөдөг:

    % chmod 600 .fetchmailrc

Дараах .fetchmailrc файл нь ганц хэрэглэгчийн захидлын хайрцгийг POP ашиглан татаж авах жишээ юм. Энэ нь fetchmail-г `joesoap` хэрэглэгчийн нэр болон `XXX` нууц үгийг ашиглан `example.com` руу холбогдыг зааж байна. Энэ жишээ нь `joesoap` хэрэглэгчийг локал систем дэх хэрэглэгч гэж бас үздэг.

    poll example.com protocol pop3 username "joesoap" password "XXX"

Дараах жишээ нь олон POP болон IMAP серверүүд рүү холбогдож шаардлагатай тохиолдолд өөр локал хэрэглэгчид рүү дахин чиглүүлж байна:

    poll example.com proto pop3:
    user "joesoap", with password "XXX", is "jsoap" here;
    user "andrea", with password "XXXX";
    poll example2.net proto imap:
    user "john", with password "XXXXX", is "myth" here;

fetchmail хэрэгслийг `-d` туг болон түүний дараа .fetchmailrc файлд жагсаагдсан серверүүдийг байнга шалгах тэр хугацааг (секундээр) зааж өгөн дэмон горимд ажиллуулж болдог. Дараах жишээ нь fetchmail-г 600 секунд бүр шалгахаар тохируулж байна:

    % fetchmail -d 600

fetchmail-ийн тухай дэлгэрэнгүй мэдээллийг http://fetchmail.berlios.de/ хаягаас олж болно.

## 29.13. procmail-г ашиглах нь

procmail хэрэгсэл нь ирж байгаа захидлыг шүүхэд хэрэглэгддэг гайхамшигтай хүчтэй програм юм. Энэ нь хэрэглэгчдэд ирж байгаа захидлуудад тааруулж "дүрмүүдийг" тодорхойлох боломжийг олгодог бөгөөд энэ дүрмүүдийг ашиглан тусгай үйлдлүүд хийх эсвэл захидлыг өөр захидлын хайрцаг ба/эсвэл цахим захидлын хаягууд руу дахин чиглүүлэх зэрэг ажлуудыг хийж болох юм. procmail-г mail/procmail порт ашиглан суулгаж болно. Суулгасны дараа үүнийг MTA-уудтай цуг ажиллахаар тохируулж болно; дэлгэрэнгүй мэдээллийг өөрийн MTA-ийн баримтаас лавлана уу. Мөн procmail-н боломжуудыг ашиглаж байгаа хэрэглэгчийн гэрийн сан дахь .forward файлд дараах мөрийг нэмж өгч болно:

    "|exec /usr/local/bin/procmail || exit 75"

Дараах хэсэг нь procmail-ийн зарим үндсэн дүрмүүдийг үзүүлэх бөгөөд тэдгээрийн юу хийдэг талаар товч тайлбар өгөх болно. Эдгээр дүрмүүд болон бусдууд нь .procmailrc файлд хийгдсэн байх ёстой бөгөөд энэ файл нь хэрэглэгчийн гэрийн санд байрлах ёстой.

Эдгээр дүрмүүдийн ихэнхийг procmailex(5)-ийн гарын авлагын хуудаснаас олж болно.

user@example.com-с ирсэн бүх захидлыг goodmail@example2.com гадаад хаяг уруу дамжуулна:

    :0
    * ^From.*user@example.com
    ! goodmail@example2.com

1000 байтаас бага бүх захидлуудыг goodmail@example2.com гадаад хаяг уруу дамжуулна:

    :0
    * < 1000
    ! goodmail@example2.com

alternate@example.com руу илгээсэн бүх захидлыг alternate гэгдсэн захидлын хайрцагт хийнэ:

    :0
    * ^TOalternate@example.com
    alternate

"Spam" сэдэв бүхий бүх захидлыг /dev/null уруу илгээнэ:

    :0
    ^Subject:.*Spam
    /dev/null

Ирж байгаа `FreeBSD.org` захидлын жагсаалтуудыг шалгаж жагсаалт бүрийг өөрийнх нь захидлын хайрцаг уруу хийдэг, ашигтай зааврыг доор үзүүлэв:

    :0
    * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
    {
    	LISTNAME=${MATCH}
    	:0
    	* LISTNAME??^\/[^@]+
    	FreeBSD-${MATCH}
    }

Last modified on: 2026 оны зургаадугаар сарын 18 by Alexander Ziaee

Prev
Home
Next