Codeigniter - konfigurujemy wysyłanie e-maili ze skrzynki gmail

Tym razem mam dla Was opis sposobu konfiguracji framework-u CodeIgniter do wysyłania wiadomości e-mail przy pomocy skrzynki założonej na przykład na gmailu.

Sama konfiguracja, nie jest jakoś szczególnie skomplikowana, a sposób jest uniwersalny i możemy dzięki niemu skonfigurować wysyłanie powiadomień z naszej aplikacji przy pomocy skrzynki gmail, albo dowolnej innej.

Konfiguracja CodeIgniter do wysyłania emaili z serwerów gmail


W pierwszej kolejności w katalogu config aplikacji musimy utworzyć nowy plik email.php, w którym będziemy przechowywać konfigurację naszej skrzynki e-mail:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Aby to zadzialalo nalezy włączyć Zezwalanie mniej bezpiecznym aplikacjom na dostęp do konta
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'adres-skrzynki@gmail.com',
'smtp_pass' => 'haslo-do-skrzynki'
);
/* End of file email.php */
/* Location: ./application/config/email.php */
view raw config.php hosted with ❤ by GitHub
Uwaga, aby to zadziałało na localhost należy zalogować się na konto Gmail i w jego ustawieniach zezwolić mniej bezpiecznym aplikacjom na dostęp do konta. Tutaj znajduje się opis, o co chodzi i jak to zrobić:
https://support.google.com/accounts/answer/6010255?hl=pl

Dodatkowo zamieszczam plik konfiguracyjny dla osób posiadających hosting na serwerach nazwa.pl
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://nazwa-klienta-nazwa.nazwa.pl',
'smtp_port' => '465',
'smtp_user' => 'nazwa@domena.pl',
'smtp_pass' => 'haslo-do-skrzynki',
'mailtype' => 'html'
);
/* End of file email.php */
/* Location: ./application/config/email.php */
view raw config.php hosted with ❤ by GitHub


Wybrany przykład kopiujemy i modyfikujemy podstawiając swoje dane.

Teraz wystarczy już tylko napisać funkcję, która będzie wysyłać dla nas wiadomości:

<?php
function send_email($recipent_email, $subject, $message)
{
$this->load->library('email');
$this->email->from('no-reply@domena.pl', 'Nadawca');
$this->email->to($recipent_email);
$this->email->subject($subject);
$this->email->message($message);
return ($this->email->send()) ? TRUE : FALSE;
// albo
if ($this->email->send())
echo "Wiadomość została wysłana!";
else
echo "Wystąpił błąd podczas wysyłania wiadomości!";
// wyświetl błędy
echo $this->email->print_debugger();
}
view raw send.php hosted with ❤ by GitHub

Do funkcji wysyłamy kolejno parametry: $recipent_email, $subject, oraz $messag. Są to kolejno: adres e-mail odbiorcy, temat wiadomości i treść wiadomości w formacie html.

To wszystko.

Przedstawiony sposób jest szczególnie przydatny do testowania aplikacji znajdującej się na serwerze lokalnym, gdy nie mamy skonfigurowanego serwera pocztowego, ale można go z powodzeniem wykorzystywać także w wielu innych sytuacjach (uwaga na limity).

Brak komentarzy:

Prześlij komentarz