MailCatcher ile geliştirme sürecindeki mail karın ağrısı çözümü

MeyilKeçır

Yazılım geliştirirken mailleri test etmek tam bir baş belası oluyor. Mail gidiyor mu? Doğru kişiye mi gidiyor? Tasarım düzgün mü? bla bla bla. bir sürü sorun. Bunun için bazı müyendiz arkadaşlar, hayat kurtaran bu MailCatcher denen yazılımı yapmışlar.

Kısaca şöyle çalışıyor; sizin için bir smtp server (giden mail sunucusu) yaratıyor ancak mailleri göndermeyip kendi hafızasına atıyor. (Sözde) gönderdiğiniz mailleride okuyabiliyorsunuz, mail hakkındaki tüm detayları inceleyebiliyorsun. Daha sonra uygulamanızı gerçek hayata geçirdiğiniz zaman smtp server ayarlarınızı değiştirip kalan hayatınıza devam ediyorsunuz.

Şöyle birşey görüntüsüde;

mailcatcher

Nası kuruyoz ?

Bu mailcatcher denen naneyi ruby ile yapmışlar, doğal olarak ruby lazım. Ruby’i bir şekilde kurun.

Kurulumu çalıştırmadan önce şu programlar sizde var mı bakın; make g++ sqlite3 libsqlite3-dev

Bunları Ubuntu’da çat diye kurmak için;

sudo apt-get install make build-essential sqlite3 libsqlite3-dev

Daha sonra;

gem install mailcatcher

Ahanda kuruldu. 🙂

Çalıştıralım

mailcatcher komutu ile çalışmaya başlıyor bu arkadaş (hemde arkaplanda). Daha sonra tek yapmanız gereken http://localhost:1080 adresine gitmek.

Bu olay tamamlandıktan sonra uygulamanızın smtp ayarlarını şu şekilde ayarlayın;

  • host: localhost
  • port: 1025
  • kullanıcı adı: yok
  • şifre: yok
  • tls: yok

mailcatcher programı otomatik olarak socketlerini sadece 127.0.0.1’den kabul ediyor. Eğerki vagrant kullanıyorsanız mailcatcher --http-ip=0.0.0.0 kullanın ki dışarıdan da (yani vagrant dışından) erişebilin.

PHP için bir not

Yapmazsınız ama yaparsınız diye söyliyim; Eğerki PHP’nin default mail() fonksiyonunu kullanıyorsanız php.ini içerisinden sendmail_path ayarını şu şekilde değiştiriyoruz;

sendmail_path = /usr/bin/env catchmail -f kimden@gidiyor.com

PHP’nin mail() fonksiyonunu kullanmıyorsanız bunu düşünmenize gerek yok.

Tamamdır

Artık bu pis mail test etme sürecini kolayca hallediyoruz. Hadi kolay gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax