26
Kasım
2009

Windows’ta PHP mail() Fonksiyonunu Çalıştırmak

php-logoWindows ile beraber (haliyle) bir mail sunucusu gelmediği için, yerel PHP kurulumlarında PHP’nin mail() fonksiyonu çalışmayacak, SMTP sunucusuna bağlanamadığı mesajını verecektir. Bu da içinde mail gönderme özelliği de bulunan bir uygulama yazdığınızda test edemeyeceğiniz anlamına gelir.

Elbette bilgisayarınıza bir SMTP sunucusu kurarak bunun üstesinden gelmeniz mümkün. Uğraşmak isterseniz… Ya da daha kolayı var. Zaten internette bir yerde hazır bir SMTP sunucunuz varsa, onu PHP ile kullanmak üzere ayarlamanız mümkün.

PHP, php.ini’deki ayarlarla şifreli giriş yapılan bir SMTP sunucusu ile mail göndermeyi desteklemez. Ama PHP’nin mail gönderme işini bu işi yapabilen bir programa teslim etmesini sağlayabiliriz.

Bunun için sendmail adlı ufak bir Windows yazılımına ihtiyacınız olacak. Programı buradan indirin ve sıkıştırılmış dosyayı bir yere açın. (Örneğin ben C:\wamp\sendmail klasörüne açtım.)

Daha sonra programla beraber gelen sendmail.ini dosyasını açın. Aşağıda gösterilen alanları sunucunuzun STMP ayarları neyi gerektiriyorsa ona göre değiştirin. Eğer SMTP sunucusu olarak gmail hesabınızı kullanmak isterseniz ayarları aşağıdaki gibi yapabilirsiniz:

1
2
3
4
smtp_server=smtp.gmail.com
smtp_port=587
auth_username=adresiniz@gmail.com
auth_password=GMAILSIFRENIZ

Sendmail programını yapılandırdıktan sonra, sıra PHP’nin mail() fonksiyonunu bu programa göndermeye geldi. Bunun için php.ini dosyasını açıyoruz. [mail function] kısmı içerisindeki sendmail_path dışındaki tüm ayarların başına “;” (noktalı virgül) koyarak bu ayarların geçersiz olmasını sağlıyoruz. sendmail_path kısmının başında “;” varsa kaldırıyoruz ve oraya aşağıdakini yazıyoruz. (Sendmaili nereye kurduysanız dosya yolunu ona göre değiştirin.)

1
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"

php.ini son haliyle şuna benzemeli:

1
2
3
4
5
6
7
8
9
10
11
12
13
[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25
 
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

Ayarlamaları doğru yaptıysanız sunucunuzu yeniden başlatınca PHP mail göndermeye başlayacaktır.

bu yazı 3.034 defa okundu

Site hoşunuza gitti mi? Belki arkadaşlarınızın da gider.

İstekli

Aaa Reklam

+ Yorumunuzu Ekleyin 7 yorum

  • Hüseyin KÜÇÜK 01 Aralık 2009 22.01

    Harika bir paylaşım :) formattan önce :D :D (vistadan kurtulma günü) baya bir uğraşmıştım mail olayını çözmek için. :) olmuştu ama nasıl yaptım bir daha bulamam anlamadan yapmıştım çünkü :D şimdi gayet açık bir şekilde öğrendim :D Teşekkürler. ;)

  • Canburak 17 Ocak 2010 15.29

    Teşekkürler. Yararlı oldu.

  • fatih 07 Temmuz 2010 20.25

    selam kardeş öncelikle bilgiler için teşekkürler, ben şöyle bir hata alıyorum varsa bir bilgin yardım edersen sewinirim
    Connection Closed Gracefully.
    10.07.07 20:22:19 : Connection Closed Gracefully.
    error log dosyası send mail in…
    ssl ile ilgili hatada verdiği oldu şimdi hata buna dönüştü..
    win xp 32 bit (tr)
    apache 2.2.x ve PHP Version 5.3.2….. sence neden kaynaklı olabilir ?

    • Umut 07 Temmuz 2010 23.46

      @fatih: Hiçbir fikrim yok.

    • Umut 27 Ocak 2011 01.11

      Yazıdaki dosyayı güncelledim. Yeni sürümünde SSL ile ilgili hata kalkmış durumda.

  • mehmet 08 Aralık 2011 16.11

    kardeş öncelikle eline koluna sağlık açıklandığın gibi bütün satıları ayarladım hata da vermiyor mail gönderildi yazıyor ama maili kontrol ettiğimde gelmemiş yani gönderme hatası almıyorum ama gelen mailde yok orta da bu konuda yardımcı olursam sevinirim.

  • mesut 17 Ocak 2012 18.50

    2 3 haftadır uraşıyordum yapamıyordum. aslında ilk günlerde gene bu siteye girip araştırmıştım indirmiştim dosyayı yapamamıştım. ama şimdi oldu. allah razı olsun çok saol.

