Memasang sendmail debian. Menyediakan Sendmail. Menyemak fungsi mel().

Panduan pemasangan dan konfigurasi untuk salah satu yang tertua MTA (Ejen Pemindahan Mel), program untuk menghantar e-mel - hantar surat, yang tersedia untuk pemasangan pada mana-mana sistem pengendalian. Dalam kebanyakan OS, sendmail dipasang secara lalai dan tidak ada keperluan khas untuk menukar MTA standard ini kepada yang lain. Pada masa yang sama, PHP yang sama dikonfigurasikan secara lalai untuk berfungsi dengan MTA ini. Jika menyediakan sendmail mengambil masa yang lama, pasang postfix (), anda tidak sepatutnya membuang banyak masa.

Persediaan

Semak sama ada anda telah memasang sendmail dan bukan Exim4 atau MTA lain:

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

Pemasangan

sudo apt-get install sendmail sasl2-bin

Mengkonfigurasi /etc/hosts

127.0.0.1 localhost localhost.localdomain e5530
Catatan

Anda mesti menentukan hos utama anda (nama komputer, saya ialah e5530) dan localhost.localdomain jika tidak, anda akan menerima ralat: Nama hos saya yang tidak layak (nama hos saya) tidak diketahui; sleeping for retry" dan "tidak dapat melayakkan nama domain saya sendiri (e5530) – menggunakan nama pendek, hantar surat Ia mengambil masa yang lama untuk memulakan dan menghantar mel perlahan-lahan. Mungkin menjadi tuan rumah localhost.localdomain Boleh terlepas, tidak pasti.

Selepas ini, anda perlu menentukan nama hos tempatan dari mana hantar surat akan menerima permintaan untuk menghantar mesej e-mel, dalam fail /etc/mail/local-host-names:

AuthInfo:smtp.gmail.com "U: [e-mel dilindungi]" "Saya: [e-mel dilindungi]" "P:YourPass" "M:PLAIN" AuthInfo:smtp.gmail.com:465 "U: [e-mel dilindungi]" "Saya: [e-mel dilindungi]" "P:YourPass" "M:PLAIN"

Catatan

Daripada port 465, anda boleh mencuba pada 587 (jika anda menghadapi masalah dengan kebenaran):

AuthInfo:smtp.gmail.com:587 "U: [e-mel dilindungi]" "Saya: [e-mel dilindungi]" "P:YourPass" "M:PLAIN"

