SMTP ile CodeIgniter' da E-posta Nasıl Gönderilir?

Bu yazıda, SMTP kullanarak bir CodeIgniter uygulamasında e-postaların nasıl gönderileceğini açıkladık.

CodeIgniter’ın E-posta Sınıfını Yüklemek İle Başlayalım

İlk olarak, CodeIgniter’ın e-posta kütüphanesini aşağıdaki kod parçacığını kullanarak yükleyin :

$this->load->library('email');


E-posta Parametlerini Ayarlalayalım : 
 

Özel e-posta için gerekli alanları ayarlamak gerekir. Bu alanlar aşağıdakiler de dahil olmak üzere çeşitli işlevlerle ayarlanabilir: from () işlevi iki parametre alır - gönderenin e-posta adresi ve ad. to () işlevi, alıcının e-posta adresini alır.

Sonraki iki işlev, CodeIgniter'da e-posta gönderme gereksinimlerini toplayan subject () ve message () 'dir.

$this->email->from('email@example.com');
$this->email->to('gidenkisi@example.com');
$this->email->subject('başlık');
$this->email->message('mesaj');


Bu işlevler doldurulduktan sonra, son adım send () işlevini kullanarak e-postayı göndermektir.

Controller Oluşturalım : 


Bir Controller dosyası Email_controller.php oluşturun ve onu / controller / uygulamasına kaydedin. Bu dosyaya aşağıdaki kodu ekleyin:

<?php
class Email_Controller extends CI_Controller {
    function __construct() {
        parent::__construct();
        $this->load->library('session');
        $this->load->helper('form');
    }
    public function index() {
        $this->load->helper('form');
        $this->load->view('contact_email_form');
    }
    public function send_mail() {
        $from_email = "email@example.com";
        $to_email = $this->input->post('email');
        //email kütüphanesi yükle
        $this->load->library('email');
        $this->email->from($from_email, 'Identification');
        $this->email->to($to_email);
        $this->email->subject('Send Email Codeigniter');
        $this->email->message('The email send using codeigniter library');
        //mail gönder
        if($this->email->send())
            $this->session->set_flashdata("email_sent","Congragulation Email Send Successfully.");
        else
            $this->session->set_flashdata("email_sent","You have encountered an error");
        $this->load->view('contact_email_form');
    }
}
?>


View Oluşturalım :


Contact_email_form.php adlı bir görünüm dosyası oluşturun ve bunu uygulama / görünümler / içine kaydedin. Aşağıdaki kodu ona ekleyin:

<html>
<head>    
    <title> Send Email Codeigniter </title>
</head>
<body>
<?php
echo $this->session->flashdata('email_sent');
echo form_open('/Email_Controller/send_mail');
?>
<input type = "email" name = "email" required />
<input type = "submit" value = "SEND MAIL">
<?php
echo form_close();
?>
</body>
</html>


Routes.php dosyasındaki değişiklikleri application / config / routes.php dosyasında yapın ve dosyanın sonuna aşağıdaki satırı ekleyin:

$route['email'] = 'Sendingemail_Controller';


SMTP Yapılandırmasını Ayarlama


Daha önce de belirtildiği gibi, CodeIgniter, basit yapılandırma seçenekleriyle SMTP dahil olmak üzere farklı e-posta protokollerini tamamen destekler.

Aşağıdaki kod parçasından görebileceğiniz gibi, e-posta protokolünü seçmek, tek bir yapılandırma değişkeni ayarlama meselesidir. Bu kod parçasında, SMTP protokolünü kullanmak için $ config [‘protocol’] smtp’ye ayarladım.

<?php
$this->load->library('email');
$config = array();
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'xxx';
$config['smtp_user'] = 'xxx';
$config['smtp_pass'] = 'xxx';
$config['smtp_port'] = 25;
$this->email->initialize($config);
$this->email->set_newline("\r\n");

Bol şans..

Yorum Yap

  • Saim Öztürk
    2019-12-07 22:11:23
    25 no'lu port açık mı? Ben spam e-postalardan dolayı kapatılıp daha güvenli bir şekilde 587 açıldı diye biliyorum.
    • Oğuzhan İNAN
      2020-07-07 23:16:56
      Evet Saim, Böyle Bir Durum Var Fakat Henüz 587 Portuna Geçiş Sağlandığı mı Bilmiyorum, Ben Hala 25 Portunu Kullanıyorum :)