Hướng dẫn dùng smtp.example.com meaning trong PHP

E-mail.png: một trong những yêu cầu hay được khách hàng nhắc đến khi làm website là cần phải có một form liên hệ. Để người viếng thăm web có thể gửi email trực tiếp từ website cho chủ nhân của website. trong bài ngày hôm này mình muốn giới thiệu tới các bạn phương pháp gửi mail trong php bằng cách sử dụng PHPMailer

1. PHP mail là gì?

Hướng dẫn dùng smtp.example.com meaning trong PHP

PHP mail() là hàm PHP được tích hợp sẵn sử dụng để gửi email. Bài viết này sẽ hướng dẫn bạn cấu hình SMTP, gửi demo email và hướng dẫn làm sạch, xác thực dữ liệu trước khi gửi email
Hàm mail() chấp nhận các tham số sau:

  • Email address
  • Subject
  • Message
  • CC or BC email addresses

Xem thêm: Tổng hợp lỗi outlook không nhận được mail mới nhất 2020

Trong lập trình web, chúng ta thường thường sử dụng hàm mail() để làm gì?

  • Đây là một cách tiết kiệm chi phí để thông báo cho người dùng về các sự kiện quan trọng.
  • Cho phép người dùng liên hệ với bạn qua email bằng cách cung cấp biểu mẫu liên hệ với chúng ta trên trang web
  • Các Lập trình viên có thể sử dụng nó để nhận lỗi hệ thống qua email
  • Bạn có thể sử dụng nó để gửi email cho người đăng ký bản tin của bạn.
  • Bạn có thể sử dụng nó để gửi liên kết đặt lại mật khẩu cho người dùng nếu họ quên mật khẩu
  • Bạn có thể sử dụng nó để gửi email liên kết kích hoạt / xác nhận. Thường là khi đăng ký tài khoản người dùng cần phải xác minh địa chỉ email của họ.
  • Và còn nhiều vấn đề khác cần dùng đến hàm mail()

2.Tại sao phải sử dụng PHPMailer?

Mặc dù trong php đang có sẵn hàm send mail rồi nhưng thường thì khi email sẽ rất chông gai phát nổ phát xịt, email của bạn đủ nội lực nằm trong mục spam hoặc sever của bạn đang bị chặn hàm gửi mail. Lúc này bạn sẽ cần phải nghĩ đến một giải pháp thay thế đó là dùng một thư viện support việc send mail.

Các chức năng của PHPMailer

  • Gửi email thông qua giao thức SMTP.
  • Có thể không khó khăn sử dụng địa chỉ email một mình hoặc email doanh nghiệp của bạn để send đi sử dụng tăng trưởng độ uy tín cho email.
  • Send mail nhanh ít lỗi mail được chuyển vào thằng vào sms.
  • Có thể thêm cc,bcc, đính kèm file.
  • Có thể tương tác hai chiều tức là khi khách hàng rep email bạn sẽ nhận được mail trong hộp thư đến của bạn.

Và còn nhiều hơn thế nữa nếu bạn chưa biết đến nó hãy dùng đi và cảm nhận.

Hướng dẫn dùng PHPMailer version 6x

Trước hết bạn cần down thư viện PHPMailer 6.05

Import thư viện

Bạn thực hiện import thư viện vào giống như sau, nhớ cải thiện đường dẫn tới mã gốc mà bạn đang lưu nhé, và phải đặt đoạn code này ở trên cùng của file.

1

2

3

4

5

6

7

8

include APPPATH . "../storage/PHPMailer-master/src/PHPMailer.php";

include APPPATH . "../storage/PHPMailer-master/src/Exception.php";

include APPPATH . "../storage/PHPMailer-master/src/OAuth.php";

include APPPATH . "../storage/PHPMailer-master/src/POP3.php";

include APPPATH . "../storage/PHPMailer-master/src/SMTP.php";

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

Xem thêm: Tổng hợp cách tạo email marketing bằng html mới nhất 2020
Thự hiện gửi mail

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

$mail = new PHPMailer(true); // Passing `true` enables exceptions

try

//Server settings

$mail->SMTPDebug = 2; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP

$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers

$mail->SMTPAuth = true; // Enable SMTP authentication

$mail->Username = ''; // SMTP username

$mail->Password = 'secret'; // SMTP password

$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted

$mail->Port = 587; // TCP port lớn connect to

//Recipients

$mail->setFrom('', 'Mailer');

$mail->addAddress('', 'Joe User'); // Add a recipient

$mail->addAddress(''); // Name is optional

$mail->addReplyTo('', 'Information');

$mail->addCC('');

$mail->addBCC('b');

//Attachments

$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments

$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name

//Content

$mail->isHTML(true); // Set email format to HTML

$mail->Subject = 'Here is the subject';