Chmod 600 /etc/mail/auth/*

Konfigurasikan sendmail.mc

Fail konfigurasi /etc/mail/sendmail.mc. Bandingkan konfigurasi anda. Sepatutnya macam ni... Susunan arahan tu penting!

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

Menggunakan konfigurasi sendmail

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

Masalah dan penyelesaian

Jika semuanya dikonfigurasikan dengan betul tetapi mesej berakhir dalam "baris gilir tertunda" dan tidak dihantar ke SMTP lain:

  1. Semak IP anda dalam senarai hitam. Anda boleh menyemak larangan IP di sini smart-ip.net, IP saya dimasukkan ke dalam pangkalan data spamhaus.
  2. Semak sama ada pembekal anda menyekat paket keluar pada port 25.
Masalah dengan Intertelecom!

Saya tidak pernah dapat menyediakan penyampaian mesej kepada GMail melalui sendmail pada sambungan Intertelecom - sendmail berdegil mengetuk port 25, yang ditutup oleh pembekal. Saya terpaksa mengkonfigurasi postfix.

Persediaan PHP (jika perlu)

Tentukan parameter pelancaran sendmail dalam konfigurasi /etc/php5/apache2/php.ini (/etc/php5/cli/php.ini):

## Mengkonfigurasi sendmail untuk PHP: sendmail_path = /usr/sbin/sendmail -t ;sendmail_path = "/usr/sbin/sendmail -t -f [e-mel dilindungi]-saya"

Mari semak tetapan

echo "Teks mesej" | mail -s "Subjet" [e-mel dilindungi] sendmail -t [e-mel dilindungi]-f [e-mel dilindungi]-v -i< ~/mail-body.txt

Untuk menguji postfix, cuba hantar beberapa mesej daripada konsol. Saya menerangkan cara melakukan ini dalam artikel ini: "".

Pengurusan Sendmail

Lihat keseluruhan baris gilir mesej:

Sudo mailq

Lihat baris gilir mesej pada alamat tertentu:

Sudo mailq | grep" [e-mel dilindungi]" | wc -l

Kosongkan keseluruhan baris gilir mesej sendmail:

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

Kosongkan baris gilir mesej hantar mel mengikut destinasi:

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

#sendmail, #LAMP, #MTA

P.S. Jika anda ingin mempelajari konsol Linux pada tahap yang agak baik, saya cadangkan membaca buku terbaru Denis Kolisnichenko “ Barisan arahan Linux dan automasi tugas rutin».

Ia muncul pada tahun 1983, tetapi masih aktif digunakan sehingga hari ini. Antara ciri utamanya ialah ia disokong oleh banyak platform yang wujud hari ini dan juga percuma. Aplikasi ini dilengkapi dengan perisian sumber terbuka. Ini bermakna sesiapa sahaja boleh menambah fungsi mereka sendiri padanya, atau mengubahnya sesuka hati. Dalam sistem pengendalian Ubuntu, Sendmail, yang dikonfigurasikan menggunakan baris arahan Linux, telah berakar umbi kerana sokongan yang baik dan keupayaan yang kaya.

Pemproses mesej – Sendmail – telah meluas dalam bidang perniagaan.

Hari ini, "pemproses mesej" Sendmail Sentrion, yang dicipta dengan mengambil kira keperluan syarikat besar, adalah perkara biasa. Ciri tersendirinya ialah prestasi tinggi dan integrasi yang baik dengan semua proses perniagaan. Sentrion menawarkan, bersama-sama dengan teknologi baharu, penggunaan aplikasi warisan yang telah berakar umbi dengan baik. Aplikasi ini juga cukup mesra untuk disesuaikan dengan pengguna rumah.

Pemasangan program

Anda perlu memasang Sandmail pada pelayan tempatan atau pelayan web. Dalam kes kedua, ejen mel akan lebih berfungsi. Untuk mendapatkan semua komponen pelayan web, anda memerlukan timbunan komponen LAMP. Ia boleh didapati dalam repositori.

PENTING. Sebelum memasang perisian baharu, pastikan anda mengemas kini senarai pakej dalam repositori tempatan anda menggunakan arahan

"$ sudo apt-get kemas kini"

Pemasangan Sandmail bermula dengan arahan "sudo apt install sendmail", yang akan memuat turun pakej ejen mel.

"mcedit /etc/hosts"
"sudo sendmailconfig"

Selepas ini, anda perlu memulakan semula perkhidmatan program itu sendiri, serta pelayan web Apache:

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

Jika perlu, anda boleh memasang utiliti untuk bekerja dengan mel:

"sudo pasang mailutils"

Kami menyemak kefungsian keseluruhan sistem:

"mail your_mail< /dev/null»

dengan "mel_anda" ialah alamat pos semasa.

Dan akhirnya, mari kita semak fail log. Ini ialah fail perkhidmatan mel di mana ralat pemasangan akan dipaparkan:

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

Yang tinggal hanyalah pergi ke peti masuk e-mel anda. Ia sepatutnya sudah mengandungi mesej ujian.

Jadi, anda telah mengetahui lebih lanjut tentang program untuk Ubuntu yang dipanggil Sendmail, yang ternyata tidak begitu sukar untuk disediakan. Jika anda mempunyai soalan tentang aspek lain bekerja dengan program untuk Linux, cari jawapan kepada mereka di halaman tapak web kami!

Buku ini membincangkan secara terperinci tetapan perkhidmatan rangkaian yang membolehkan anda membuat pelayan dengan konfigurasi dan fungsi yang diperlukan berdasarkan OS Linux. Anda boleh mengkonfigurasi sebarang jenis pelayan: daripada pelayan rangkaian tempatan ke pelayan Internet dan pelayan akses jauh. Pentadbiran Linux diterangkan secara terperinci.

Pembentangan bahan adalah berdasarkan pengedaran Red Hat dan Mandrake. Banyak maklumat unik: menjalankan permainan Windows di bawah Linux dan mencipta pelayan Linux untuk bilik permainan, menyediakan antivirus Dr. Web dan AVP untuk Linux, program perakaunan trafik MRTG, keselamatan dan sistem pengesanan serangan LIDS, dan banyak lagi. Perhatian khusus diberikan kepada keselamatan pelayan Linux. OS Linux itu sendiri diterangkan dengan terperinci yang mencukupi dan buku rujukan arahannya disediakan. Selepas membaca buku, anda akan menjadi arif tentang mengkonfigurasi dan menyusun kernel, mencipta pakej rpm anda sendiri, jurubahasa arahan bash dan menggunakan tatasusunan RAID. Anda akan mengenali dunia dalaman Linux. Buku ini sesuai untuk pentadbir profesional dan pemula, kerana pembentangan bahan bermula dengan memasang OS Linux, dan bab pertama menerangkan teknologi dan protokol rangkaian asas (Kursus Pentadbir Muda).

Semua penyenaraian yang diberikan dalam buku telah diuji dalam amalan dan diletakkan pada CD yang dilampirkan. Selain itu, ia mengandungi banyak maklumat rujukan (HOWTO, RFC), serta artikel di Linux. Terdapat satu set yang kaya dengan utiliti dan perisian tambahan untuk pelayan (Apache, MySQL, MRTG, dll.).

Buku:

Jika anda menggunakan pengedaran yang serasi dengan RedHat, anda perlu memasang pakej yang sesuai. Saya menggunakan sendmaiI-8.11.0 dan imap-4.7c2. Versi terkini sendmail boleh dimuat turun dari Internet di http://www.sendmail.org.

Sebelum anda mula menyediakan sendmail, anda perlu mengkonfigurasi DNS dengan betul. Menyediakan pelayan DNS telah dibincangkan secara terperinci dalam Bab. 10. Jika anda menyediakan pelayan mel sahaja, anda tidak perlu menyediakan pelayan DNS pada komputer yang sama. Ia akan mencukupi untuk menentukan pelayan DNS rangkaian anda dalam fail /etc/resolv.conf untuk sistem peleraian nama berfungsi dengan betul. Walau bagaimanapun, sendmail boleh dikonfigurasikan untuk berfungsi tanpa menggunakan DNS, tetapi saya tidak akan mempertimbangkan pilihan ini.

Untuk mula menyediakan sendmail asas, jalankan utiliti netconf (lihat Rajah 13.1). Ia berfungsi baik dari X-Window dan dari konsol. Utiliti netconf tersedia dalam RedHat Linux, Mandrake, ASPLinux dan pengedaran lain; ia pastinya bukan dalam KSI Linux. Sememangnya, anda mesti log masuk sebagai root. Jika anda tidak mempunyai netconf, anda akan berpeluang mengedit fail /etc/sendmail.cf dengan tangan. Dalam fail ini semua tetapan sendmail disimpan.


Rajah. 13.1. konfigurasi netconf

Pilih Sistem penghantaran mel daripada menu, kemudian konfigurasi hantar mel asas. Dalam medan Bentangkan sistem anda sebagai, hanya masukkan nama domain anda. Kemudian pastikan anda menandai kotak pilihan “Terima e-mel untuk domain_anda.com” (lihat Rajah 13.2). Jika anda tidak melakukan ini, mesej mungkin dialihkan melalui pelayan anda ke pelayan lain. Pada masa yang sama, trafik tambahan akan mengalir melalui pelayan anda, yang tidak berguna untuk anda. Suatu ketika dahulu juga terdapat serangan penafian jenis ini melalui e-mel. Prinsipnya adalah seperti berikut: surat dihantar daripada pengguna yang tidak wujud [e-mel dilindungi] pengguna lain yang tidak wujud [e-mel dilindungi]. Surat itu dihantar melalui komputer hoskom, yang membolehkan anda mengubah hala mesej (mod "Terima e-mel untuk domain.com" tidak didayakan). Pelayan mel domain B.com menghantar mesej ke alamat [e-mel dilindungi] bahawa pengguna [e-mel dilindungi] tidak wujud. Sebaliknya, pengirim domain A.com melaporkan bahawa pengguna [e-mel dilindungi] juga tidak wujud dan menghantar mesej ke alamat [e-mel dilindungi]. Rekursi tidak langsung berlaku. Sekarang bayangkan bahawa terdapat bukan hanya satu mesej sedemikian, tetapi, katakan, 100 dan jumlah setiap satu sekurang-kurangnya 1 MB! Akibatnya, salah satu pelayan dalam rantaian domain1.com - hos.com - domain2.com sepatutnya "jatuh".


nasi. 13.2. Konfigurasi sendmail asas

Saya minta maaf, saya keluar sedikit daripada topik, mari kita teruskan konfigurasi sendmail. Tetapkan protokol penghantaran mesej kepada smtp (Protokol gerbang mel).

Maklumat ini sudah cukup memadai untuk mel hantar anda berfungsi. Anda boleh menetapkan pilihan sendmail tambahan menggunakan netconf.

Sekarang buat sendmail terima mel hanya dari alamat yang dibenarkan. Untuk melakukan ini, anda tidak perlu mengkonfigurasi sendmail sendiri - anda hanya perlu mengedit fail /etc/hosts.allow dan /etc/hosts.deny. Yang pertama mengandungi senarai hos yang dibenarkan akses kepada mesin ini, dan yang kedua mengandungi senarai hos yang dinafikan. Sila ambil perhatian: walaupun namanya - "dibenarkan" atau "ditolak", sekatan yang ditetapkan oleh fail pertama adalah lebih ketat. Contohnya, untuk menolak akses kepada semua hos kecuali komputer pada rangkaian anda, tambahkan baris: 192.168.1 pada fail /etc/hosts.allow.

Ini bermakna rangkaian mempunyai alamat 192.168.1.0 dan topeng 255.255.255.0. Anda boleh membaca lebih lanjut tentang format fail hos.allow dan hos.deny dengan memasukkan arahan man hos.allow.

Kini giliran POP3. Selepas memasang pakej imap, anda mempunyai hampir segala-galanya dikonfigurasikan, i.e. Saya ingin mengatakan bahawa anda sudah boleh menyemak konfigurasi. Mulakan semula daemon inetd atau xinetd, bergantung pada daemon yang anda gunakan, dan masukkan yang berikut:

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

Anda sepatutnya melihat sesuatu seperti ini sebagai tindak balas:

Mencuba 192.168.1.1. . .
Disambungkan ke 192.168.1.1
Watak melarikan diri adalah
220 de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 Ahad, 17 Jun
2001 10:54:22 +300

Ini bermakna sendmail berfungsi, yang tinggal hanyalah menyemak sejauh mana ia melakukannya dengan betul. Untuk melakukan ini, masukkan sesuatu seperti berikut:

mel daripada: [e-mel dilindungi]
220 2.1.0 [e-mel dilindungi]…. Pengirim Ok
rcpt kepada: [e-mel dilindungi]
220 2.1.5 [e-mel dilindungi]…. Penerima Ok

Selepas itu, masukkan arahan data, kemudian teks mesej, dan untuk menamatkan entri, letakkan titik dalam baris kosong. Sendmail akan melaporkan bahawa mesej telah dihantar (lebih tepat, diletakkan dalam baris gilir untuk penghantaran). Rekod [e-mel dilindungi]- nama pengguna yang anda hantar mel. Pengguna mesti benar-benar wujud. Entri den.dhsilabs.com ialah nama pengirim anda.

Catatan. Nama [e-mel dilindungi] dan dhsilabs.com diberikan sebagai contoh. Anda mesti menentukan nilai anda sebaliknya.

Sila ambil perhatian bahawa nod my.host.com tidak wujud secara semula jadi, dan program sendmail melaporkan bahawa "Penghantar Ok". Itulah sebabnya adalah lebih baik untuk mendayakan pilihan Tunggu DNS dalam tetapan sendmail.

Kini anda perlu melancarkan beberapa klien e-mel, contohnya kmail, dan menerima mel. Gunakan tetapan rangkaian berikut dalam kmail: Rangkaian? Menghantar mel, tetapkan SMTP, port 25, nama pelayan - nama pengirim anda, dalam contoh ini ia adalah den.dhsilabs.com. Kemudian tambahkan akaun untuk POP3:

Nama pengguna - den

Kata laluan - kata laluan yang digunakan untuk log masuk ke dalam sistem.

Pelayan - den.dhsilabs.com

Akibatnya, anda akan menerima mesej yang anda masukkan selepas data. Ini boleh menyebabkan masalah dengan peleraian nama. Untuk mengelakkannya, anda perlu mengkonfigurasi DNS dengan betul atau menggunakan alamat IPnya dan bukannya nama pelayan mel. Apabila menambah pengguna baharu, pastikan anda menetapkan kata laluan log masuk mereka. Jika anda tidak melakukan ini dan cuba menerima mel tanpa menyatakan kata laluan, anda akan menerima mesej "Pengesahan gagal."

Persediaan asas sendmail adalah sangat mudah menggunakan configurator, tetapi kadangkala persediaan asas tidak mencukupi. Untuk tetapan yang lebih tepat, anda perlu membiasakan diri dengan fail konfigurasi program sendmail.

Catatan. Dalam kebanyakan kes, anda akan berpuas hati dengan persediaan asas sehingga pengirim spam membawa anda di bawah "perlindungan" mereka - maka anda perlu membaca Bab. 23 tentang kaedah anti-spam. Walau bagaimanapun, salah satu undang-undang Murphy mungkin akan dimainkan - konfigurator sendmail tidak akan dibangunkan untuk sistem anda dan kemudian anda masih perlu berurusan dengan fail konfigurasi.

Fail konfigurasi sendmail utama ialah /etc/sendmail.cf. Pada sesetengah pengedaran, fail ini terletak dalam direktori /etc/mail. Fail ini dikatakan lebih panjang daripada limosin Bill Gates dan ia disunting dalam mod "mata takut, tangan sedang melakukan". Jika anda tidak percaya saya, buka fail ini dan anda akan lihat sendiri. Hanya pentadbir profesional atau pembangun program sendmail boleh mengedit fail ini secara manual.

Biasanya pemproses makro m4 digunakan untuk mengedit fail ini. Mula-mula anda sediakan fail mc khas. Fail ini mengandungi tetapan .sendmail, tetapi dalam bentuk yang lebih "boleh dibaca". Apabila mengedit fail konfigurasi, saiznya turut mempengaruhi. Sebagai perbandingan: saiz fail mc saya ialah 2459 bait, dan saiz fail sendmail.cf ialah 46302 bait. Satu perkara untuk mengedit fail dua kilobait, tetapi agak lain jika saiz fail ialah 46 kilobait. Tidak seperti fail konfigurasi sendmail, anda akan segera memahami kegunaan fail mc tertentu. Kemudian, selepas mengedit fail mc, anda perlu menjalankan pemproses makro m4 untuk mencipta fail konfigurasi sendmail:

m4 my_config.mc > /etc/sendmail.cf

Sebelum menjalankan arahan ini, saya sangat mengesyorkan menyimpan fail sendmail.cf asal di suatu tempat. Sekiranya tetapan yang salah, anda sentiasa boleh memulihkannya.

Fail konfigurasi lalai, yang digunakan oleh pemproses makro T4 untuk mencipta fail konfigurasi program sendmail (sendmail.cf), terletak dalam direktori /usr/share/sendmail-cf/cf. Dalam versi sendmail yang lebih lama, ia mungkin terdapat dalam direktori /usr/lib/sendmail.

Biasanya fail ini dipanggil sendmail.mc. Kadangkala ia boleh dipanggil sesuatu yang lain, seperti redhat.mc jika anda menggunakan Red Hat atau sistem pengendalian yang serasi.

Contoh fail standard /usr/share/sendmail-cf/cf/redhat.mc ditunjukkan dalam Penyenaraian 13.1.

Penyenaraian 13.1. Fail redhat.mc standard

melencong(-1)
dnl Ini ialah fail konfigurasi makro sendmail. Jika anda membuat perubahan pada fail ini,
dnl anda memerlukan sendmail-cf rpm dipasang dan kemudian perlu menjana a
dnl new /etc/sendmail.cf dengan menjalankan arahan berikut: dnl
dnl m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl
sertakan("../m4/cf.m4")
VERSIONID("persediaan linux untuk Red Hat Linux")dnl
OSTYPE("linux")
define("confDEF_USER_ID","8:12") dnl
undefine("UUCP_RELAY")dnl
undefine("BITNET_RELAY")dnl
define("confAUTO_REBUILD")dnl
define("confTO_CONNECT", "1m")dnl
define("confTRY_NULL_MX_LIST",true)dnl
define("confDONT_PROBE_INTERFACES",true)dnl
define("PROCMAIL_MAILER_PATH", "/usr/bin/procmail")dnl
define("ALIAS_FILE", "/eto/aliases")dnl
dnl define("STATUS_FILE", "/etc/mail/statistics")dnl
define("UUCP_MAILER_MAX", "2000000")dnl
define("conf USERDB_SPEC", "/etc/mail/userdb.db")dnl
define("confPRIVACY_FLAGS", "authwarnings,novrfy,noexpn,restrictqrun")dnl
define("confAUTH_OPTIONS", "A")dnl
dnl TRUST_AUTH_MECH("DIGEST-MD5 CRAM-MD5 LOGIN PLAIN") dnl
dnl define("confAUTH_MECHANISMS", "DIGEST-MD5 CRAM-MD5 LOGIN PLAIN")dnl
dnl define("confTO_QUEUEWARN", "4j")dnl
dnl define("confTO_QUEUERETURN", "5d")dnl
dnl define("confQUEUE_LA", "12") dnl
dnl define("confREFUSE_LA", "18")dnl
dnl CIRI(delay_checks)dnl
CIRI("no_default_msa", "dnl")dnl
CIRI("smrsh",Vusr/sbin/smrsh")dnl
CIRI("mailertable", "hash-o /etc/mail/mailertable.db")dnl
CIRI("virtusertable", "hash –o /etc/mail/virtusertable.db")dnl
CIRI(lencong)dnl
CIRI(sentiasa_tambah_domain)dnl
CIRI(use_cw_file)dnl
CIRI(use_ct_file)dnl
CIRI(local_procmail, "", "procmail –t –Y –a $h –d $u")dnl
CIRI("access_db","hash –o /etc/mail/access.db")dnl
FEATURE("blacklist_recipients")dnl
EXPOSED_USER("root") dnl
dnl Ini menukar sendmail kepada hanya mendengar pada peranti gelung balik 127.0.0.1
dnl dan bukan pada mana-mana peranti rangkaian lain. Komen ini jika anda mahu
dnl untuk menerima e-mel melalui rangkaian.
DAEMON_OPTIONS("Port=smtp,Addr=127.0.0.1, Name=MTA")
dnl NOTA: mengikat kedua-dua IPv4 dan IPv6 daemon ke port yang sama memerlukan
dnl tampalan kernel
dnl DAEMON_OPTIONS (xport=smtp,Addr=::1, Name=MTA-v6, Family=inet6")
dnl Kami amat mengesyorkan untuk mengulas yang ini jika anda ingin melindungi
dnl diri anda daripada spam. Walau bagaimanapun, komputer riba dan pengguna pada komputer yang
adakah dnl tidak mempunyai DNS 24x7 memerlukan ini.
FEATURE("accept_unresolvable_domains")dnl
dnl CIRI("relay_based_on_MX")dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Cwlocalhost.localdomain

Menggunakan arahan FEATURE, anda boleh mendayakan satu atau satu lagi fungsi program sendmail. Sebagai contoh, fungsi boleh mel direka bentuk untuk mengatasi penghalaan untuk domain tertentu. Anda boleh mengembangkan kefungsian program sendmail dengan mudah dengan menambahkan fungsi yang anda perlukan pada fail mc.

Katakan anda mahu nama komputer dalam domain disembunyikan. Ini mudah dicapai dengan menambahkan fungsi masquerade_envelope pada fail mc anda. Untuk melakukan ini, salin fail redhat.mc ke fail hide_hosts.me dan tambah baris berikut pada penghujung fail hide_hosts.me:

MASQUERADE_AS(domain-saya.ru)dnl
CIRI(masquerade_envelope)dnl

Kemudian jalankan arahan:

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

Itu sahaja! Nama nod akan disembunyikan. Penerangan mengenai fungsi lain dibentangkan dalam jadual. 13.1.

Fungsi program sendmail Jadual 13.1

Fungsi Penerangan
akses_db Mentakrifkan jadual akses. Jadual ini menyenaraikan hos yang dibenarkan atau disekat daripada menghantar mel melalui pelayan mel anda. Pilihan ini digunakan dengan berkesan untuk memerangi spam. Perlindungan spam dibincangkan secara terperinci dalam bahagian dengan nama yang sama dalam Bab. 23
accept_unresolvable_domains Membenarkan menghantar mel ke domain yang tidak dapat dikenali
bestmx_is-local Mesej hanya akan diterima jika entri pelayan DNS MX menghala ke pelayan mel ini
senarai hitam_penerima "Senarai hitam". Pilihan lain untuk memerangi spam. Pilihan access_db diperlukan untuk berfungsi.
dnsbl Digunakan untuk senarai hitam, dnsbl adalah singkatan dari DNS Black List. Dalam versi terdahulu pilihan ini dipanggil (Selesaikan Senarai Hitam)
domaintable Digunakan untuk menyelesaikan nama domain
boleh generik Digunakan untuk menukar alamat penghantaran dalam mesej
local_procmail Menentukan bahawa mel harus dihantar menggunakan utiliti procmail tempatan
boleh dihantar Mengatasi penghalaan untuk domain tertentu
menyamar_seluruh_domain Digunakan untuk menutup (menyembunyikan) keseluruhan domain. Fungsi ini mesti digunakan bersama dengan arahan MASQUERADE AS (atau MASQUERADE_DOMAIN), sebagai contoh, MASQUERADE_AS(f117.ru)dnl
sampul_penyamaran Membolehkan anda menyembunyikan nama hos domain. Menggantikan yang diterima daripada medan pengepala mesej sebelum menghantar mesej kepada orang lain
ubah hala Digunakan untuk mengubah hala ke pelayan mel lain. Bermakna keengganan untuk menerima mel dengan mesej sila cuba
(cuba guna alamat ini)
relay_based_on_MX Membenarkan ubah hala mel (relay) hanya untuk hos yang dinyatakan dalam rekod pelayan DNS MX
geganti_hos_sahaja Membenarkan penyampaian hanya untuk nod yang ditentukan dalam access_db
relay_mail_daripada Membenarkan penyampaian hanya jika pengirim disenaraikan dalam senarai RELAY bagi pangkalan data accessdb
smrsh Menggunakan shell sendmail terhad
use_cf_file Apabila fungsi ini ditentukan, sendmail akan melihat dalam fail sendmail.cf untuk senarai pengguna yang dipercayai
use_cw_file Apabila fungsi ini ditentukan, sendmail akan melihat dalam fail sendmail.cw untuk senarai hos tempatan
virtusertable Menukar alamat penerima kepada alamat pengguna setempat

Fail /etc/mail/sendmail.cw menyenaraikan semua alias untuk pelayan mel yang diberikan. Mari kita anggap bahawa nama pelayan anda ialah mail.dhsilabs.ru. Jika pengirim menghantar mel ke alamat [e-mel dilindungi], surat tersebut akan dihantar kepada pengguna tanpa sebarang masalah. Dan jika seseorang menghantar surat ke alamat [e-mel dilindungi], maka penghantarannya akan menyebabkan kesukaran tertentu, kerana tidak jelas ke nod domain dhsilabs yang mana mesej itu ditujukan? Untuk menyelesaikan masalah ini, anda perlu meletakkan baris dalam fail sendmail.cw.

Pertama, sedikit penyelewengan

SMTP - Protokol Pemindahan Mel Mudah - perkhidmatan dalam rangkaian TCP/IP untuk memindahkan mesej (iaitu mel). Biasanya port 25 digunakan untuk SMTP (lihat fail /etc/services)

POP - Protokol Pejabat Pos - digunakan untuk menerima mel daripada pelayan. Port lalai ialah 110 (untuk protokol POP3)

Sekarang saya akan cuba menerangkan cara menyediakan pelayan mel kecil menggunakan POP3 dan SMTP

Mula-mula, mari pasang perisian yang diperlukan. Kami memerlukan sendmail dan imap. Jika anda menggunakan versi Linux yang serasi dengan RH, anda perlu memasang pakej yang sesuai.
saya guna
sendmail-8.11.0
imap-4.7c2

Sebelum anda mula menyediakan sendmail, anda perlu mengkonfigurasi DNS dengan betul, jika tidak, program ini tidak akan berfungsi dengan betul (walaupun anda boleh mengkonfigurasi sendmail untuk berfungsi tanpa menggunakan DNS).

Mari kita lakukan beberapa persediaan asas sendmail. Untuk melakukan ini, anda perlu menjalankan utiliti
netconf. Ia berfungsi dari X dan dari konsol.
Utiliti netconf tersedia dalam RH, Mandrake - Saya tidak tahu pasti tentang versi lain. (ia tidak tersedia dalam KSI Linux). Sememangnya, anda mesti log masuk sebagai root.

Pilih daripada menu Sistem Penghantaran Surat, kemudian Konfigurasi mel hantar asas
Dalam medan Bentangkan sistem anda sebagai, hanya masukkan nama domain anda
Kemudian tandakan kotak Terima e-mel untuk...
Tetapkan protokol penghantaran mesej kepada smtp ( Protokol gerbang mel)

Maklumat ini sudah cukup memadai untuk mel hantar anda berfungsi.
Anda boleh menetapkan pilihan program sendmail tambahan menggunakan
netconf. Jika anda tidak mempunyai sendmail, anda akan mendapat yang tidak dapat dilupakan
keseronokan mengedit fail /etc/sendmail.cf secara manual - di dalamnya
tetapan disimpan) :)

Sekarang mari buat sendmail menerima mel hanya daripada yang dibenarkan
alamat. Untuk melakukan ini, anda tidak perlu mengkonfigurasi sendmail sendiri - anda hanya perlu
edit fail /etc/hosts.allow dan /etc/hosts.deny
Yang pertama daripada mereka mengandungi senarai hos yang dibenarkan akses kepada ini
kereta, dan dalam kedua - dilarang. Sila ambil perhatian: walaupun namanya
(dibenarkan|ditolak), sekatan yang ditetapkan oleh fail pertama
jauh lebih ketat.

Contoh. Untuk menafikan akses kepada semua hos kecuali komputer anda
rangkaian menambah baris ke fail /etc/hosts.allow
"192.168.1.
Ini bermakna rangkaian mempunyai alamat 192.168.1.0 dan topeng 255.255.255.0
Anda boleh membaca lebih lanjut mengenai format fail hos.allow dan hos.deny,
dengan memasukkan arahan man /etc/hosts.allow

Untuk menerima mel hanya daripada domain "anda", anda perlu menambahnya
mc (biasanya /etc/mail/sendmail.mc) baris berikut (gunakan
tab, bukan ruang)
LOCAL_CONFIG
FR-o /etc/sendmail.cR

LOCAL_RULESETS
Scheck_rcpt
# apa-apa yang ditamatkan secara tempatan adalah ok
R< $+ @ $=w >$@OK
R< $+ @ $=R >$@OK

# apa-apa yang berasal dari tempatan adalah ok
R$* $: $(nyahkan "" $&(nama_pelanggan) $)
R$=w $@ OK
R$=R$@ OK
R$@ $@ OK

# apa-apa lagi adalah palsu
R$* $#error$: "Penyampaian 550 Ditolak"

Sekarang buat fail /etc/sendmail.cR dan masukkan nama domain “anda” ke dalamnya -
satu pada setiap baris.
Hanya domain ini akan membenarkan pengirim mel menerima mel - orang lain akan menerima
mesej 550 Menyampaikan Ditolak

Kini giliran POP3. Selepas memasang pakej imap yang anda ada hampir
segala-galanya disediakan, i.e. Saya ingin mengatakan bahawa anda sudah boleh menyemak konfigurasi.

Mula-mula, mulakan semula daemon inetd
Selepas memulakan semula, perkhidmatan sendmail dan popd akan diaktifkan (lebih tepat
satu sendmail, dan popd dipanggil mengikut keperluan)

Cuba yang berikut:
masuk telnet<имя_только_созданного_почтовика> 25
Anda sepatutnya melihat sesuatu seperti ini:
Mencuba 192.168.1.1 ...
Disambungkan ke 192.168.1.1
Watak melarikan diri ialah "^]"
220 de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 Ahad, 17 Jun 2001 10:54:22 +300

Ini bermakna sendmail berfungsi, yang tinggal hanyalah menyemak sejauh mana ia adalah betul :)

Masuk
mel daripada: [e-mel dilindungi]
220 2.1.0 [e-mel dilindungi].... Penghantar Ok
rcpt kepada: [e-mel dilindungi]
220 2.1.5 [e-mel dilindungi].... Penerima Ok
Sekarang masukkan data, kemudian teks mesej, untuk menamatkan entri kita letakkan titik
pada baris kosong

Sendmail akan melaporkan bahawa mesej telah dihantar (lebih tepat, diletakkan di
beratur untuk berlepas)

[e-mel dilindungi]-nama pengguna yang saya hantar mel.
den.dhsilabs.com - nama pengirim saya
Sila ambil perhatian bahawa nod my.host.com tidak wujud secara semula jadi, tetapi Pengirim Ok.
Itulah sebabnya adalah lebih baik untuk mendayakan pilihan Tunggu DNS dalam tetapan sendmail

Sekarang anda perlu melancarkan beberapa klien e-mel contohnya kmail
dan mengambil mel.
Tetapan rangkaian dalam kmail
Rangkaian -> Set penghantaran mel SMTP, port 25, nama pelayan -
nama pengirim anda,
Saya ada - den.dhsilabs.com

Kemudian tambah akaun untuk POP3
Log - den
Kata laluan - kata laluan yang digunakan untuk log masuk ke sistem
Pelayan - den.dhsilabs.com
Pelabuhan - 110

Anda sepatutnya menerima mesej yang anda masukkan selepas data.

Ia tidak mungkin anda perlukan pelayan web yang tidak boleh menghantar mel dari tapak anda. Di bawah ialah cara mudah untuk menggunakan dengan cepat hantar surat sebagai MTA (Mail Transfer Agent) yang menghantar mel untuk tapak tersebut.

Untuk mula pemasangan

Sudo apt-get install sendmail

Perkara kedua dan paling penting ialah konfigurasi hos itu sendiri yang betul. Pengirim surat perlu mengetahui dengan jelas nama DNS FQDN yang dimiliki oleh hos dan ia wujud di web seluruh dunia.

Mari kita andaikan bahawa pelayan di mana sendmail berfungsi mempunyai alamat IP 123.123.123.123

Kami juga mempunyai nama domain domainame.com, yang diwakilkan dengan betul kepada alamat IP pelayan.

Mengedit fail /etc/hosts supaya pelayan itu sendiri mengetahui nama DNSnya (secara semula jadi, ia mesti betul dan nyata)

Sudo nano -w /etc/hosts

Baris kedua yang perlu ditambah ialah perihalan nama domain pelayan, perbandingannya dengan alamat IP sebenar hos dan nama sistem dalaman:

127.0.0.1 localhost 123.123.123.123 box1.nama domain.com pelayan-web anda

Kemudian anda perlu membuat perubahan pada fail /etc/nama hos

Sudo nano -w /etc/hostname

Dan masukkan di sana nama pelayan yang betul, yang telah dimasukkan /etc/hosts dalam contoh kami, ini ialah pelayan-web anda.

Kandungan fail /etc/hostname selepas mengedit:

Pelayan-web anda

Selepas langkah ini, anda perlu memulakan semula pelayan atau lakukan:

/etc/init.d/hostname restart Dan jalankan 2 arahan: nama hos nama hos -f

Jika semuanya betul, sistem harus menghasilkan nama yang sama dalam kedua-dua kes: pelayan-web anda

saya nasihatkan semak penghantaran surat Justeru

# telnet localhost smtp memberi kami: Mencuba::1... Mencuba 127.0.0.1... Disambungkan ke localhost. Watak melarikan diri ialah "^]". 220 localhost6.localdomain6 ESMTP Sendmail 8.14.3/8.14.3/Debian-9.2ubuntu1; Kha, 9 Dis 2010 15:31:17 +0200; (Tiada akses pengelogan UCE/UBE) daripada: localhost.localdomain(OK)- localhost.localdomain masukkan: HELO localhost memberi kami: 250 localhost6.localdomain6 Hello localhost.localdomain , gembira bertemu anda masukkan: MEL DARI: [e-mel dilindungi] memberi kami: 250 2.1.0 [e-mel dilindungi]... Pengirim ok masukkan: RCPT KE: [e-mel dilindungi] memberi kita: 250 2.1.5 [e-mel dilindungi]... Penerima ok masukkan: DATA memberi kami: 354 Masukkan mel, akhiri dengan "." pada baris dengan sendirinya masukkan mesej ujian. Saya harap anda meneka bahawa e-mel di atas sepatutnya digantikan dengan yang terakhir anda yang Telnet tulis kepada kami 250 2.0.0 oB9DVHsE004837 Mesej diterima untuk penghantaran

Hasil daripada melaksanakan urutan arahan kepada e-mel yang ditentukan ( [e-mel dilindungi]) mesej ("mesej ujian") sepatutnya tiba.

Menyediakan php.ini

gedit/etc/php5/apache2/php.ini

Cari dan edit baris seterusnya

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

Menyemak fungsi mel().

bergema mel(" [e-mel dilindungi]","mesej ujian", "mesej ujian","Dari: [e-mel dilindungi]"); ?>

Persediaan telah selesai, saya harap ia berfungsi untuk anda konfigurasi Sendmail pada Ubuntu