CodeIgniter - การส่งอีเมล
การส่งอีเมลใน CodeIgniter นั้นง่ายกว่ามาก คุณยังกำหนดการตั้งค่าเกี่ยวกับอีเมลใน CodeIgniter CodeIgniter มีคุณสมบัติดังต่อไปนี้สำหรับการส่งอีเมล -
- หลายโปรโตคอล - Mail, Sendmail และ SMTP
- การเข้ารหัส TLS และ SSL สำหรับ SMTP
- ผู้รับหลายคน
- CC และ BCC
- อีเมล HTML หรือ Plaintext
- Attachments
- การตัดคำ
- Priorities
- BCC Batch Mode ช่วยให้สามารถแบ่งรายชื่ออีเมลขนาดใหญ่ออกเป็นชุด BCC ขนาดเล็กได้
- เครื่องมือแก้ไขข้อบกพร่องอีเมล
คลาสอีเมลมีฟังก์ชั่นต่อไปนี้เพื่อลดความซับซ้อนในการส่งอีเมล
SN | ไวยากรณ์ | พารามิเตอร์ | กลับ | ประเภทผลตอบแทน |
---|---|---|---|---|
1 | จาก ( $ from [, $ name = '' [, $ return_path = NULL ]]) | $from( สตริง ) - ที่อยู่อีเมล“ จาก” $name( สตริง ) - ชื่อที่แสดง“ จาก” $return_path( สตริง ) - ที่อยู่อีเมลที่เป็นทางเลือกเพื่อเปลี่ยนเส้นทางอีเมลที่ไม่ได้ส่งไปยัง |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
2 | reply_to ( $ replyto [, $ name = '' ]) | $replyto( สตริง ) - ที่อยู่อีเมลสำหรับตอบกลับ $name( สตริง ) - ชื่อที่แสดงสำหรับที่อยู่อีเมลตอบกลับ |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
2 | ถึง ( $ ถึง ) | $to( ผสม ) - สตริงที่คั่นด้วยจุลภาคหรืออาร์เรย์ของที่อยู่อีเมล |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
3 | ซีซี ( $ cc ) | $cc( ผสม ) - สตริงที่คั่นด้วยจุลภาคหรืออาร์เรย์ของที่อยู่อีเมล |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
4 | สำเนาลับ ( $ bcc [, $ limit = '' ]) | $bcc( ผสม ) - สตริงที่คั่นด้วยจุลภาคหรืออาร์เรย์ของที่อยู่อีเมล $limit( int ) - จำนวนอีเมลสูงสุดที่จะส่งต่อชุด |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
5 | เรื่อง ( $ subject ) | $subject( สตริง ) - บรรทัดหัวเรื่องอีเมล |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
6 | ข้อความ ( $ body ) | $body( สตริง ) - เนื้อหาข้อความอีเมล |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
7 | set_alt_message ( $ str ) | $str( สตริง ) - เนื้อหาข้อความอีเมลทางเลือก |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
8 | set_header ( $ header, $ value ) | $header( สตริง ) - ชื่อส่วนหัว $value( สตริง ) - ค่าส่วนหัว |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
9 | ชัดเจน ([ $ clear_attachments = FALSE ]) | $clear_attachments( bool ) - ล้างไฟล์แนบหรือไม่ |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
10 | ส่ง ([ $ auto_clear = TRUE ]) | $auto_clear( บูล ) - ล้างข้อมูลข้อความโดยอัตโนมัติหรือไม่ |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
11 | แนบ ($ filename [, $ Disposition = '' [, $ newname = NULL [, $ mime = '']]]) | $filename( สตริง ) - ชื่อไฟล์ $disposition( สตริง ) - 'การจัดการ' ของไฟล์แนบ ไคลเอนต์อีเมลส่วนใหญ่ตัดสินใจด้วยตนเองโดยไม่คำนึงถึงข้อกำหนด MIME ที่ใช้ที่นี่ iana $newname( สตริง ) - ชื่อไฟล์ที่กำหนดเองเพื่อใช้ในอีเมล $mime( สตริง ) - ประเภท MIME ที่จะใช้ (มีประโยชน์สำหรับข้อมูลที่บัฟเฟอร์) |
อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) | CI_Email |
12 | attachment_cid ( ชื่อไฟล์ $ ) | $filename( สตริง ) - ชื่อไฟล์ไฟล์แนบที่มีอยู่ |
เอกสารแนบ Content-ID หรือ FALSE หากไม่พบ | สตริง |
การส่งอีเมล
ในการส่งอีเมลโดยใช้ CodeIgniter ก่อนอื่นคุณต้องโหลดไลบรารีอีเมลโดยใช้สิ่งต่อไปนี้ -
$this->load->library('email');
หลังจากโหลดไลบรารีเพียงเรียกใช้ฟังก์ชันต่อไปนี้เพื่อตั้งค่าองค์ประกอบที่จำเป็นในการส่งอีเมล from() ฟังก์ชันใช้ในการตั้งค่า - จากตำแหน่งที่ส่งอีเมลและ to()ใช้ฟังก์ชัน - ผู้ที่กำลังส่งอีเมล subject() และ message() ฟังก์ชั่นใช้เพื่อตั้งหัวเรื่องและข้อความของอีเมล
$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
หลังจากนั้นให้เรียกใช้ไฟล์ send() ตามที่แสดงด้านล่างเพื่อส่งอีเมล
$this->email->send();
ตัวอย่าง
สร้างไฟล์คอนโทรลเลอร์ Email_controller.php และบันทึกไว้ใน application/controller/Email_controller.php.
<?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('email_form');
}
public function send_mail() {
$from_email = "[email protected]";
$to_email = $this->input->post('email');
//Load email library
$this->load->library('email');
$this->email->from($from_email, 'Your Name');
$this->email->to($to_email);
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
//Send mail
if($this->email->send())
$this->session->set_flashdata("email_sent","Email sent successfully.");
else
$this->session->set_flashdata("email_sent","Error in sending Email.");
$this->load->view('email_form');
}
}
?>
สร้างไฟล์มุมมองที่เรียกว่า email_form.php และบันทึกไว้ที่ application/views/email_form.php
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>CodeIgniter Email Example</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 ไฟล์ใน application/config/routes.php และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์
$route['email'] = 'Email_Controller';
ดำเนินการตามตัวอย่างข้างต้นโดยไปที่ลิงค์ต่อไปนี้ แทนที่ yoursite.com ด้วย URL ของไซต์ของคุณ
http://yoursite.com/index.php/email