|
|
|
ขอความช่วยเหลือเรื่อง ส่ง E-mail Codeigniter ทีครับ |
|
|
|
|
|
|
|
ตอนสมัคร
หากบันทึกสำเร็จบันทึกข้อมูลใน Table
ซึ่งใน Table เก็บค่า Verify Code อาจจะ Random มาแล้วทำการเข้ารหัสอาจจะเป็น sha1 หรือ md5 ก็แล้วแต่ และ status: user คือ อยู่ระหว่างยืนยันสมาชิก
จากนั้นขั้นตอนส่ง e-mail ให้ส่งรายละเอียดพร้อมกับ link เพื่อคลิกสำหรับยืนยันตัวตน
โดยในlink ส่งค่า Verify Code(เข้ารหัส) ไปด้วย เช่น test.com/uid/Verify Code หรือ ถนัดแบบ test.com/uid?verify=Verify Code ก็แล้วแต่ชอบ
ขั้นการตรวจสอบ การ Verify
ที่ Controller หรือ Model แล้วแต่ชอบ
ก็ตรวจสอบ
$this->uri->segment หรือ $_GET[] ที่ส่ง verify มา ว่าตรงกับใน Database หรือ ไม่
ถ้าตรงกันก็ Update Status->User ว่ามีการ ยืนยืนตัวตนแล้ว อาจจะกำหนด Active='Y', Verify='Y' สมมุติ
แล้วก็ทำเป็น Flash Message:$this->session->flashdata แจ้งเตือนว่า User พร้อมใช้งานได้แล้ว
ไม่ยากครับ
|
|
|
|
|
Date :
2016-05-30 11:21:56 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้า Backend สำหรับ Admin
คลิกเพื่ออนุญาต แล้ว Update->Status
แล้ว Send Mail ไปหา Users
application\config\email.php
ผมกำหนดที่ config เพื่อจะได้แก้ไขที่เดี่ยวหากมีการเปลี่ยนแปลงข้อมูลเช่น รหัสผ่าน หรือ อื่นๆ
Code (PHP)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config['protocol'] = 'smtp';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['smtp_host'] = 'smtp.example.com';
$config['smtp_user'] = '[email protected]';
$config['smtp_pass '] = 'รหัสผ่าน';
$config['smtp_port'] = ระบุPort;
$config['crlf'] = "\r\n";
$config['newline'] = "\r\n";
/* End of file email.php */
/* Location: ./application/config/email.php */
Controller
Code (PHP)
public function send_mail()
{
$this->load->library('email');
$this->config->load('email', FALSE, TRUE);
$this->email->initialize(array(
'protocol' => $this->config->item('protocol'),
'smtp_host' => 'smtp.example.com',
'smtp_user' => '[email protected]',
'smtp_pass' => 'รหัสผ่าน',
'smtp_port' => กำหนด Port, //ตัวเลข
'crlf' => "\r\n",
'newline' => "\r\n"
));
$this->email->from('[email protected]', 'Information');
$this->email->to('[email protected]');
//$this->email->cc('[email protected]');
//$this->email->bcc('[email protected]');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
if ($this->email->send())
{
echo 'Your email was sent, #Codeigniter e-mail libraries.';
}
else
{
show_error($this->email->print_debugger());
}
}
|
ประวัติการแก้ไข 2016-05-30 11:55:57
|
|
|
|
Date :
2016-05-30 11:52:20 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|