$mail->Body = 'This is the HTML message body in bold!';

$mail->AltBody = 'This is the body in plain text for non-HTML email clients';

$mail->send();

echo 'Message has been sent';

catch (Exception $e)

echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;

Hướng dẫn sử dụng PHPMailer Version 5x

Trước hết muốn dùng được bạn cần phải tải code của nó về đã.

Sau khi download bạn giải nén nó ra bạn sẽ nhận được một số file nhưng bạn chỉ cần dùng hai file đó là class.smtp.php và class.phpmailer.php còn những file khác bạn có thể nghiên cứu thêm. Trong đó có một số mẫu ví dụng cũng hay lắm đó. hiện giờ bạn hãy coppy file đó qua dự án của mình.

Sau khi đang có 2 file trên chúng ta cùng tạo 1 file có tên sendmail.php dĩ nhiên bạn đặt tền gì cũng được.

Và nội dung của file như sau.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

//goi thu vien

include('class.smtp.php');

include "class.phpmailer.php";

$nFrom = "Freetuts.net"; //mail duoc gui tu dau, thuong de ten cong ty ban

$mFrom = ''; //dia chi mail cua ban

$mPass = 'passlamatkhau'; //mat khau mail cua ban

$nTo = 'Huudepzai'; //Ten nguoi nhan

$mTo = ''; //dia chi nhan mail

$mail = new PHPMailer();

$body = 'Bạn đang tìm hiểu về cách gửi mail bằng php mailler trên freetuts.net chúc các bạn có những phút giây vui vẻ.'; // Noi dung email

$title = 'Hướng dẫn send email bằng PHPMailer'; //Tieu de gui mail

$mail->IsSMTP();

$mail->CharSet = "utf-8";

$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)

$mail->SMTPAuth = true; // enable SMTP authentication

$mail->SMTPSecure = "ssl"; // sets the prefix lớn the servier

$mail->Host = "smtp.gmail.com"; // sever gui email.

$mail->Port = 465; // cong gui mail de nguyen

// xong phan cau hinh bat dau phan gui mail

$mail->Username = $mFrom; // khai bao dia chi mail

$mail->Password = $mPass; // khai bao mat khau

$mail->SetFrom($mFrom, $nFrom);

$mail->AddReplyTo('', 'Freetuts.net'); //khi nguoi dung phan hoi se duoc gui den email nay

$mail->Subject = $title;// tieu de email

$mail->MsgHTML($body);// noi dung chinh cua mail se nam o day.

$mail->AddAddress($mTo, $nTo);

// thuc thi lenh gui email

if(!$mail->Send())

echo 'Co loi!';

else

echo 'mail của bạn đang được gửi đi hãy kiếm tra hộp thư đến để xem kết quả. ';

?>

Chỉ đơn giản thế thôi, rất nhàn phải không nào, bạn thử chạy file sendmail.php và mở hộp thư đến ra kiêm tra xem có nhận được email không nhé.

Tut tạo hàm để send mail với PHPMailer

Giống như ở phần trên bạn đã gửi email thành công nhưng giả sử trên web của bạn bạn muốn send email ở nhiều chỗ. Khi có đơn hàng mới bạn cần gửi email công nhận đơn hàng và thông báo tới quản trị viên. Thực tiễn thì phụ thuộc phần trên bạn hoàn toàn có thể tự tạo hàm cho riêng mình nhưng ở đây mình tạo mẫu cho các bạn chưa rành lắm về hàm có thể ứng dụng.Bạn hãy tạo một file functions.php để viết các hàm vào đấy. Và ở đoạn code sau tôi có tạo sẵn hai hàm một là hàm sendMail để gửi mail bình thường k có file đính kèm và hai là hàm sendMailAttachment để gửi email có kèm theo file đính kèm.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

function sendMail($title, $content, $nTo, $mTo,$diachicc='')

$nFrom = 'Freetuts.net';

$mFrom = ''; //dia chi email cua ban

$mPass = 'passlamatkhau'; //mat khau email cua ban

$mail = new PHPMailer();

$body = $content;

$mail->IsSMTP();

$mail->CharSet = "utf-8";

$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)

$mail->SMTPAuth = true; // enable SMTP authentication

$mail->SMTPSecure = "ssl"; // sets the prefix to the servier

$mail->Host = "smtp.gmail.com";

$mail->Port = 465;

$mail->Username = $mFrom; // GMAIL username

$mail->Password = $mPass; // GMAIL password

$mail->SetFrom($mFrom, $nFrom);

//chuyen chuoi thanh mang

$ccmail = explode(',', $diachicc);

$ccmail = array_filter($ccmail);

if(!empty($ccmail))

foreach ($ccmail as $k => $v)

$mail->AddCC($v);

$mail->Subject = $title;

