SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Bài 5
Chức năng gửi email cho website
Sử dụng gói PEAR Mail
Sử dụng hàm helper để gửi email
Sử dụng thư viện cURL
Mục tiêu
Bài 5 - Chức năng gửi email cho website 2
Quy trình gửi và nhận email
Sử dụng Gmail để kiểm tra kết quả gửi email
Sử dụng PEAR Mail để gửi email
Sử dụng hàm helper để gửi email
Cách gửi một email
Bài 5 - Chức năng gửi email cho website 3
Quy trình gửi và nhận email:
Quy trình gửi và nhận email
Bài 5 - Chức năng gửi email cho website 4
Ứng dụng email
máy khách
Ứng dụng email
máy khách
Máy chủ email
Máy chủ email
SMTP
POP3
IMAP
Người gửi
Người nhận
Máy chủ
Máy chủ
Ứng dụng email máy khách (Email Client)
Máy chủ email (Email Server)
Các giao thức thường dùng:
SMTP
POP3
IMAP
Một số khái niệm
Bài 5 - Chức năng gửi email cho website 5
Hàm gửi mail có sẵn của PHP có hạn chế:
Phải sửa file php.ini mỗi lần đổi máy chủ email
Không sử dụng được kết nối bảo mật
Gói PEAR Mail khắc phục được những hạn chế
trên
PEAR Mail không đi kèm sẵn với PHP mà phải cài
đặt riêng
PEAR Mail
Bài 5 - Chức năng gửi email cho website 6
Thiết lập thông số cho tài khoản Gmail:
Đăng nhập vào tài khoản
Nhấn nút Settings
Vào tab Forwarding and POP/IMAP
Trong mục POP download đánh dấu chọn vào ô
Enable POP for all mail
Nhấn nút Save changes
Sử dụng Gmail để kiểm tra kết quả
Bài 5 - Chức năng gửi email cho website 7
Thông số kết nối của máy chủ Gmail:
Sử dụng Gmail để kiểm tra kết quả
Bài 5 - Chức năng gửi email cho website 8
Bước 1: Nạp gói PEAR Mail
Sử dụng lệnh
Không cần copy file Mail.php vào mã nguồn ứng dụng
Tránh tạo file Mail.php khác để không trùng
Bước 2: Thiết lập thông số cho đối tượng mailer
mail
Sử dụng PEAR Mail để gửi email
Bài 5 - Chức năng gửi email cho website 9
require_once 'Mail.php';
//Ví dụ 1: Máy chủ SMTP đơn giản
$option = array();
$option['host'] = 'mail.example.com';
//Ví dụ 2: Máy chủ SMTP có xác thực
$option = array();
$option['host'] = 'mail.example.com';
$option['auth'] = true;
$option['username'] = 'sample.user@example.com';
$option['password'] = 'ghg44463';
Bước 3: Tạo đối tượng mailer
Sử dụng phương thức tĩnh factory trả về đối tượng
mailer dùng để gửi mail
Nếu có lỗi thì trả về đối tượng PEAR_error
Sử dụng PEAR Mail để gửi email
Bài 5 - Chức năng gửi email cho website 10
//Ví dụ 3: Máy chủ SMTP có xác thực và bảo mật SSL
$option = array();
$option['host'] = 'ssl://mail.example.com';
$option['port'] = 465;
$option['auth'] = true;
$option['username'] = 'sample.user@example.com';
$option['password'] = 'ghg44463';
$mailer = Mail::factory('smtp', $option);
Bước 4: Viết mail
Sử dụng PEAR Mail để gửi email
Bài 5 - Chức năng gửi email cho website 11
//1. Thiết lập SMTP header
$headers = array();
$headers['From'] = 'sample.user@example.com';
$headers['To'] = 'john.doe@example.com, jane.doe@example.com';
$headers['Cc'] = 'fsmith@example.org';
$headers['Bcc'] = 'jsmith@example.net';
$headers['Subject'] = 'Hello';
$headers['Content-type'] = 'text/html';
//2. Thiết lập danh sách gửi
$recipients = 'john.doe@example.com, jane.doe@example.com';
$recipients .= 'fsmith@example.org, jsmith@example.net';
//3. Thiết lập phần body
$body = "<p>Hello</p>
<p>How are you</p>";
Bước 5: Gửi mail và kiểm tra kết quả
Sử dụng PEAR Mail để gửi email
Bài 5 - Chức năng gửi email cho website 12
//1. Gửi mail
$result = $mailer->send($recipients, $header, $body);
//2. Kiểm tra kết quả và hiển thị lỗi nếu có
if (PEAR::isError($result)) {
$error = $result->getMessage();
echo htmlspecialchars($error);
}
Hàm helper
Bài 5 - Chức năng gửi email cho website 13
<?php
require_once 'Mail.php';
require_once 'Mail/RFC822.php';
function send_mail($to, $from, $subject, $body,
$is_body_html = false) {
if (!valid_email($to)) {
throw new Exception('Địa chỉ email To không
đúng: ' . htmlspecialchars($to));
}
if (!valid_email($from)) {
throw new Exception('Địa chỉ email From không
đúng: ' . htmlspecialchars($from));
}
Hàm helper
Bài 5 - Chức năng gửi email cho website 14
$smtp = array();
$smtp['host'] = 'ssl://smtp.gmail.com';
$smtp['port'] = 465;
$smtp['auth'] = true;
$smtp['username'] = 'abc@gmail.com'; //Điền địa chỉ email
thực vào đây
$smtp['password'] = '123456'; //Điền password vào đây
$mailer = Mail::factory('smtp', $smtp);
if (PEAR::isError($mailer)) {
throw new Exception('Could not create mailer');
}
//Thêm địa chỉ email vào danh sách email
$recipients = array();
$recipients[] = $to;
Hàm helper
Bài 5 - Chức năng gửi email cho website 15
//Thiết lập header
$headers = array();
$headers['From'] = $from;
$headers['To'] = $to;
$header['Subject'] = $subject;
if ($is_body_html) {
$header['Content-type'] = 'text/html';
}
//Gửi email
$result = $mailer->send($recipients, $headers,
$body);
//Kiểm tra kết quả và hiển thị lỗi nếu có
if (PEAR::isError($result)) {
throw new Exception('Error sending email: ' .
htmlspecialchars($result->getMessage()));
}
}
Hàm helper
Bài 5 - Chức năng gửi email cho website 16
function valid_email($email) {
$emailObjects =
Mail_RFC822::parseAddressList($email);
if (PEAR::isError($emailObjects)) return false;
//Lấy mailbox và host của email đầu tiên
$mailbox = $emailObjects[0]->mailbox;
$host = $emailObjects[0]->host;
//Đảm bảo mailbox và host không quá dài
if (strlen($mailbox) > 64) return false;
if (strlen($host) > 255) return false;
Hàm helper
Bài 5 - Chức năng gửi email cho website 17
//Xác thực mailbox
$atom = '[[:alnum:]_!#$%&'*+/=?^`{|}~-]+';
$doatom = '(.' . $atom . ')*';
$address = '(^' . $atom . $doatom . '$)';
$char = '([^"])';
$esc = '(["])';
$text = '(' . char . '|' . $esc . ')+';
$quoted = '(^"' . $text . '"$)';
$localPart = '/' . $address . '|' . $quoted . '/';
$localMatch = preg_match($localPart, $mailbox);
if ($localMatch === false || $localMatch != 1) {
return false;
}
Hàm helper
Bài 5 - Chức năng gửi email cho website 18
//Xác thực host
$hostname = '([[:alnum:]]([-
[:alnum:]]{0,62}[[:alnum:]])?)';
$hostnames = '(' . $hostname . '(.' . hostname .
')*)';
$top = '.[[:alnum:]]{2,6}';
$domainPart = '/^' . $hostnames . $top . '$/';
$domainMatch = preg_match($domainPart, $host);
if ($domainMatch === false || $domainMatch != 1) {
return false;
}
return true;
}
?>
Ví dụ sử dụng hàm send_email
Bài 5 - Chức năng gửi email cho website 19
require_once 'message.php';
$from = 'John Doe <john.doe@example.com>';
$to = 'Jane Doe <jane.doe@example.com>';
$subject = 'How to use PEAR Mail';
$body = '<p>Murach PHP and MySQL book has a chapter on how
to use the
<a
href="http://pear.php.net/Mail/">PEAR Mail package<a>
to send email.</p>';
$is_body_html = true;
try {
send_email($to, $from, $subject, $body,
$is_body_html);
} catch (Exception $e) {
$error = $e->getMessage();
echo $error;
}
Giới thiệu thư viện cURL
Sử dụng cURL để kết nối tới máy chủ web khác
Sử dụng API cung cấp bởi máy chủ web khác
Lấy dữ liệu từ máy chủ web khác
Bài 5 - Chức năng gửi email cho website 20
Thư viện cURL là một bộ phận của XAMPP
Phiên bản XAMPP cho Windows và MAC OS
không kích hoạt sẵn thư viện cURL
Thư viện cURL cho phép biến máy chủ web
thành trình duyệt web
Cho phép lấy dữ liệu từ máy chủ web khác và
hiển thị trên ứng dụng web của mình
Thư viện cURL
Bài 5 - Chức năng gửi email cho website 21
Sử dụng các hàm cURL thông dụng:
curl_init($url)
curl_setopt($curl, OPTION, $value)
curl_exec($curl)
curl_close($curl)
Kết nối tới máy chủ web khác
Bài 5 - Chức năng gửi email cho website 22
Ví dụ
Bài 5 - Chức năng gửi email cho website 23
//Khởi tạo phiên cURL
$curl = curl_init('http://www.abc.com');
//Thiết lập tùy chọn để phiên trả về dữ liệu
curl_setopt($curl, CURLOPT_RETURNTRANFER, true);
//Lấy dữ liệu về
$page = curl_exec($curl);
//Đóng phiên
curl_close($curl);
//Xử lý dữ liệu lấy về
$page = nl2br(htmlspecialchars($page));
echo $page;
Địa chỉ tra cứu các hàm API của Youtube:
Địa chỉ cơ sở API video Youtube:
Ứng dụng tìm kiếm của Youtube
Bài 5 - Chức năng gửi email cho website 24
http://developers.google.com/youtube/2.0/reference
http://gdata.youtube.com/feeds/api/videos
Các tham số có thể truyền thêm:
alt
q
orderby
safeSearch
Ví dụ:
Truy vấn trên URL Youtube
Bài 5 - Chức năng gửi email cho website 25
http://gdata.youtube.com/feeds/api/videos?alt=json&q=shuttle
Sử dụng cURL
để truy vấn trên Youtube
Bài 5 - Chức năng gửi email cho website 26
//Thiết lập URL cho truy vấn
$query = 'space shuttle';
$query = urlencode($query);
$base_url = 'http://gdata.youtube.com/feeds/api/videos';
$params = 'alt=json&q=' . $query;
$url = $base_url . '?' . $params;
//Sử dụng cURL để lấy dữ liệu từ kiểu JSON
$curl = curl_init($url);
curl_seopt($curl, CURLOPT_RETURNTRANSFER, true);
$json_data = curl_exec($curl);
curl_close($curl);
//Lấy mảng các video từ dữ liệu JSON
$data = json_decode($json_data, true);
$videos = $data['feed']['entry'];
Sử dụng cURL
để truy vấn trên Youtube
Bài 5 - Chức năng gửi email cho website 27
//Truy cập dữ liệu của mỗi video
foreach ($videos as $video) {
$image_url =
$video['mediagroup']['media$thumbnail'][0]['url'];
$video_url = $video['link'][0]['href'];
$text = $video['title']['$t'];
//Mã hiển thị các giá trị
}
Minh họa kết quả
Bài 5 - Chức năng gửi email cho website 28
Máy chủ email sử dụng giao thức SMTP để gửi
mail. Ứng dụng email máy khách sử dụng giao
thức POP hoặc IMAP để nhận email
Thư viện cURL cho phép bạn kết nối đến các
server khác trên web. Hầu hết các trang web lớn
đều cung cấp API cho phép sử dụng cURL để
truy cập đến dữ liệu
Tổng kết bài học
Bài 5 - Chức năng gửi email cho website 29

Más contenido relacionado

La actualidad más candente

Lập trình hướng đối tượng trong PHP
 Lập trình hướng đối tượng trong PHP Lập trình hướng đối tượng trong PHP
Lập trình hướng đối tượng trong PHPNETKO Solution
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webMasterCode.vn
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developerAiTi Education
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
Giao trinh thiet ke web bai 4 - php
Giao trinh thiet ke web   bai 4 - phpGiao trinh thiet ke web   bai 4 - php
Giao trinh thiet ke web bai 4 - phpcashdeptrai
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTMasterCode.vn
 
PHP Security File inclusion
PHP Security File inclusionPHP Security File inclusion
PHP Security File inclusionLoc Nguyen
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoZendVN
 

La actualidad más candente (16)

Php Csdlweb06
Php Csdlweb06Php Csdlweb06
Php Csdlweb06
 
Lập trình hướng đối tượng trong PHP
 Lập trình hướng đối tượng trong PHP Lập trình hướng đối tượng trong PHP
Lập trình hướng đối tượng trong PHP
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
 
Php02 ngon nguphp
Php02 ngon nguphpPhp02 ngon nguphp
Php02 ngon nguphp
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Lesson 2 practice
Lesson 2 practiceLesson 2 practice
Lesson 2 practice
 
Lesson 2 lý thuyết
Lesson 2 lý thuyếtLesson 2 lý thuyết
Lesson 2 lý thuyết
 
Subcaption help
Subcaption helpSubcaption help
Subcaption help
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Giao trinh thiet ke web bai 4 - php
Giao trinh thiet ke web   bai 4 - phpGiao trinh thiet ke web   bai 4 - php
Giao trinh thiet ke web bai 4 - php
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
 
PHP Security File inclusion
PHP Security File inclusionPHP Security File inclusion
PHP Security File inclusion
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng cao
 
Cấu trúc cơ bản
Cấu trúc cơ bảnCấu trúc cơ bản
Cấu trúc cơ bản
 

Destacado

Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webBài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webMasterCode.vn
 
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPTBài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPTMasterCode.vn
 
giáo trình an toàn thư điện tử
giáo trình an toàn thư điện tửgiáo trình an toàn thư điện tử
giáo trình an toàn thư điện tửsang dang
 
Athena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServer
Athena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServerAthena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServer
Athena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServerHuỳnh Thông
 
Slide 6 - Thiết kế Web cơ bản
Slide 6 - Thiết kế Web cơ bảnSlide 6 - Thiết kế Web cơ bản
Slide 6 - Thiết kế Web cơ bảnSống Khác
 
1 bootstrap-3-m0-slides
1 bootstrap-3-m0-slides1 bootstrap-3-m0-slides
1 bootstrap-3-m0-slidesMasterCode.vn
 
Giao thức ftp, smtp
Giao thức ftp, smtpGiao thức ftp, smtp
Giao thức ftp, smtpLittle April
 
8. web developer tools and visual studio 2013 aspdotnet-mvc5-slides
8. web developer tools and visual studio 2013 aspdotnet-mvc5-slides8. web developer tools and visual studio 2013 aspdotnet-mvc5-slides
8. web developer tools and visual studio 2013 aspdotnet-mvc5-slidesMasterCode.vn
 
Protocolo SMTP (Simple Mail Transfer Protocol)
Protocolo  SMTP (Simple Mail Transfer Protocol)Protocolo  SMTP (Simple Mail Transfer Protocol)
Protocolo SMTP (Simple Mail Transfer Protocol)Luis Alfredo Sanchez
 
Slide 1 - Thiết kế Web cơ bản
 Slide 1 - Thiết kế Web cơ bản Slide 1 - Thiết kế Web cơ bản
Slide 1 - Thiết kế Web cơ bảnSống Khác
 
Bài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTBài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTMasterCode.vn
 
Bài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPTBài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPTMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Quy chuẩn làm powerpoint
Quy chuẩn làm powerpointQuy chuẩn làm powerpoint
Quy chuẩn làm powerpointNguyễn Thân
 

Destacado (16)

Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webBài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
 
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPTBài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPT
 
Tailieu.vncty.com webmail
Tailieu.vncty.com   webmailTailieu.vncty.com   webmail
Tailieu.vncty.com webmail
 
giáo trình an toàn thư điện tử
giáo trình an toàn thư điện tửgiáo trình an toàn thư điện tử
giáo trình an toàn thư điện tử
 
Athena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServer
Athena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServerAthena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServer
Athena_BaoCao_TTTN_Huynh_Chanh_Thong_MailServer
 
Slide 6 - Thiết kế Web cơ bản
Slide 6 - Thiết kế Web cơ bảnSlide 6 - Thiết kế Web cơ bản
Slide 6 - Thiết kế Web cơ bản
 
1 bootstrap-3-m0-slides
1 bootstrap-3-m0-slides1 bootstrap-3-m0-slides
1 bootstrap-3-m0-slides
 
Giao thức ftp, smtp
Giao thức ftp, smtpGiao thức ftp, smtp
Giao thức ftp, smtp
 
8. web developer tools and visual studio 2013 aspdotnet-mvc5-slides
8. web developer tools and visual studio 2013 aspdotnet-mvc5-slides8. web developer tools and visual studio 2013 aspdotnet-mvc5-slides
8. web developer tools and visual studio 2013 aspdotnet-mvc5-slides
 
Protocolo SMTP (Simple Mail Transfer Protocol)
Protocolo  SMTP (Simple Mail Transfer Protocol)Protocolo  SMTP (Simple Mail Transfer Protocol)
Protocolo SMTP (Simple Mail Transfer Protocol)
 
Slide 1 - Thiết kế Web cơ bản
 Slide 1 - Thiết kế Web cơ bản Slide 1 - Thiết kế Web cơ bản
Slide 1 - Thiết kế Web cơ bản
 
Bài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTBài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPT
 
Smtp
SmtpSmtp
Smtp
 
Bài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPTBài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPT
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Quy chuẩn làm powerpoint
Quy chuẩn làm powerpointQuy chuẩn làm powerpoint
Quy chuẩn làm powerpoint
 

Más de MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...MasterCode.vn
 

Más de MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 

Bài 5 Chức năng gửi email cho website - Xây dựng ứng dụng web

  • 1. Bài 5 Chức năng gửi email cho website
  • 2. Sử dụng gói PEAR Mail Sử dụng hàm helper để gửi email Sử dụng thư viện cURL Mục tiêu Bài 5 - Chức năng gửi email cho website 2
  • 3. Quy trình gửi và nhận email Sử dụng Gmail để kiểm tra kết quả gửi email Sử dụng PEAR Mail để gửi email Sử dụng hàm helper để gửi email Cách gửi một email Bài 5 - Chức năng gửi email cho website 3
  • 4. Quy trình gửi và nhận email: Quy trình gửi và nhận email Bài 5 - Chức năng gửi email cho website 4 Ứng dụng email máy khách Ứng dụng email máy khách Máy chủ email Máy chủ email SMTP POP3 IMAP Người gửi Người nhận Máy chủ Máy chủ
  • 5. Ứng dụng email máy khách (Email Client) Máy chủ email (Email Server) Các giao thức thường dùng: SMTP POP3 IMAP Một số khái niệm Bài 5 - Chức năng gửi email cho website 5
  • 6. Hàm gửi mail có sẵn của PHP có hạn chế: Phải sửa file php.ini mỗi lần đổi máy chủ email Không sử dụng được kết nối bảo mật Gói PEAR Mail khắc phục được những hạn chế trên PEAR Mail không đi kèm sẵn với PHP mà phải cài đặt riêng PEAR Mail Bài 5 - Chức năng gửi email cho website 6
  • 7. Thiết lập thông số cho tài khoản Gmail: Đăng nhập vào tài khoản Nhấn nút Settings Vào tab Forwarding and POP/IMAP Trong mục POP download đánh dấu chọn vào ô Enable POP for all mail Nhấn nút Save changes Sử dụng Gmail để kiểm tra kết quả Bài 5 - Chức năng gửi email cho website 7
  • 8. Thông số kết nối của máy chủ Gmail: Sử dụng Gmail để kiểm tra kết quả Bài 5 - Chức năng gửi email cho website 8
  • 9. Bước 1: Nạp gói PEAR Mail Sử dụng lệnh Không cần copy file Mail.php vào mã nguồn ứng dụng Tránh tạo file Mail.php khác để không trùng Bước 2: Thiết lập thông số cho đối tượng mailer mail Sử dụng PEAR Mail để gửi email Bài 5 - Chức năng gửi email cho website 9 require_once 'Mail.php'; //Ví dụ 1: Máy chủ SMTP đơn giản $option = array(); $option['host'] = 'mail.example.com'; //Ví dụ 2: Máy chủ SMTP có xác thực $option = array(); $option['host'] = 'mail.example.com'; $option['auth'] = true; $option['username'] = 'sample.user@example.com'; $option['password'] = 'ghg44463';
  • 10. Bước 3: Tạo đối tượng mailer Sử dụng phương thức tĩnh factory trả về đối tượng mailer dùng để gửi mail Nếu có lỗi thì trả về đối tượng PEAR_error Sử dụng PEAR Mail để gửi email Bài 5 - Chức năng gửi email cho website 10 //Ví dụ 3: Máy chủ SMTP có xác thực và bảo mật SSL $option = array(); $option['host'] = 'ssl://mail.example.com'; $option['port'] = 465; $option['auth'] = true; $option['username'] = 'sample.user@example.com'; $option['password'] = 'ghg44463'; $mailer = Mail::factory('smtp', $option);
  • 11. Bước 4: Viết mail Sử dụng PEAR Mail để gửi email Bài 5 - Chức năng gửi email cho website 11 //1. Thiết lập SMTP header $headers = array(); $headers['From'] = 'sample.user@example.com'; $headers['To'] = 'john.doe@example.com, jane.doe@example.com'; $headers['Cc'] = 'fsmith@example.org'; $headers['Bcc'] = 'jsmith@example.net'; $headers['Subject'] = 'Hello'; $headers['Content-type'] = 'text/html'; //2. Thiết lập danh sách gửi $recipients = 'john.doe@example.com, jane.doe@example.com'; $recipients .= 'fsmith@example.org, jsmith@example.net'; //3. Thiết lập phần body $body = "<p>Hello</p> <p>How are you</p>";
  • 12. Bước 5: Gửi mail và kiểm tra kết quả Sử dụng PEAR Mail để gửi email Bài 5 - Chức năng gửi email cho website 12 //1. Gửi mail $result = $mailer->send($recipients, $header, $body); //2. Kiểm tra kết quả và hiển thị lỗi nếu có if (PEAR::isError($result)) { $error = $result->getMessage(); echo htmlspecialchars($error); }
  • 13. Hàm helper Bài 5 - Chức năng gửi email cho website 13 <?php require_once 'Mail.php'; require_once 'Mail/RFC822.php'; function send_mail($to, $from, $subject, $body, $is_body_html = false) { if (!valid_email($to)) { throw new Exception('Địa chỉ email To không đúng: ' . htmlspecialchars($to)); } if (!valid_email($from)) { throw new Exception('Địa chỉ email From không đúng: ' . htmlspecialchars($from)); }
  • 14. Hàm helper Bài 5 - Chức năng gửi email cho website 14 $smtp = array(); $smtp['host'] = 'ssl://smtp.gmail.com'; $smtp['port'] = 465; $smtp['auth'] = true; $smtp['username'] = 'abc@gmail.com'; //Điền địa chỉ email thực vào đây $smtp['password'] = '123456'; //Điền password vào đây $mailer = Mail::factory('smtp', $smtp); if (PEAR::isError($mailer)) { throw new Exception('Could not create mailer'); } //Thêm địa chỉ email vào danh sách email $recipients = array(); $recipients[] = $to;
  • 15. Hàm helper Bài 5 - Chức năng gửi email cho website 15 //Thiết lập header $headers = array(); $headers['From'] = $from; $headers['To'] = $to; $header['Subject'] = $subject; if ($is_body_html) { $header['Content-type'] = 'text/html'; } //Gửi email $result = $mailer->send($recipients, $headers, $body); //Kiểm tra kết quả và hiển thị lỗi nếu có if (PEAR::isError($result)) { throw new Exception('Error sending email: ' . htmlspecialchars($result->getMessage())); } }
  • 16. Hàm helper Bài 5 - Chức năng gửi email cho website 16 function valid_email($email) { $emailObjects = Mail_RFC822::parseAddressList($email); if (PEAR::isError($emailObjects)) return false; //Lấy mailbox và host của email đầu tiên $mailbox = $emailObjects[0]->mailbox; $host = $emailObjects[0]->host; //Đảm bảo mailbox và host không quá dài if (strlen($mailbox) > 64) return false; if (strlen($host) > 255) return false;
  • 17. Hàm helper Bài 5 - Chức năng gửi email cho website 17 //Xác thực mailbox $atom = '[[:alnum:]_!#$%&'*+/=?^`{|}~-]+'; $doatom = '(.' . $atom . ')*'; $address = '(^' . $atom . $doatom . '$)'; $char = '([^"])'; $esc = '(["])'; $text = '(' . char . '|' . $esc . ')+'; $quoted = '(^"' . $text . '"$)'; $localPart = '/' . $address . '|' . $quoted . '/'; $localMatch = preg_match($localPart, $mailbox); if ($localMatch === false || $localMatch != 1) { return false; }
  • 18. Hàm helper Bài 5 - Chức năng gửi email cho website 18 //Xác thực host $hostname = '([[:alnum:]]([- [:alnum:]]{0,62}[[:alnum:]])?)'; $hostnames = '(' . $hostname . '(.' . hostname . ')*)'; $top = '.[[:alnum:]]{2,6}'; $domainPart = '/^' . $hostnames . $top . '$/'; $domainMatch = preg_match($domainPart, $host); if ($domainMatch === false || $domainMatch != 1) { return false; } return true; } ?>
  • 19. Ví dụ sử dụng hàm send_email Bài 5 - Chức năng gửi email cho website 19 require_once 'message.php'; $from = 'John Doe <john.doe@example.com>'; $to = 'Jane Doe <jane.doe@example.com>'; $subject = 'How to use PEAR Mail'; $body = '<p>Murach PHP and MySQL book has a chapter on how to use the <a href="http://pear.php.net/Mail/">PEAR Mail package<a> to send email.</p>'; $is_body_html = true; try { send_email($to, $from, $subject, $body, $is_body_html); } catch (Exception $e) { $error = $e->getMessage(); echo $error; }
  • 20. Giới thiệu thư viện cURL Sử dụng cURL để kết nối tới máy chủ web khác Sử dụng API cung cấp bởi máy chủ web khác Lấy dữ liệu từ máy chủ web khác Bài 5 - Chức năng gửi email cho website 20
  • 21. Thư viện cURL là một bộ phận của XAMPP Phiên bản XAMPP cho Windows và MAC OS không kích hoạt sẵn thư viện cURL Thư viện cURL cho phép biến máy chủ web thành trình duyệt web Cho phép lấy dữ liệu từ máy chủ web khác và hiển thị trên ứng dụng web của mình Thư viện cURL Bài 5 - Chức năng gửi email cho website 21
  • 22. Sử dụng các hàm cURL thông dụng: curl_init($url) curl_setopt($curl, OPTION, $value) curl_exec($curl) curl_close($curl) Kết nối tới máy chủ web khác Bài 5 - Chức năng gửi email cho website 22
  • 23. Ví dụ Bài 5 - Chức năng gửi email cho website 23 //Khởi tạo phiên cURL $curl = curl_init('http://www.abc.com'); //Thiết lập tùy chọn để phiên trả về dữ liệu curl_setopt($curl, CURLOPT_RETURNTRANFER, true); //Lấy dữ liệu về $page = curl_exec($curl); //Đóng phiên curl_close($curl); //Xử lý dữ liệu lấy về $page = nl2br(htmlspecialchars($page)); echo $page;
  • 24. Địa chỉ tra cứu các hàm API của Youtube: Địa chỉ cơ sở API video Youtube: Ứng dụng tìm kiếm của Youtube Bài 5 - Chức năng gửi email cho website 24 http://developers.google.com/youtube/2.0/reference http://gdata.youtube.com/feeds/api/videos
  • 25. Các tham số có thể truyền thêm: alt q orderby safeSearch Ví dụ: Truy vấn trên URL Youtube Bài 5 - Chức năng gửi email cho website 25 http://gdata.youtube.com/feeds/api/videos?alt=json&q=shuttle
  • 26. Sử dụng cURL để truy vấn trên Youtube Bài 5 - Chức năng gửi email cho website 26 //Thiết lập URL cho truy vấn $query = 'space shuttle'; $query = urlencode($query); $base_url = 'http://gdata.youtube.com/feeds/api/videos'; $params = 'alt=json&q=' . $query; $url = $base_url . '?' . $params; //Sử dụng cURL để lấy dữ liệu từ kiểu JSON $curl = curl_init($url); curl_seopt($curl, CURLOPT_RETURNTRANSFER, true); $json_data = curl_exec($curl); curl_close($curl); //Lấy mảng các video từ dữ liệu JSON $data = json_decode($json_data, true); $videos = $data['feed']['entry'];
  • 27. Sử dụng cURL để truy vấn trên Youtube Bài 5 - Chức năng gửi email cho website 27 //Truy cập dữ liệu của mỗi video foreach ($videos as $video) { $image_url = $video['mediagroup']['media$thumbnail'][0]['url']; $video_url = $video['link'][0]['href']; $text = $video['title']['$t']; //Mã hiển thị các giá trị }
  • 28. Minh họa kết quả Bài 5 - Chức năng gửi email cho website 28
  • 29. Máy chủ email sử dụng giao thức SMTP để gửi mail. Ứng dụng email máy khách sử dụng giao thức POP hoặc IMAP để nhận email Thư viện cURL cho phép bạn kết nối đến các server khác trên web. Hầu hết các trang web lớn đều cung cấp API cho phép sử dụng cURL để truy cập đến dữ liệu Tổng kết bài học Bài 5 - Chức năng gửi email cho website 29