- Katılım
- 20 Tem 2021
- Konular
- 148
- Mesajlar
- 905
- Çözüm
- 3
- Online süresi
- 1mo 3d
- Reaksiyon Skoru
- 1,079
- Altın Konu
- 32
- TM Yaşı
- 4 Yıl 10 Ay 21 Gün
- Başarım Puanı
- 185
- MmoLira
- 500
- DevLira
- 3
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Php ile proje geliştiren kişilerin sıklıkla ihtiyaç duydukları konuların başında php mail gönderme işlemi gelir. Örneğin iletişim formu, üyelik şifre sıfırlama işlemi, E-bülten, kampanya bilgilendirme sistemi, sipariş sistemi ve takibi gibi bölümlerde mail gönderme uygulaması yapılması gerekebilir.
Bu makale size, ihtiyacınız olduğu alanlarda sorunsuz bir mail gönderim yapabilmenizi olanak sağlayacak bilgi ve birikimleri içerir.
Bu makalede, Php ile Mailler sınıfını kullanarak mail gönderme işlemi nasıl yapılır? bu işin mantığı nedir? ve örnek uygulama dosyamızı sizlere sunacağız.
Php Mail fonksiyonu ile mail gönderme işlemi
Normal şartlarda Php’nin kendi içinde barındırdığı mail fonksiyonu ile mail gönderme işlemi yapılabiliyor. Ama gel gelelim doğrudan bu fonksiyon ile yollanan mailler mailin gittiği sunucu tarafından spam olarak algılanır. Çünkü doğrudan yollanan bu maillerde herhangi bir oturum doğrulama, dijital imza kontrolü yapılmamaktadır. Buda karşı tarafın giden sunucusunda spam izlenimi yaratır.
PhpMailler sınıfı ile smtp mail gönderme işlemi
Smtp ile mail gönderme işinde ise işler tam tersine döner. Misal; Yandex’te bir mail hesabınız var ve bu hesabınızdan normalde giriş yapıp nasıl mail yolluyorsanız, smtp mail gönderme işlemindede PhpMailler Sınıfı, smtp sunucusu bağlantısı kurarak bu sunucu üzerinden gayet doğal bir şekilde mail gönderir. Bu nedenle yolladığınız mailler karşı tarafın gelen kutusuna düşer.
Hosting satışı yapan firmalar günümüzde sunucu yapılandırması esnasında mail fonksiyonunu pasif hale getiriyor. Bu nedenle hosting kullanıcıları hosting hesapları üzerinden php’de mail fonksiyonu ile mail gönderemiyor. Hosting firmalarının sunucular için satın aldıkları sabit ip adreslerinin temiz tutulması için bazı güvenlik tedbirleri aldıkları bir gerçektir.
Sürekli spam maillerin gönderildiği ip adresleri doğal olarak Gmail, Hotmail, Yandex ve daha birçok büyük mail sağlayıcıları tarafından kara listeye alınır. Kara listeye alınan ip adresleri üzerinden gönderilen her mail spam niteliği taşır. Bu nedenle Hosting firmaları bu konuya önem vermektedir.
Günlük hayatımızda kullanılan normal postalar ile aynı mantıkta düşünebilirsiniz. Smtp ile e-posta yolladığınızda belli başlı bazı adımlardan geçilerek e-posta gideceği mail adresine ulaşım sağlar.
Bu şablonu kendinize göre modifiye ederek PHP Smtp mail gönderme işlemini sorunsuz bir şekilde yapabilirsiniz. Eğer birden fazla kişiye bir defada mail göndermek istiyorsanız şu şekilde bir kullanım yapabilirsiniz.
Adres sayısını bu şekilde çoğaltabilirsiniz. Eğer veritabanından mailleri çekip tüm kişilere toplu mail göndermek istiyorsanız o zaman bu kodun bir tanesini döngünün içinde kullanmanız yeterli olacaktır.
Eğer SSL (güvenlik sertifikası) kullanan bir sunucu üzerinden mail gönderecekseniz o zaman SSL ayarlarını yapmanız gerekiyor. Bunun için yukarıdaki mail kodlarımıza şu ufak kodu eklememiz yeterli olacaktır. Bu bölümü “tls” veya “ssl” olarak düzenleyebilirsiniz.
Bu şekilde sorunsuz mail gönderimi yapabilirsiniz. Bu kodları bu şekilde kullanmanıza rağmen eğer şu şekilde bir hata alıyorsanız,
Bu durumda hosting aldığınız firma’ya destek talebi açıp hostinginiz için “Dış Smtp” erişim yetkisi verdirmeniz gerekmektedir. Bu ayardan sonra bu hatadan kurtulup sorunsuz bir kullanım yapabilirsiniz. Bu problem şu anda sıklıkla karşılaşılan problemlerdendir. Bu şekilde sorunu çözebilirsiniz.
Bu makale size, ihtiyacınız olduğu alanlarda sorunsuz bir mail gönderim yapabilmenizi olanak sağlayacak bilgi ve birikimleri içerir.
Bu makalede, Php ile Mailler sınıfını kullanarak mail gönderme işlemi nasıl yapılır? bu işin mantığı nedir? ve örnek uygulama dosyamızı sizlere sunacağız.
Php Mail fonksiyonu ile mail gönderme işlemi
Normal şartlarda Php’nin kendi içinde barındırdığı mail fonksiyonu ile mail gönderme işlemi yapılabiliyor. Ama gel gelelim doğrudan bu fonksiyon ile yollanan mailler mailin gittiği sunucu tarafından spam olarak algılanır. Çünkü doğrudan yollanan bu maillerde herhangi bir oturum doğrulama, dijital imza kontrolü yapılmamaktadır. Buda karşı tarafın giden sunucusunda spam izlenimi yaratır.
PhpMailler sınıfı ile smtp mail gönderme işlemi
Smtp ile mail gönderme işinde ise işler tam tersine döner. Misal; Yandex’te bir mail hesabınız var ve bu hesabınızdan normalde giriş yapıp nasıl mail yolluyorsanız, smtp mail gönderme işlemindede PhpMailler Sınıfı, smtp sunucusu bağlantısı kurarak bu sunucu üzerinden gayet doğal bir şekilde mail gönderir. Bu nedenle yolladığınız mailler karşı tarafın gelen kutusuna düşer.
Hosting Firmaları Mail Fonksiyonunu Kapatıyor!
Hosting satışı yapan firmalar günümüzde sunucu yapılandırması esnasında mail fonksiyonunu pasif hale getiriyor. Bu nedenle hosting kullanıcıları hosting hesapları üzerinden php’de mail fonksiyonu ile mail gönderemiyor. Hosting firmalarının sunucular için satın aldıkları sabit ip adreslerinin temiz tutulması için bazı güvenlik tedbirleri aldıkları bir gerçektir.
Sürekli spam maillerin gönderildiği ip adresleri doğal olarak Gmail, Hotmail, Yandex ve daha birçok büyük mail sağlayıcıları tarafından kara listeye alınır. Kara listeye alınan ip adresleri üzerinden gönderilen her mail spam niteliği taşır. Bu nedenle Hosting firmaları bu konuya önem vermektedir.
SMTP Nedir? Önemi!
Smtp açılımı “Simple Mail Transfer Protocol” yani Türkçe karşılığı “Basit posta aktarım protokolü” dür. Smtp giden sunucu ile posta gönderimi yapıldığında doğal olarak yolladığınız e-posta kişinin gelen kutusuna düşmesi sağlanır.Günlük hayatımızda kullanılan normal postalar ile aynı mantıkta düşünebilirsiniz. Smtp ile e-posta yolladığınızda belli başlı bazı adımlardan geçilerek e-posta gideceği mail adresine ulaşım sağlar.
PHP SMTP Mail Gönderme
Bunun için öncelikli olarak php mailler sınıfını bağlantıyı kullanarak indirin. Bunun içinde class.phpmailler.php ve class.smtp.php dosyaları önem arz ediyor. Bu dosyaları kullanacağınız dizinin içine katıyoruz ve bu işlemden sonra şu şekilde bir kullanım ile mail gönderme işlemini yapabiliyorsunuz.
PHP:
include ('class.phpmailer.php');
include ('class.smtp.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.sitem.com';
$mail->SMTPSecure = 'tls'; //yada SSL
$mail->Port = 587; //SSL kullanacaksanız portu 465 olarak değiştiriniz
$mail->Username = 'benim@mailadresim.com';
$mail->Password = 'mail şifresi';
$mail->SetFrom($mail->Username, 'Benim Adım');
$mail->AddAddress('alici@adresi.com', 'Alıcının Adı');
$mail->CharSet = 'UTF-8';
$mail->Subject = 'Mail Başlığı';
$mail->MsgHTML('Mailin içeriği!');
if($mail->Send()) {
echo 'Mail gönderildi!';
} else {
echo 'Mail gönderilirken bir hata oluştu: ' . $mail->ErrorInfo;
}
Bu şablonu kendinize göre modifiye ederek PHP Smtp mail gönderme işlemini sorunsuz bir şekilde yapabilirsiniz. Eğer birden fazla kişiye bir defada mail göndermek istiyorsanız şu şekilde bir kullanım yapabilirsiniz.
PHP:
$mail->AddAddress('baska@biri.com', 'Başkası');
$mail->AddCC('baska@iki.com', 'Diğeri');
$mail->AddBCC('baska@ucu.com', 'Öteki');
Adres sayısını bu şekilde çoğaltabilirsiniz. Eğer veritabanından mailleri çekip tüm kişilere toplu mail göndermek istiyorsanız o zaman bu kodun bir tanesini döngünün içinde kullanmanız yeterli olacaktır.
Eğer SSL (güvenlik sertifikası) kullanan bir sunucu üzerinden mail gönderecekseniz o zaman SSL ayarlarını yapmanız gerekiyor. Bunun için yukarıdaki mail kodlarımıza şu ufak kodu eklememiz yeterli olacaktır. Bu bölümü “tls” veya “ssl” olarak düzenleyebilirsiniz.
PHP:
$mail->SMTPSecure = 'ssl'; //yada tls
Bu şekilde sorunsuz mail gönderimi yapabilirsiniz. Bu kodları bu şekilde kullanmanıza rağmen eğer şu şekilde bir hata alıyorsanız,
“Mail gönderilirken bir hata oluştu: The following From address failed: yolla@siten.com : Called Mail() without being connected“
Bu durumda hosting aldığınız firma’ya destek talebi açıp hostinginiz için “Dış Smtp” erişim yetkisi verdirmeniz gerekmektedir. Bu ayardan sonra bu hatadan kurtulup sorunsuz bir kullanım yapabilirsiniz. Bu problem şu anda sıklıkla karşılaşılan problemlerdendir. Bu şekilde sorunu çözebilirsiniz.
En Çok Reaksiyon Alan Mesajlar
Paylaşım için teşekkürler
Paylaşım için teşekkürler.
Paylaşım için teşekkürler, ellerine sağlık.
- Katılım
- 20 Kas 2021
- Konular
- 2,085
- Mesajlar
- 5,972
- Çözüm
- 5
- Online süresi
- 3mo 10d
- Reaksiyon Skoru
- 5,735
- Altın Konu
- 218
- TM Yaşı
- 4 Yıl 6 Ay 18 Gün
- Başarım Puanı
- 317
- Yaş
- 27
- MmoLira
- 1,573
- DevLira
- 0
Paylaşım için teşekkürler
- Katılım
- 7 May 2010
- Konular
- 10,579
- Mesajlar
- 58,614
- Çözüm
- 219
- Online süresi
- 10mo 29d
- Reaksiyon Skoru
- 16,721
- Altın Konu
- 444
- TM Yaşı
- 16 Yıl 1 Ay 3 Gün
- Başarım Puanı
- 691
- MmoLira
- 19,925
- DevLira
- 601
Paylaşım için teşekkürler.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 43
- Cevaplar
- 1
- Görüntüleme
- 30
- Cevaplar
- 1
- Görüntüleme
- 67




