Bir e-posta sunucusunu nasıl kurarım?


59

VPS’im Ubuntu’yu çalıştırıyor ve alan adıma e-posta gönderebilmek istiyorum.

Bunu yapmak için bir posta sunucusunu nasıl kolayca kurarım?


3
Harika bir soru, harika bir cevap bekliyorum. Yıllar boyunca birkaç posta sunucusu oluşturdum ve bu hiç bu kadar kolay olmamıştı. Çok fazla karar: ne SMS sunucusu, ne IMAP / POP, postaları nasıl saklayacağım, kullanıcıları nasıl saklayacağım ... Kolayca cevap veremiyorum .
Javier Rivera

Yanıtlar:


48

Üretim makinalarımıza postalarımı böyle ayarlıyorum. İhtiyacımız olan kriterler şunlardır:

  • E-posta hesapları
  • Email Aliases (İleticiler)
  • IMAP, POP3 ve SMTP

"Kolay" (tl; dr)

İlk önce, en kolay çözüm olarak görünenleri ele almak istiyorum .

sudo tasksel install mail-server

Bu çalıştığımızda bununla çeşitli sorunlar oluştu: Öncelikle çoğu için gayet Dovecot, yükler, ama biz iki iyi olması Kurye sayılır ettik bizim ihtiyaçlarımız. İkincisi, harika olan Postfix'i kullanıyor ancak daha güçlü bir MTA / SMTP sunucusu olduğu için Exim'e de ihtiyacımız var. Üçüncüsü, MySQL'i kurar - kullandığım konfigürasyonda, konfigürasyon için daha az kırılma noktası olan düz dosyaları tercih ederiz. MySQL bilinmeyen bir nedenden ötürü çökerse ne olacağını düşünün. Aksi halde, paketlerin geri kalanı oldukça küçüktür ve küçük bir posta hizmeti için bakımı kolaydır (toplam 1-2 e-posta alanını düşünün).

Bizim yapılandırma

Dizin yapısı

Normal konfigürasyonların yolunun biraz dışına çıktık ama yönetimi daha kolay hale getiriyor.

Bizim posta tamamı saklanır /var/mail/virtual/<domain>/<user>/mailkullanıyorum olacağım ileride örnekler için So email@example.com, fwd@example.com, foo@example.come-posta adresi, gitmek için bir iletici temsil etmek example@gmail.comsırasıyla ve kötü bir adres. Yukarıdaki örnekte olur /var/mail/virtual/example.com/email/mail.

Ayrıca sunucudaki tüm alan adlarının bir listesini tutuyorum /etc/valiasesancak daha sonraları hakkında daha fazla.

Postfix

Bu, kurulumun kolay kısmıdır. Sadece postfixpaketi kur .

Exim

Exim'i Kurun apt-get install exim4 exim4-base exim4-config exim4-daemon-heavyKurulduktan sonra, aşağıdaki değerleri değiştirmek veya eklemek için exim varsayılan yapılandırmasını düzenlemeniz gerekir:

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(Bu satırlar dosyanın farklı bölümlerinde görünecektir, her birini uygun şekilde değiştirin)

Tamamlandıktan sonra, update-exim4.confExim yapılandırmasını yeniden oluşturun. Bu, Exim için gerekli değişiklikleri tamamlar.

Kurye

İle Kurye yükleyin courier-baseyüklemelisiniz bu courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

Dürüst olmak gerekirse standart dışında pek bir yapılandırma yoktur. Sadece bir kullanıcı veritabanı oluşturmanız gerekecek.

Hesaplar

Exim ve Courier giriş veya gelen bir e-postanın geçerli olup olmadığını görmek için birkaç yeri kontrol edin. Exim kontroller alanı yerel ana makine olarak listelenen, veya etki alanı olup olmadığını eğer /var/mail/virtualya eğer etki içindedir /etc/valiases.

E-posta Hesapları Oluşturma

Sonunda, bu süreci kolaylaştırmak için birkaç araç yarattım - ancak yeni bir kullanıcı eklemek, aşağıdakilere uyuyor:

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

Ardından adresi kurye userdb'ye ekleyin - böylece giriş yapabilirler

userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

Değerleri uygun olan yerde değiştirdiğinizden emin olun. Ayrıca - uidve posta kullanıcısı için sayısal kullanıcı / grup kimlikleri olması gid gerekir .

userdbpw -md5 | userdb email@example.com set systempw

Bu, sizden bir şifre ister ve hesap için kullanmak istediğiniz şifreyi girin.

makeuserdb

Son olarak, userdb hash / shadow dosyalarını oluşturun. Courier'i yeniden başlatın ve değişikliklerin işe yarayıp yaramadığını test edin:

