FreeBSD – Sendmail Smart Host Configuration
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYjL0CY3' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Öntanımlı olarak sendmail kullanan sistemlerde, localhost'u kullanarak email gönderimi yapan (örneğin üyelik mailleri gönderen bir web sitesi gibi) bir uygulama çalışıyorsa, giden mailleri localhost yerine, işi sadece email göndermek olan bir SMTP sunucusu/servisi üzerinden iletmek isteyebilirsiniz. Bunun için sendmail'de “dışarı” giden her postayı belirlediğiniz smtp sunucusu üzerinden göndermesi için SMART_HOST tanımlaması yapabilirsiniz.
Aşağıda, freebsd sistemlerde bu tanımlamanın nasıl yapıldığına değineceğim.
freebsd sistemlerde (diğerlerinde olduğu gibi) sendmail ile ilgili her türlü yapılandırma dosyası /etc/mail dizini altında bulunmaktadır. Sisteminizde daha önce sendmail ile ilgili herhangi bir tanımlama yapmadıysanız ilk olarak bu dizine gidip make komutunu çalıştırarak hostname'iniz için ana yapılandırma dosyalarının oluşturulmasını sağlamak icap eder.
# cd /etc/mail # make
Bu şekilde isminde sisteminizin hostname'i geçen yapılandırma dosyaları oluşturulur. Benim test sistemimin hostname'i CromLab04-freebsd-9.1.crom.lab olduğu için ilgili dosyalar şu şekilde görünmekte:
-rw-r--r-- 1 root wheel 59099 Feb 10 00:35 CromLab04-FreeBSD-9.1.crom.lab.cf -rw-r--r-- 1 root wheel 4105 Feb 10 00:35 CromLab04-FreeBSD-9.1.crom.lab.mc -rw-r--r-- 1 root wheel 40712 Feb 10 00:19 CromLab04-FreeBSD-9.1.crom.lab.submit.cf -r--r--r-- 1 root wheel 900 Feb 10 00:19 CromLab04-FreeBSD-9.1.crom.lab.submit.mc
Bu dosyalardan, “hostname.mc” (örnekte CromLab04-FreeBSD-9.1.crom.lab.mc) olanı SMART_HOST tanımlamasının yapılacağı ana dosyadır. Bu dosyayı editleyin ve aşağıdaki satırı bulun:
dnl define(`SMART_HOST', `your.isp.mail.server'
ve şu şekilde değiştirin:
define(`SMART_HOST', `smtp.sunucunuz.com')
Bu tanımlama sendmail'e dışarı gidecek tüm mailleri, smtp.sunucunuz.com isimli posta sunucusu üzerinden iletilmesini söylemektedir. Ancak sadece bu ayarlar ile gönderim yaptığınız zaman, giden mailler, kullaniciadi@hostname şeklinde görünecektir. Örnek olarak benim test sistemimi ele alırsak gönderilen maillerin from adresi <[email protected]> şeklinde görüntülenecektir.
Bu durumun önüne geçmek ise MASQUERADE parametresi ile gönderilen her mailin from kisminda görüntülenecek domainini formal olacak şekilde maskeleyebilirsiniz.
Bu işlem için, gene ana yapılandırma dosyasını editleyelim:
# cd /etc/mail # vi /etc/mail/CromLab04-FreeBSD-9.1.crom.lab.mc
ve dosyanın en altındaki MAILER(local) satırının hemen üzerine aşağıdaki satırları girelim:
MASQUERADE_AS(ALANADI.com) FEATURE(allmasquerade) FEATURE(masquerade_envelope) FEATURE(masquerade_entire_domain) MASQUERADE_DOMAIN(ALANADI.com)
Bu ayar ile gönderilen her mailin from kısmı, @alanadı.com olarak görüntülenecektir.
Tanımlamaların ardından değişikliklerin algılanması için /etc/mail dizinine geçip make install diyoruz:
# cd /etc/mail # make install
Son olarak da sendmail'i yeniden başlatıyoruz:
# /etc/rc.d/sendmail restart
Böylece yapılandırma tamamlanmış oluyor. Şimdi sistemden aşağıdaki şekilde bir mail gönderip durumu test edebilirsiniz.
# mail -s "Deneme maili" [email protected] Test mesajınızı yazdıktan sonra, CTRL-D ile gönderimi tamamlayın.
Gönderiminizin detaylarını /var/log/maillog dosyasında görebilirsiniz.
Ben bu işlem için smart_host olarak kullandığım sistemde relay iznini ip üzerinden verdiğim için herhangi bir auth işlemi yapmama gerek kalmıyor. Ancak sizin SMART_HOST olarak kullanacağınız sunucu illa smtp authentication gerektiriyorsa, bu işin nasıl yapılacağı ile ilgili bir örneğe aşağıdaki adresten erişebilirsiniz.
http://www.dnsexit.com/support/mailrelay/sendmail.html
Bu yazılar da ilginizi çekebilir:
- FreeBSD – immutable flag ile write protection
- Ezjail Flavours ile Öntanımlı Jail Sistemler Oluşturmak
- PSSH ile Birden Fazla Sunucuyu Tek Merkezden Yönetmek
- SSH Üzerinden Root Login Girişimlerinde Artış
- FreeBSD Ports Reinstall – FORCE_PKG_REGISTER
Yorumlar
Trackbacks
Yorumda bulunun.
peki diyelim 2 tane domainimiz var,
bunların 2 ayrı smtp sunucusu var,
bunu nasıl ayarlayabiliriz?
domain’e göre farklı smtp sunucusu seçtirebiliyor muyuz?
[Cevapla]