Hogyan küldjünk e-mailt a következővel: CodeGyújtó
Az e-mail nagyon fontos a webes alkalmazásokban. Amikor egy felhasználó regisztrál, küldhetünk neki egy e-mailt, hogy ellenőrizzük az e-mail címét, és lehetővé tegyük a felhasználó számára a feliratkozás megerősítését. Az e-mailt használjuk elfelejtett jelszavak visszaállítására, számlák és nyugták küldésére az ügyfeleknek stb. CodeAz Igniter rendkívül egyszerűvé teszi számunkra, hogy e-maileket küldjünk az alkalmazásunkból, különféle lehetőségek segítségével.
CodeAz Igniter beépített e-mail könyvtárral rendelkezik, amellyel e-mailek küldésekor dolgozhatunk.
CodeIgniter e-mail konfiguráció
Szükségünk van egy központi helyre, ahol kezelhetjük az e-mail beállításokat. CodeAz Igniter nem tartalmaz konfigurációs fájlt az e-mailekhez, így nekünk kell létrehoznunk egyet.
Hozzon létre egy email.php fájlt az application/config könyvtárban
Adja hozzá a következő kódot az email.php-hez
<?php defined('BASEPATH') OR exit('No direct script access allowed');
$config = array(
'protocol' => 'smtp', // 'mail', 'sendmail', or 'smtp'
'smtp_host' => 'smtp.example.com',
'smtp_port' => 465,
'smtp_user' => 'no-reply@example.com',
'smtp_pass' => '12345!',
'smtp_crypto' => 'ssl', //can be 'ssl' or 'tls' for example
'mailtype' => 'text', //plaintext 'text' mails or 'html'
'smtp_timeout' => '4', //in seconds
'charset' => 'iso-8859-1',
'wordwrap' => TRUE
);
ITT,
- ‘protocol’ => ‘smtp’, specifies the protocol that you want to use when sending email. This could be Gmail smtp settings or smtp settings from your host
- ‘smtp_host’ => ‘smtp.example.com’,specifies the smtp host. For example, if you want to use Gmail then you would have something like smtp.gmail.com
- 'smtp_port' => 465, egy nyitott port a megadott smtp gazdagépen, amely smtp levelekhez van konfigurálva
- 'smtp_user' => 'no-reply@example.com', az az e-mail cím, amelyet a rendszer feladóként fog használni az e-mailek küldésekor. Ennek egy érvényes e-mail címnek kell lennie, amely létezik a szerveren
- 'smtp_pass' => '12345!', a megadott smtp felhasználói e-mail-címhez tartozó jelszó
- 'smtp_crypto' => 'ssl', megadja a használandó titkosítási módszert, pl. ssl, tls stb.
- 'email type' => 'text', beállítja a használandó levéltípust. Ez lehet egyszerű szöveg vagy HTML, az Ön igényeitől függően.
- 'smtp_timeout' => '4', megadja azt az időt másodpercben, aminek el kell telnie, amikor megpróbál csatlakozni a gazdagéphez, mielőtt az időtúllépési kivétel megjelenne.
- 'charset' => 'iso-8859-1', meghatározza az e-mailek küldésekor használandó karakterkészletet.
- 'wordwrap' => TRUE értéke IGAZ, majd a szótörlés engedélyezve van. Ha FALSE-ra van állítva, akkor a tördelés nincs engedélyezve
Megjegyzések: az e-mailek munkához való küldéséhez érvényes konfigurációs paramétereket kell megadnia. Az álparaméterek nem tudnak e-mailt küldeni.
CodeIgniter e-mail nézet
Ebben a részben létrehozzuk azt a nézetet, amely elküldi az e-mailt a címzettnek.
Hozzon létre egy új címtár e-mailt az alkalmazásban/nézetekben
Hozzon létre egy új fájlt contact.php application/views/email
Adja hozzá a következő kódot az application/views/email/contact.php fájlhoz
<!DOCTYPE html>
<html>
<head>
<title>CodeIgniter Send Email</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>
<h3>Use the form below to send email</h3>
<form method="post" action="<?=base_url('email')?>" enctype="multipart/form-data">
<input type="email" id="to" name="to" placeholder="Receiver Email">
<br><br>
<input type="text" id="subject" name="subject" placeholder="Subject">
<br><br>
<textarea rows="6" id="message" name="message" placeholder="Type your message here"></textarea>
<br><br>
<input type="submit" value="Send Email" />
</form>
</div>
</body>
</html>
ITT,
- Van egy alap HTML űrlapunk, amely elfogadja az e-mailt, a tárgyat és az üzenetet, majd átadja a paramétereket az e-mail útvonalnak.
CodeIgniter e-mail vezérlő
Most hozzuk létre azt a vezérlőt, amely az e-mailek küldését fogja kezelni
Hozzon létre egy új EmailController.php fájlt az application/controllers/EmailController.php fájlban
Adja hozzá a következő kódot az EmailController.php webhelyhez
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class EmailController extends CI_Controller {
public function __construct() {
parent:: __construct();
$this->load->helper('url');
}
public function index() {
$this->load->view('email/contact');
}
function send() {
$this->load->config('email');
$this->load->library('email');
$from = $this->config->item('smtp_user');
$to = $this->input->post('to');
$subject = $this->input->post('subject');
$message = $this->input->post('message');
$this->email->set_newline("\r\n");
$this->email->from($from);
$this->email->to($to);
$this->email->subject($subject);
$this->email->message($message);
if ($this->email->send()) {
echo 'Your Email has successfully been sent.';
} else {
show_error($this->email->print_debugger());
}
}
}
ITT,
- Az EmailController osztály kiterjeszti a CI_Controller {…} osztályt, amely meghatározza az e-mail vezérlőnket, és kibővíti a szülőt. CodeGyújtóvezérlő.
- public függvény __construct() {…} határozza meg a szülő konstruktor metódust meghívó gyermek konstruktort.
- public function index() {…} a kapcsolatfelvételi űrlapot megjelenítő indexmódszert határozza meg
- A send() {…} függvény határozza meg az e-mail elküldésének módját
- $this->load->config('email'); betölti az e-mail konfigurációs beállításokat
- $this->load->library('email'); betölti az e-mail könyvtárat
- $from = $this->config->item('smtp_user'); lekéri a feladó azonosítóját az általunk meghatározott e-mail konfigurációs fájlból.
- $hoz = $this->input->post('to'); lekéri a to értéket a beküldött űrlapról
- $tárgy = $this->input->post('tárgy'); beállítja az űrlapon szereplő e-mailt
- $üzenet = $this->input->post('üzenet'); beállítja az e-mail üzenetet az űrlapról
- $this->email->set_newline(“\r\n”); meghatározza az e-mailek új sorkaraktereit
- $ez->e-mail->feladó($feladó); beállítja a feladó e-mail címét
- $this->email->to($to); beállítja a címzett e-mail címét
- $ez->e-mail->tárgy($tárgy); beállítja az e-mail tárgyát
- $ez->e-mail->üzenet($üzenet); beállítja az e-mail üzenetet
- ha ($this->email->send()) {…} megpróbálja elküldeni az e-mailt. Ha az e-mailt sikeresen elküldtük, akkor az Ön e-mailje sikeresen el lett küldve üzenet, különben hibakeresési információ kerül kinyomtatásra a hiba miatt.
Most határozzuk meg az e-mail útvonalakat
E-mail útvonalak
Adja hozzá a következő útvonalakat az application/config/routes.php fájlhoz
$route['send-email'] = 'EmailController'; $route['email'] = 'EmailController/send';
Most már betölthetjük a kapcsolatfelvételi űrlapot a webböngészőbe
Indítsuk el a beépített PHP szervert
Nyissa meg a terminált/parancssort, és tallózással keresse meg az alkalmazás gyökerét. Az én esetemben a gyökér a C:\Sites\ci-app meghajtón található
cd C:\Sites\ci-app
indítsa el a szervert a következő paranccsal
php -S localhost:3000
Töltse be a következő URL-t a böngészőjébe: http://localhost:3000/send-email
Látnia kell a következő űrlapot
Írja be a címzett e-mail címét, tárgyát és e-mail üzenetét, majd kattintson az E-mail küldése gombra. Ha az e-mail konfigurációk megfelelően vannak beállítva, akkor látnia kell a sikeres üzenetet.
Összegzésként
A beépített e-mail könyvtár megkönnyíti számunkra, hogy minimális kóddal küldjünk e-maileket. A könyvtár abban az értelemben is nagyon rugalmas, hogy az igényeinek megfelelően beállíthatja.

