Genellikle kiraladığımız sunucular üzerinden e-posta mesajı göndermede sorunlar yaşarız. Sunucular, çoklu mesaj gönderimine "spam mail" olacağı endişesiyle ya da sunucunun fazla zorlanacağını düşünerek genellikle kapalıdırlar. Bu soruna çözüm olarak farklı sunucular üzerinden mesaj gönderme önerilmektedir. CodeIgniter ile Gmail hesabınız üzerinden nasıl e-posta mesajı gönderebileceğinizi bu yazıdan öğrenebilirsiniz.
Öncelikle içinde email kütüphanesinin ayarlarının yer aldığı email.php isimli dosyamızı application/config dizini altında oluşturuyoruz. Bu dosya içinde şu bilgiler yer almalıdır:
<?php
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'kullanici_adiniz@googlemail.com',
'smtp_pass' => 'sifreniz',
'charset' => 'utf-8'
);
Yukardaki ayar dosyamızda smtp_user ve smpt_pass isimli değişkenler, sizin kullanmakta olduğunuz Gmail adresinize ait değişkenler olarak düzeltilmelidir (adres satırında kullandığınız @googlemail.com kısmını değiştirmeyin). Ayar dosyamızı kayıt ettikten sonra application/controller dizini altında, gmail.php isimli bir controller dosyası oluşturalım. Bu dosyamızın içeriği ise şöyle olsun:
<?php
class Gmail extends Controller {
function Gmail()
{
parent::Controller();
}
function index()
{
}
function yolla()
{
$this->load->library('email');
if($this->_send_mail('gonderdigim@mailadresi.com','deneme e-postasi','gmail üzerinden e-posta gönderme denemesi.')) echo "gitti";
else echo "gidemedi";
}
function _send_mail($email,$subject,$message){
$this->email->set_newline("\r\n");
$this->email->from($this->config->item('smtp_user'),'codeigniter.gen.tr');
$this->email->to($email);
$this->email->subject($subject);
$this->email->message($message);
if(!$this->email->send()) return FALSE;
else return TRUE;
}
}
Controller dosyamızda yolla() isimli metod, _send_mail() dahili fonksiyonunu kullanarak sabit bir mesaj göndermektedir. Anlatımın fazla karışık olmaması için bu yazıda mesaj ve gönderilecek e-posta adreslerini ekrandan okutturmadım, sabit gönderdim. Siz istediğiniz değişikliği yapabilirsiniz.
Burada anlatılanları uygularken iki önemli noktaya dikkat etmelisiniz. Birincisi, SSL kullanılıyor olması nedeniyle 465 numaralı portun açık olması (25 değil) gerektiği, diğeri ise email kütüphanesinin yüklenmesinin ardından $this->email->set_newline("\r\n"); cümlesi ile yeni satır eklememiz gerektiğidir.
Programı çalıştırmak için http://localhost/gmail/yolla adersini adres satırına yazmanız durumunda, istediğiniz adrese deneme e-postanızın Gmail üzerinden ulaştığını göreceksiniz. Son not olarak unutmayın, CodeIgniter kullanarak Gmail üzerinden gönderdiğiniz e-postanız da Gmail sent klasörü altına kayıt edilmektedir.
Permalink | Yazarı : Fatih BAZMAN | Yorum Ekle | Etiketler : gmail email posta
Türkiye