Codeigniter ile iletişim sayfasındaki iletişim formunu gönder

Yazar: | 23 Kasım 2018

Codeigniter framework’ü ile PHP ile yazdığınız web sitesinde iletişim sayfasındaki formu göndermek için çok fazla bir şey yapmanıza gerek yok. Codeigniter sizin için bir mail gönderme sınıfı zaten oluşturmuş durumda. Sadece yapılması gereken formdan gelen veriyi toplamak ve mail sınıfını çağırıp işlemi tamamlamak.

Hadi koda bakalım;

Codeigniter’da controller alanında bir  mail gönderen fonksiyon yazalım.

public function mail_gonder(){

                //formdan gelen verileri yakalıyoruz
		$data['adsoyad'] = $this->input->post('adsoyad');
		$data['email'] = $this->input->post('email');
		$data['telefon'] = $this->input->post('telefon');
		$data['konu'] = $this->input->post('konu');
		$data['mesaj'] = $this->input->post('mesaj');
		
		$result = $this->Iletisim_model->ekle($data); // mail göndermeden önce verileri kendi veritabanınıza kaydedebilirsiniz

		$config['protocol'] = 'smtp';
		$config['smtp_host'] = 'mail sunucusu';
		$config['smtp_port'] = 'mail port';
		$config['smtp_user'] = 'mail adresi ';
		$config['smtp_pass'] = 'mail şifresi';
		$config['mailtype'] = 'html';
		$config['charset'] = 'utf-8';



		$this->load->library('email', $config);
		$this->email->initialize($config); 



            $this->email->initialize($config); //sunucu bilgilerini email kütüphanesine gönderdik
            $this->email->from("gönderilecek maili yazılmalı","mail açıklama");//mail gönderen bilgileri
            $this->email->to($this->input->post('email')); //formdan gelen mail alıcı bilgileri
            $this->email->subject($this->input->post('konu')); //Formdan gelen mail konusu
            $this->email->message($this->input->post('mesaj')); //Formdan gelen mail içeriği
           	$send=$this->email->send(); //Email kütüphanesi ile maili gönderiyoruz.
           	if($send)
           	{
           		echo "Mail gönderildi";
           	}
           	else  show_error($this->email->print_debugger());
                    //hata mesajı yazdırılabilir hata kaynağını görmek için

           	if ($result==1) {
           		$this->session->set_flashdata('basarili', 'İşlem Başarılı');
           		redirect('iletisim');
           	}else
           	{
           		$this->session->set_flashdata('hata', 'Tekrar Deneyiniz');
           		redirect('iletisim');
           	}

           }

Formdan gelen verileri yakaladıktan sonra mail sınıfı için gerekli olan config ayarları yapıldı. Formdan gelen veriler mail olraka gönderilirken kendi veritabanımıza da kaydedilmesinde fayda var. Bunun için standart bir ekle fonksiyonu kullanılabilir. Daha sonra toplanan veriler yukarda belirtilen controller içindeki kodlar ile gönderilir.

Bir cevap yazın

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