1. Trang chủ
  2. » Công Nghệ Thông Tin

Session 11 PHP EMail

20 182 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 342 KB

Nội dung

Để gửi Email bằng PHP, cần phải có một Web Server cho hệ thống quản lý Email gọi là Mail ServerKhi cài đặt một Mail Server, cần phải có một server và một trong các phần mềm Mail Server như MS Exchange Server, Mdeamon, Apache,…

PHP Email PHP Email  Để gửi Email PHP, cần phải có Web Server cho hệ thống quản lý Email gọi Mail Server  Khi cài đặt Mail Server, cần phải có server phần mềm Mail Server MS Exchange Server, Mdeamon, Apache,…  Sau cài đặt thành công Mail Server, ta cấu hình nhiều địa Email cho nhiều người sử dụng nhân viên công ty hay khách hàng  Với Email gửi qua Internet, cần phải có địa Email người gửi người nhận, địa người gửi phải địa Email tồn Mail Server PDO/ of 22 PHP Email  Được sử dụng để gửi mail  Cú pháp  mail(to, subject, message, headers, parameters)  Trong  to: tham số bắt buộc, địa người nhận  subject: tham số bắt buộc, tiêu đề email Chú ý: tiêu đề email không chứa kí tự xuống dòng  message: tham số bắt buộc, nội dung email gửi Chú ý dòng nên tách LF – Line Feed(\n) Mỗi dòng không vượt 70 kí tự  header: thao số trùy chọn, phần bổ sung vào header như: Fromm Cc, Bcc Chú ý: phần bổ sung nên tách với CRLF – Carriage Return Line Feed(\r\n)  parrameters: tham số tùy chọn, định tham số bổ sung cho chương trình sendemail PHP Email  Gửi email đơn giản  Cách đơn giản để gửi email với PHP gửi email dạng văn Ví dụ $to = "support@gmail.com"; $subject = "Hỏi lịch khai giảng khóa học mới"; $message = “Xin chào tư vấn! Vui lòng gửi cho lịch khai giảng khóa mới"; $from = "binh.le.nguyen@gmail.com"; $headers = "From" $from; mailto($to, $subject, $message, $headers); echo "Thư gửi đi"; PDO/ of 22 PHP Email  Tạo form để gửi mail PDO/ of 22 PHP Email if(isset($_REQUEST["to"]) && isset($_REQUEST["subject"]) && isset($_REQUEST["message"]) && isset($_REQUEST["from"])) { $to = $_REQUEST["to"]; $subject = $_REQUEST["subject"]; $message = $_REQUEST["message"]) ; $from = $_REQUEST["from "]; $headers = "From" $from; mailto($to, $subject, $message, $headers); echo "Cảm ơn bạn sử dụng mail form"; } else echo "Vui lòng điền đầy đủ thông tin"; PDO/ of 22 Secure Email  Khi gửi mail PHP, người sử dụng trái phép chèn thêm liệu vào mail headers nhập vào form  Ví dụ người dùng chèn thêm chuỗi sau vào trường nhập “from”? someone@gmail.com %0ACc:person2@gmail.com %0ABCc:person3@gmail.com, person4@gmail.com, person5@gmail.com %0ABTo:person6@gmail.com PDO/ of 22 Secure Email  Giải  Xây dựng phương thức spamcheck() có sử dụng PHP filter để xác nhận liệu đầu vào function spamcheck($field){ //FILTER_SANITIZE_EMAIL filter: loại bỏ tất kí tự email bất hợp pháp email từ chuỗi $field = filter_var($field, FILTER_SANITIZE_EMAIL); //FILTER_VALIDATE_EMAIL filter: xác nhận giá trị địa email if filter_var($field, FILTER_VALIDATE_EMAIL)){ return true; else return false; } } PDO/ of 22 Secure Email  Giải  Sử dụng phương thức if(isset($_REQUEST["to"]) && isset($_REQUEST["subject"]) && isset($_REQUEST["message"]) && isset($_REQUEST["from"])) { $mailcheck = spamcheck($_REQUEST[“from”]); if($mailcheck == FALSE) echo "Dữ liệu không hợp lệ !"; else { $to = $_REQUEST["to"]; $subject = $_REQUEST["subject"]; $message = $_REQUEST["message"]) ; $from = $_REQUEST["from "]; $headers = "From" $from; mailto($to, $subject, $message, $headers); echo "Cảm ơn bạn sử dụng mail form"; } } else echo "Vui lòng điền đầy đủ thông tin"; PDO/ of 22 PHP Mailer  Hàm mail() PHP thường bị cấm host người quản lý host sợ dùng để bomb mail (Spam)  Vì để giải vấn đề phải sử dụng tài khoản email webmail để gửi mail (SMTP) để viết mã phần đơn giản Nhưng có giải pháp dùng PHPMailer để thực PDO/ 10 of 22 Download PHPMailer  Để sử dụng PHPmailer truy cập vào website http://phpmailer.worxware.com/  Hoặc truy cập vào địa sau:  http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/ PDO/ 11 of 22 Cài đặt PHPMailer  Giải nén tập tin PHPMailer_v5.1.zip Sau copy tập tin class.phpmailer.php,class.pop3.php, class.smtp.php vào thư mục phpmailer  Nhúng (include) thư viện phpmailer vào ứng dụng //Nhúng thư viện phpmailer require_once('phpmailer/class.phpmailer.php'); //Khởi tạo đối tượng $mail = new PHPMailer(); PDO/ 12 of 22 Một số biến PHPMailer  $SMTPAuth: Dùng để có sử dụng chứng thực SMTP không Mặc định false (không chứng thực) Nếu có đặt true, sử dụng với biến Username Password để chứng thực  $Username = "": username SMTP Mặc định ""  $Password = "": password SMTP Mặc định ""  $Port = 25 : cổng server SMTP (mặc định cổng 25)  $Subject = "" : thiết lập tiêu đề cho mail Mặc định ""  $Body = "": Chỉ nội dung thông điệp để gửi Nội dung text html Nếu HTML, cần IsHTML(true)  $SMTPDebug: cho phép(enable) hiển thị thông tin debug SMTP(cho việc kiểm tra) Giá trị hiển thị lỗi thông điệp, hiển thị thông điệp  $SMTPSecure : tiền tố cho kết nối an toàn Có ba lựa chọn "", "tls", "ssl" PDO/ 13 of 22 Một số phương thức PHPMailer  Một số phương thức PHPMailer  void IsSMTP(): thiết lập để mailer gửi thông điệp SMTP Nếu thiết lập để true để trống, ngược lại để false  SetFrom($address, $name = ""): Chỉ tên địa email người gửi  AddAddress($address, $name = ""): Chỉ tên địa email người nhận  AddCC($address, $name = ""): thêm địa phần "CC" Chú ý hàm làm việc với mailer SMTP win32, không với mailer "mail"  AddBCC($address, $name = ""): thêm địa phần "BCC" Chú ý hàm làm việc với mailer SMTP win32, không với mailer "mail“  AddReplyTo($address, $name = ""): thêm địa "Reply-to"  MsgHTML($message): dụng để gửi thông điệp có dạng HTML  addAttachment($path): file đính kèm  Send(): thực gửi thông điệp gán cho mailer Nếu gửi thành công, phương thức trả true Ngược lại trả false thất bại, sử dụng biến ErrorInfo để xem thông tin lỗi PDO/ 14 of 22 Gửi email sử dụng hàm PHP mail()  Trong PHPMailer hộ trợ việc gửi email hàm PHP mail() host không khóa hàm //Nhúng thư viện tạo đối tượng phpmailer require_once('phpmailer/class.phpmailer.php'); $mail = new PHPMailer(); //Thiết lập thông tin người nhận $mail->AddAddress("zenvn@gmail.com", "ZendVN Group"); $mail->AddAddress("zenvn@yahoo.com", "ZendVN Group"); //Thiết lập tên email nhận hồi đáp từ người nhận, người nhận nhấn nút Reply $mail->AddReplyTo("vukhanh2212@yahoo.com","Pham Vu Khanh"); PDO/ 15 of 22 Gửi email sử dụng hàm PHP mail() //THIET LAP NOI DUNG EMAIL //+ Thiết lập tiêu đề $mail->Subject = "PHPMailer training by ZendVN Group"; //Thiết lập định dạng font chữ $mail->CharSet = "utf-8"; //Thiết lập nội dung email $body = "Khóa học Lập Trình PHP thực ZendVN Group"; $mail->Body = $body; if(!$mail->Send()) { echo "Mailer Error: " $mail->ErrorInfo; } else { echo "Message sent!"; } PDO/ 16 of 22 Gửi email SMTP Gmail  Có thể sử dụng tài khoản Gmail để gửi mail  Cần lưu ý dùng tài khoản gmail để thực gửi mail từ máy localhost  Mở tập tin php.ini tìm dòng “extension=php_openssl.dll” bỏ dấu chấm phẩy restart lại webserver  Gmail sử dụng SMTPSecure (“ssl”) để gửi email  Khi sử dụng ssl gmail phải sử dụng port 465 PDO/ 17 of 22 Gửi email SMTP Gmail //Nhúng thư viện tạo đối tượng phpmailer require_once('phpmailer/class.phpmailer.php'); $mail = new PHPMailer(); $mail->IsSMTP(); //Gọi đến class xử lý SMTP $mail->Host = "mail.zend.vn"; //tên SMTP server $mail->SMTPDebug = 2; //enables SMTP debug information (for testing) // = errors and messages // = messages only $mail->SMTPAuth = true; //bật chứng thực SMTP $mail->SMTPSecure = "ssl"; $mail->Host = "smtp.gmail.com"; //Thiết lập thông tin SMPT $mail->Port = 465; //Thiết lập cổng gửi email máy $mail->Username = "zendvn.demo@gmail.com"; //SMTP username tài khoản gmail bạn $mail->Password = "123456"; //SMTP password mật gmail bạn PDO/ 18 of 22 Gửi email SMTP Gmail //Thiet lap thong tin nguoi gui va email nguoi gui $mail->SetFrom('zendvn.demo@gmail.com','ZendVN Demo email'); //Thiết lập thông tin người nhận $mail->AddAddress("zendvn@gmail.com", "ZendVN Group"); $mail->AddAddress("zendvn@yahoo.com", "ZendVN Group"); //Thiết lập email nhận email hồi đáp //nếu người nhận nhấn nút Reply $mail->AddReplyTo("khanhpham@zend.vn","Pham Vu Khanh"); // THIET LAP NOI DUNG EMAIL PDO/ 19 of 22 Gửi email SMTP Gmail //Thiết lập tiêu đề $mail->Subject = "PHPMailer training by ZendVN Group"; //Thiết lập định dạng font chữ $mail->CharSet = "utf-8"; //Thiết lập nội dung email $body = "Khóa học Lập Trình PHP thực ZendVN Group"; $mail->Body = $body; if(!$mail->Send()) { echo "Mailer Error: " $mail->ErrorInfo; } else { echo "Message sent!"; } PDO/ 20 of 22 [...]...Download PHPMailer  Để sử dụng được PHPmailer đầu tiên chúng ta truy cập vào website http://phpmailer.worxware.com/  Hoặc chúng ta có thể truy cập vào địa chỉ sau:  http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%2 0php5 _6/ PDO/ 11 of 22 Cài đặt PHPMailer  Giải nén tập tin PHPMailer_v5.1.zip Sau đó copy các tập tin class.phpmailer .php, class.pop3 .php, class.smtp .php vào thư mục phpmailer... false nếu thất bại, sử dụng biến ErrorInfo để xem thông tin về lỗi PDO/ 14 of 22 Gửi email sử dụng hàm PHP mail()  Trong PHPMailer cũng hộ trợ việc gửi email bằng hàm PHP mail() nếu host của chúng ta không khóa hàm này //Nhúng thư viện và tạo đối tượng phpmailer require_once('phpmailer/class.phpmailer .php' ); $mail = new PHPMailer(); //Thiết lập thông tin người nhận $mail->AddAddress("zenvn@gmail.com",... copy các tập tin class.phpmailer .php, class.pop3 .php, class.smtp .php vào thư mục phpmailer  Nhúng (include) thư viện phpmailer vào ứng dụng //Nhúng thư viện phpmailer require_once('phpmailer/class.phpmailer .php' ); //Khởi tạo đối tượng $mail = new PHPMailer(); PDO/ 12 of 22 Một số biến của PHPMailer  $SMTPAuth: Dùng để chỉ ra có sử dụng chứng thực SMTP không Mặc định là false (không chứng thực) Nếu có... và email nhận hồi đáp từ người nhận, khi người nhận nhấn nút Reply $mail->AddReplyTo("vukhanh2212@yahoo.com","Pham Vu Khanh"); PDO/ 15 of 22 Gửi email sử dụng hàm PHP mail() //THIET LAP NOI DUNG EMAIL //+ Thiết lập tiêu đề $mail->Subject = "PHPMailer training by ZendVN Group"; //Thiết lập định dạng font chữ $mail->CharSet = "utf-8"; //Thiết lập nội dung chính của email $body = "Khóa học Lập Trình PHP. .. //Thiết lập email nhận email hồi đáp //nếu người nhận nhấn nút Reply $mail->AddReplyTo("khanhpham@zend.vn","Pham Vu Khanh"); // THIET LAP NOI DUNG EMAIL PDO/ 19 of 22 Gửi email bằng SMTP của Gmail //Thiết lập tiêu đề $mail->Subject = "PHPMailer training by ZendVN Group"; //Thiết lập định dạng font chữ $mail->CharSet = "utf-8"; //Thiết lập nội dung chính của email $body = "Khóa học Lập Trình PHP được... SMTPSecure (“ssl”) để gửi email  Khi sử dụng ssl của gmail chúng ta phải sử dụng port 465 PDO/ 17 of 22 Gửi email bằng SMTP của Gmail //Nhúng thư viện và tạo đối tượng phpmailer require_once('phpmailer/class.phpmailer .php' ); $mail = new PHPMailer(); $mail->IsSMTP(); //Gọi đến class xử lý SMTP $mail->Host = "mail.zend.vn"; //tên SMTP server $mail->SMTPDebug = 2; //enables SMTP debug information (for testing)... 16 of 22 Gửi email bằng SMTP của Gmail  Có thể sử dụng tài khoản của Gmail để gửi mail  Cần lưu ý khi dùng tài khoản gmail để thực hiện gửi mail từ máy localhost  Mở tập tin php. ini tìm dòng “extension =php_ openssl.dll” bỏ dấu chấm phẩy và restart lại webserver  Gmail sử dụng SMTPSecure (“ssl”) để gửi email  Khi sử dụng ssl của gmail chúng ta phải sử dụng port 465 PDO/ 17 of 22 Gửi email bằng SMTP... $mail->Port = 465; //Thiết lập cổng gửi email của máy $mail->Username = "zendvn.demo@gmail.com"; //SMTP username hoặc tài khoản gmail của bạn $mail->Password = "123456"; //SMTP password hoặc mật khẩu gmail của bạn PDO/ 18 of 22 Gửi email bằng SMTP của Gmail //Thiet lap thong tin nguoi gui va email nguoi gui $mail->SetFrom('zendvn.demo@gmail.com','ZendVN Demo email' ); //Thiết lập thông tin người nhận... "tls", "ssl" PDO/ 13 of 22 Một số phương thức của PHPMailer  Một số phương thức của PHPMailer  void IsSMTP(): thiết lập để mailer gửi thông điệp bằng SMTP Nếu thiết lập để là true hoặc để trống, ngược lại để là false  SetFrom($address, $name = ""): Chỉ ra tên và địa chỉ email của người gửi  AddAddress($address, $name = ""): Chỉ ra tên và địa chỉ email người nhận  AddCC($address, $name = ""): thêm ... http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%2 0php5 _6/ PDO/ 11 of 22 Cài đặt PHPMailer  Giải nén tập tin PHPMailer_v5.1.zip Sau copy tập tin class.phpmailer .php, class.pop3 .php, class.smtp .php vào thư mục phpmailer... Gửi email sử dụng hàm PHP mail()  Trong PHPMailer hộ trợ việc gửi email hàm PHP mail() host không khóa hàm //Nhúng thư viện tạo đối tượng phpmailer require_once('phpmailer/class.phpmailer .php' );... (include) thư viện phpmailer vào ứng dụng //Nhúng thư viện phpmailer require_once('phpmailer/class.phpmailer .php' ); //Khởi tạo đối tượng $mail = new PHPMailer(); PDO/ 12 of 22 Một số biến PHPMailer 

Ngày đăng: 14/11/2015, 22:12

TỪ KHÓA LIÊN QUAN

w