authtest email@example.com

Benzer bir şey üretmeli

Authentication succeeded.

     Authenticated: email@example.com  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

"Kimlik Doğrulama Başarısız: İşleme izin verilmedi" seçeneğini görürseniz, / etc / courier / authdaemonrc dosyasını düzenleyin ve authmodulelist satırına authuserdb ekleyin.

Tüm testler onaylandıktan sonra, ilgili çeşitli servisleri yeniden başlatın ( courier-authdaemon, exim4), 143, 25, 586, 495, 110 portlarını açın ve hesapları favori posta istemcinizde ayarlayın.

E-posta takma adları oluşturma

Her etki alanı /etc/valiasesiçin en azından aşağıdaki satırda bir dosya (varsa oluştur) oluşturmalısınız:

*: :fail: No user at this address.

Bu ne diyor: Eğer gelen posta dosyadaki herhangi bir e-posta hesabıyla eşleşmiyorsa - o zaman posta başarısız olmalı ve bir mesajla geri dönmelidir: "Bu adreste kullanıcı yok". Yani tüm postalar demeye gönderildi: foo@example.combaşarısızlık olarak geri dönecekti.

Ancak, başka bir yerde tutmak istediğimiz birkaç e-posta adresimiz var - say example@gmail.com - bunu yapabilmek için oluşturmamız gerekiyor /etc/valiases/example.comve dosyanın içeriği şöyle olmalı:

fwd: example@gmail.com
*: :fail: No user at this address.

Bu şekilde, fwd@example.com sunucudaki herhangi bir e-posta hesabıyla eşleşmese de, /etc/valiasesdosyada eşleşir ve posta example@gmail.com adresine iletilir - Ancak, foo@example.com yine de başarısız olur "Bu adreste kullanıcı yok" mesajı.


11
Bu bir ISBN numarası ile mi geliyor?
Wesley

1
@WesleyDavid Bash tarihimin ISBN olarak görüneceğini sanmıyorum :)
Marco Ceppi

Bunları takip ediyorum - çok beğendim - authtest hattında karşılaştığım bir hatayı kapsayacak şekilde yukarıda düzenlemiştim.
Darren,

@DarrenGreaves Teşekkürler! Yardım ettiğine sevindim ve güncelleme için teşekkürler!
Marco Ceppi

Tüm bu çalışmaları elde etmek için uğraşıyorum - yalnızca (yollar için düzenlenmiş) 350 rota dosyasını debian-administration.org/articles/140 adresinden eklediğimde işe yönlendirilen değerlere sahibim - sanal etki alanları hiçbir işe yaramıyor - herhangi bir yönlendirme dosyası eklemek zorunda mıydınız? Ta.
Darren

14

En kolay yol kaçmaktır sudo tasksel install mail-server. Bu size aklı başında varsayılanları olan bir e-posta sunucusu verecektir. Tek yapmanız gereken birkaç soruyu cevaplamak. Açıkçası, gerekirse daha sonra manuel yapılandırmaları hala yapabiliyorsunuz, ancak çoğu durumda olmayacak. Sadece ekrandaki talimatları izleyin ve iyi olmanız gerekir.

E-posta hizmetleri yönetimi ile ilgili okumaya rağmen kesinlikle tavsiye edilir.

Resmi Referanslar:


Bunun ne olacağını görmenin tembel bir yolu var mı (kuracağı paketler, varsayılan ayarlar)? Tembel olarak kendim kurmadan demek istiyorum.
Javier Rivera

@Javier, hangi içeriğin yüklenerek yüklendiğini görüntüleyebilirsudo tasksel --task-packages mail-server
Marco Ceppi

MySQL'de depolanan konfigürasyon, anti-spam yok, antivirüs yok ... bizim için pek kullanışlı değil :(.
Javier Rivera


4

Sadece bunu kendim yapıyorum, gerçekten postfix'e ihtiyacınız var ve benim durumumda bir imap server istedim, böylece başka bir makinede güzel bir gui istemcisi (isimlerden bahsetmeden) kullanabilirim. Bu belgeleri kullandım:

Postfix

Güvercin (imap ve pop3)

Aslında oldukça basit, birkaç dakika içinde kullanıma hazır hale geldi ve e-posta alıyorum. Bu herşey yolunda şekilde ayarlandığını kontrol etmek de yararlıdır pingability .

Oh, tabii ki dns girişlerinizi aşağıdaki gibi doğru bir şekilde ayarlamanız gerekecektir (benim için çalışan ayarları temel alarak):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

ve

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

Posta sunucularının sonundaki tam durağı not edin ve uygun olduğunda ip adresinizi ve etki alanı adınızı girin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.