$mail->MsgHTML($body);

$address = $mTo;

$mail->AddAddress($address, $nTo);

$mail->AddReplyTo('', 'Freetuts.net');

if(!$mail->Send())

return 0;

else

return 1;

function sendMailAttachment($title, $content, $nTo, $mTo,$diachicc='',$file,$filename)

$nFrom = 'Freetuts.net';

$mFrom = ''; //dia chi mail cua ban

$mPass = 'passlamatkhua'; //mat khau mail cua ban

$mail = new PHPMailer();

$body = $content;

$mail->IsSMTP();

$mail->CharSet = "utf-8";

$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)

$mail->SMTPAuth = true; // enable SMTP authentication

$mail->SMTPSecure = "ssl"; // sets the prefix lớn the servier

$mail->Host = "smtp.gmail.com";

$mail->Port = 465;

$mail->Username = $mFrom; // GMAIL username

$mail->Password = $mPass; // GMAIL password

$mail->SetFrom($mFrom, $nFrom);

//chuyen chuoi thanh mang

$ccmail = explode(',', $diachicc);

$ccmail = array_filter($ccmail);

if(!empty($ccmail))

foreach ($ccmail as $k => $v)

$mail->AddCC($v);

$mail->Subject = $title;

$mail->MsgHTML($body);

$address = $mTo;

$mail->AddAddress($address, $nTo);

$mail->AddReplyTo('', 'Freetuts.net');

$mail->AddAttachment($file,$filename);

if(!$mail->Send())

return 0;

else

return 1;

?>

Trong hàm trên mình có để cố định phần AddReplyTo vì theo quan niệm một mình của mình chắc phần này thường cố định ngoài ra nếu nền tảng của bạn gồm nhiều bộ phận thì đủ sức nó sẽ khác nhau bạn từ điều chỉnh cho nó thích hợp.

Ngày nay bạn quay lại file sendmail.php viết code như sau để kiểm tra nhé.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//goi thu vien

include('class.smtp.php');

include "class.phpmailer.php";

include "functions.php";

$title = 'Hướng kéo gửi mail bằng phpmailer';

$content = 'Bạn đang nghiên cứu về cách gửi email bằng php mailler trên freetuts.net chúc các bạn có những phút giây vui vẻ.';

$nTo = 'Huudepzai';

$mTo = '';

$diachicc = '';

//test gui mail

$mail = sendMail($title, $content, $nTo, $mTo,$diachicc='');

if($mail==1)

echo 'mail của bạn đã được send đi hãy kiếm tra hộp thư đến để nhìn thấy kết quả. ';

else echo 'Co loi!';

?>

Đối với hàm sendMailAttachment bạn sửa lại loại sau.

1

$mail = sendMailAttachment($title, $content, $nTo, $mTo,$diachicc='','filedinhkem.docx','Day la file dinh kem');

Bạn hãy cầu hình các thông số phù hợp sau đó chạy file sendmail.php để kiểm tra nhìn thấy.

3. Cấu ảnh tài khoản gmail để gửi được email

HIện tại google đang bổ sung một số chức năng security dành cho dịch vụ ngoài, tức là các dịch vụ send mail thông qua smtp của google, thành ra bạn phải thực hiện một số bươc sau để đủ sức gửi mail được.

Hướng dẫn dùng smtp.example.com meaning trong PHP

Không sử dụng đăng nhập 2 bước

Đăng nhập 2 bước là tính năng mỗi khi bạn đăng nhập thì google sẽ gửi mã code đến sdt của bạn, sau đó bạn nhập mã code vào thì mới tải nhập được. Vì bạn đã send auto nên phải tắt chức năng này nhé.

Để tắt thì bạn vào link này nhé, nếu bạn chưa bật thì có thẻ bỏ qua.

Bật Allow less secure apps sang ON

Bạn vào liên kết này để chuyển sang chế độ ON nhé. Thường xong bước này là bạn có thể send email tại localhost, nhưng khi upload lên hosting thì k sử dụng được, lúc này bạn phải thực hiện bước thứ 3 dưới đây.

Bật Display Unlock Captcha

Bạn vào liên kết này và click vào tiếp tục để cho phép send mail tại bên thứ 3 nhé.

Sau khi hoàn thành 3 bước trên là bạn đã send được email rồi đấy. Trường hợp luôn luôn chưa send được thì bạn cần phải xem lại hosting của bạn có hỗ trợ send mail hay không, và có một số host bắt buộc email phải theo tên miền nên k sử dụng được Gmail.

Cuối cùng hy vọng post này bổ ích với các bạn. Chúc các bạn học tốt!

Xem thêm: Hướng dẫn các cách sử dụng google webmaster tools mới nhất 2020

Lan Anh- tổng hợp

Nguồn: freetuts.net/niithanoi.edu.vn