Yorumunuzu Bırakın

Bu yazıya gönderilen yeni yorumları e-posta aracılığıyla bana bildir
Yeni gönderilenleri yorum yapmadan takip etmek için tıklayınız.

Yorumunuz başarıyla alındı. Onaylandıktan sonra yayımlanacaktır. Teşekkürler.

Twitler yükleniyor... 5 saniye sonra

Bıdı bıdı bıdı bıdı dıdı dıdı dudu dudu hıdı hıdı hödü hödü yüklüyoruz öhüm öhüm bıdı bıdı vs vs... 6 nanosaniye önce

Yüklenmenin geç olmasının sebebi ben değilim, Twitter API'sinin yavaş olması. Gudu gudu hıdı hödö büdü büdü... 25697 asır önce

Ha tabi bunları okumuşsan, bu sitenin çok gizli bir özelliğini bulmuşsun demektir. ;) Tebrikler. Bu "sürpiz yumurta"yı bulduğunu bana da haber verir misin? Tıkla! 6 dinazor önce

Geçen Yıllarda Bu Hafta

2011

Bunun Burada Ne İşi Var?

Bunun Burada Ne İşi Var?

Dün şehre inmek için Sayın Menderes Türel’in zamanında Hafif Metro ...

Windows 7’de Bilgisayarınızın Aldığı Puanı Değiştirin

Windows 7’de Bilgisayarınızın Aldığı Puanı Değiştirin

Biliyorsunuz Microsoft, Windows Vista’dan bu yana bilgisayarlar için bir performans ...

Dördüncü Sınıfın Birinci Döneminden Öğrenci Görüşleri

Dördüncü Sınıfın Birinci Döneminden Öğrenci Görüşleri

Dördüncü sınıfın yarısı bitti. Okuldan mezun olmak üzereyim. İyisiyle kötüsüyle bir ...

UBenzer’den Alın!

UBenzer’den Alın!

Ablam evdeki kullanılmayanları ayırmış, “Umut bunları sat.” dedi. Hazır elime ...

2009

Kısık Işık

Kısık Işık

Tavana asılmış tek beyaz floresan lambayı sevemedim bir türlü… “Ben ...

Antalya Toplu Taşıma Sisteminin Sorunları - 1

Antalya Toplu Taşıma Sisteminin Sorunları - 1

Antalya’da ulaşım bir ölüm. Trafik sıkışıklığı, haftada bir yönü değişen ...

2008

14 Şubat

14 Şubat

Biliyorsun bugün 14 Şubat. Daha iki gün öncesinden hazırdı zaten ...

Uyumadan Önce Son Boşluk

Uyumadan Önce Son Boşluk

Uykuya dalmadan önce düşünürüm… Kötü alışkanlıklarımdan biridir. Aklıma ne gelirse ......

NES Emulatörleri

NES Emulatörleri

Daha önceki şu iki yazımda (1.si, 2.si), çocukken bolca oynadığımız ...

Son Yorumlar