💻 Bilgisayar, 💾 Programlama

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

php-logo
Windows 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:

smtp_server=smtp.gmail.com
smtp_port=587
[email protected]
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.)

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

php.ini son haliyle şuna benzemeli:

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = [email protected]
; 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.

Windows’ta PHP mail() Fonksiyonunu Çalıştırmak 8 yorum aldı.

  1. 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ü 😀 şimdi gayet açık bir şekilde öğrendim 😀 Teşekkürler. 😉

  2. 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 ?

  3. 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.

  4. 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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir