Phpmailer được cài đặt ở đâu?

Đối với việc bạn viết các ứng dụng web có ứng dụng gửi thư thì PHPMailer là một thư viện được lựa chọn hợp lý. Mặc dù trong PHP đã có sẵn hàm gửi mail rồi nhưng thông thường thì hàm mail này bị chặn hoặc mail bạn gửi có thể nằm trong mục spam.

Việc sử dụng thư viện PHPMailer cũng khá đơn giản, các bạn theo dõi các phần hướng dẫn sau đây để có thể sử dụng thư viện PHPMailer hiệu quả.

Trước tiên, các bạn tải thư viện PHPMailer tại địa chỉ https. //github. com/PHPMailer/PHPMailer.

Trong gói thư viện này có 5 tập tin trong thư mục src, đây là toàn bộ thư viện PHPMailer mà các bạn cần sử dụng. Các bạn có thể sao chép 5 tập tin này vào ứng dụng web của các bạn.

Tại vị trí các bạn muốn gửi thư, các bạn khai báo khối lệnh sau.

PHP.

//Require các thư viện PHPMailer
require 'path/to/PHPMailer/Exception.php';
require 'path/to/PHPMailer/PHPMailer.php';
require 'path/to/PHPMailer/SMTP.php';

//Khai báo sử dụng namespace [Lưu ý tới vị trí khai báo này]
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Khởi tạo đối tượng PHPMailer
$PHPMailer = new PHPMailer[true];

//Khai báo cấu hình và gửi mail
try {
    $PHPMailer->SMTPDebug = 2;
    $PHPMailer->isSMTP[];
    $PHPMailer->Host = 'smtp.example.com';
    $PHPMailer->SMTPAuth = true;
    $PHPMailer->Username = 'username@example.com';
    $PHPMailer->Password = 'secret';
    $PHPMailer->SMTPSecure = 'tls';
    $PHPMailer->Port = 587;
   
    $PHPMailer->setFrom['from@example.com', 'From'];
    $PHPMailer->addAddress['recipient@example.com', 'Recipient'];
   
    $PHPMailer->isHTML[true];
    $PHPMailer->Subject = 'Here is the subject';
    $PHPMailer->Body = 'This is the HTML message body';
   
    $PHPMailer->send[];
} catch [Exception $exception] {
    echo $PHPMailer->ErrorInfo;
}

Các bạn lưu ý thay đổi đường dẫn đến thư viện tập tin chính xác cũng như các thông tin về máy chủ gửi thư, tài khoản, mật khẩu, cổng SMTP.

To CC or BCC to other account, các bạn khai báo như sau.

PHP.

$PHPMailer->addCC['cc@example.com'];
$PHPMailer->addBCC['bcc@example.com'];

To file đính kèm, các bạn khai báo như sau.

PHP.

$PHPMailer->addAttachment['path/to/file.zip'];

Các bạn có thể tìm hiểu thêm về thư viện PHPMailer tại địa chỉ //github.com/PHPMailer/PHPMailer/blob/master/README.md.

 

Bài viết này sẽ giới thiệu về PhPMailer và các tính năng cơ bản. Nếu cần hỗ trợ, vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext. 3, email về support@vinahost. vn hoặc chat với VinaHost qua livechat https. //trò chuyện trực tiếp. vinahost. vn/chat. php

1. Giới thiệu về ngôn ngữ PhP cho ai nghe lần đầu

PHP. Bộ tiền xử lý siêu văn bản, thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hoặc một loại mã chủ yếu được sử dụng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, sử dụng cho mục đích tổng thể. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, thu gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở nên nhanh chóng.

Ngôn ngữ, thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc. , công ty do các nhà phát triển phần cốt lõi của PHP khởi tạo nên khuyến khích tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển vào quy mô doanh nghiệp

2. Giới thiệu về PhPMailer

Đa số những ai có một trang web riêng cho mình thì mục đích của đại đa số sẽ được sử dụng cho mục đích kinh doanh hoặc quảng bá về một điều gì đó của riêng mình

Bạn đang sở hữu một trang web bán hàng trực tuyến, bạn mong muốn nhận được thông báo mỗi khi có đơn hàng? . Với ngôn ngữ lập trình PHP, các bạn đã được hỗ trợ sử dụng hàm mail tuy nhiên điều này thường gặp phải các khung định dạng nhất. Do vậy bài viết hôm nay mình sẽ giới thiệu cho các bạn cách gửi mail trong PHP bằng PHPMailer. Đây là một thư viện rất cơ bản tuy nhiên không phải ai cũng biết. Các bạn hãy theo dõi bài viết dưới đây nếu đang gặp những vấn đề khó khăn trong việc gửi mail trong PHP

Vì vậy, lúc đó PhPMailer sẽ giúp bạn trong vấn đề đó

PHPMailer là mã nguồn không thể thiếu trong chương trình PHP, sử dụng PHPMailer giúp bạn cấu hình gửi thư nhanh và dễ dàng hơn. Với WordPress, ngoài việc sử dụng plugin gửi mail, bạn còn có thể tự mình cấu hình gửi mail thông qua SMTP [cổng kết nối. 25]

3. Các tính năng của PHPMailer

  • Các bạn có thể gửi thư thông qua giao thức SMTP
  • Các bạn hoàn toàn sử dụng mail cá nhân hoặc mail doanh nghiệp để gửi thông tin cho khách hàng của bạn nhằm tăng chất lượng mail của bạn
  • Gửi mail với tốc độ nhanh ít lỗi và mail được chuyển vào thẳng hộp thư đến
  • Các bạn hoàn toàn sử dụng được cc, bcc và tệp đính kèm
  • Bên cạnh đó, các bạn có thể tương tác lại với khách hàng một cách dễ dàng. Các bạn sẽ nhận được thư trong hộp thư đến của bạn

4. Cài đặt PHPMailer

Lưu ý. Để có thể sử dụng được phpMailer các bạn phải đảm bảo các tiêu chí sau

  • Các bạn đã cấu hình máy chủ smtp
  • Các bạn đã mở cổng kết nối số 25
  • Các bạn đã có tên miền của riêng mình và đã tạo bản ghi MX về máy chủ smtp của mình

Sau khi chắc chắn được các tiêu chí trên, để tải PHPMailer của bạn vào đường dẫn này

https. //github. com/PHPMailer/PHPMailer

To download you doing to the arrows like bottom

Sau khi tải file zip đó về, các bạn giải nén ra thư mục tùy ý của mình. Như mình sẽ giải nén tại thư mục /home/asengame/public_html

Ta sẽ có một thư mục như hình sau khi giải nén ra

Tại thư mục này, ta giữ nguyên không đụng chạm gì đến nó, ta sẽ tạo một tệp có tên là sendmail. php hoặc bất cứ tên gì miễn phí kết thúc bằng đuôi. php ở bên ngoài thư mục PHPMailer. Đây là cấu trúc thư mục và thư mục của tệp sendmail. php cho các bạn dễ hình dung nhất

Tại file sendmail. php you cấu hình như sau

$mail = new PHPMailer[true];                              // Khai báo hàm

try {

    //Server settings
    $mail->SMTPDebug = 2;                                 // Bật thông báo lỗi nếu như bị sai cấu hình
    $mail->isSMTP[];                                      // Sử dụng SMTP để gửi mail
    $mail->Host = 'globalproxy.online';                   // Server SMTP của mình
    $mail->SMTPAuth = true;                               // Bật xác thực SMTP
    $mail->Username = 'asengame@globalproxy.online';                 // Tài khoản email
    $mail->Password = 'asengame';                           // Mật khẩu email
    $mail->SMTPSecure = 'none';                            // Tắt SSL /TLS
    $mail->SMTPAutoTLS = false;
    $mail->SMTPSecure = false;
    $mail->Port = 25;                                                                                                              // Cổng kết nối SMTP sẽ là 25

    //Recipients
    $mail->setFrom['asengame@globalproxy.online', 'Khang'];           // Địa chỉ email và tên người gửi
    $mail->addAddress['khangnh@vinahost.vn', 'Khang VNH'];     // Địa chỉ người nhận
    //$mail->addAddress['ellen@example.com'];               // Name is optional
    //$mail->addReplyTo['info@example.com', 'Information'];
    //$mail->addCC['cc@example.com'];
    //$mail->addBCC['bcc@example.com'];

    //Attachments
    //$mail->addAttachment['/var/tmp/file.tar.gz'];         // Nếu muốn gửi thêm tệp thì uncomment dòng này
    //$mail->addAttachment['/tmp/image.jpg', 'new.jpg'];    // Và cả dòng này nữa nếu gửi trên một file

    //Content
    $mail->isHTML[true];                                  // Set email format to HTML
    $mail->Subject = 'Here is the subject';                                                 // Tiêu đề
    $mail->Body    = 'This is the HTML message body in bold!'; // Nội dung
    //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send[];
    echo 'Message has been sent';
} catch [Exception $e] {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;}

Khi cấu hình tới bước này, tùy theo cách các bạn cài đặt nó vào đâu thì mình không rõ, với mình thì mình sẽ nhập lệnh php sendmail. php để tiến hành kiểm tra thư đã được gửi đi hay chưa

[root@hoangkhangn public_html]# pwd
/home/asengame/domains/globalproxy.online/public_html

[root@hoangkhangn public_html]# ls
cgi-bin  index.html  PHPMailer  sendmail.php

[root@hoangkhangn public_html]# php sendmail.php

2021-12-16 06:34:16     SERVER -> CLIENT: 220 hoangkhangn.xyz ESMTP Exim 4.95 Thu, 16 Dec 2021 13:34:16 +0700
2021-12-16 06:34:16     CLIENT -> SERVER: EHLO hoangkhangn.xyz
2021-12-16 06:34:16     SERVER -> CLIENT: 250-hoangkhangn.xyz Hello hoangkhangn.xyz [103.153.254.233]

                                          250-SIZE 52428800
                                          250-8BITMIME
                                          250-PIPELINING
                                          250-PIPE_CONNECT
                                          250-AUTH PLAIN LOGIN
                                          250-STARTTLS
                                          250 HELP

2021-12-16 06:34:16     CLIENT -> SERVER: AUTH LOGIN
2021-12-16 06:34:16     SERVER -> CLIENT: 334 VXNlcm5hbWU6
2021-12-16 06:34:16     CLIENT -> SERVER: [credentials hidden]
2021-12-16 06:34:16     SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2021-12-16 06:34:16     CLIENT -> SERVER: [credentials hidden]
2021-12-16 06:34:16     SERVER -> CLIENT: 235 Authentication succeeded
2021-12-16 06:34:16     CLIENT -> SERVER: MAIL FROM:
2021-12-16 06:34:16     SERVER -> CLIENT: 250 OK
2021-12-16 06:34:16     CLIENT -> SERVER: RCPT TO:
2021-12-16 06:34:16     SERVER -> CLIENT: 250 Accepted
2021-12-16 06:34:16     CLIENT -> SERVER: DATA
2021-12-16 06:34:16     SERVER -> CLIENT: 354 Enter message, ending with "." on a line by itself
2021-12-16 06:34:16     CLIENT -> SERVER: Date: Thu, 16 Dec 2021 01:34:15 -0500
2021-12-16 06:34:16     CLIENT -> SERVER: To: Khang VNH 
2021-12-16 06:34:16     CLIENT -> SERVER: From: Khang 
2021-12-16 06:34:16     CLIENT -> SERVER: Subject: Here is the subject
2021-12-16 06:34:16     CLIENT -> SERVER: Message-ID: 
2021-12-16 06:34:16     CLIENT -> SERVER: X-Mailer: PHPMailer 6.5.3 [//github.com/PHPMailer/PHPMailer]
2021-12-16 06:34:16     CLIENT -> SERVER: MIME-Version: 1.0
2021-12-16 06:34:16     CLIENT -> SERVER: Content-Type: multipart/alternative;
2021-12-16 06:34:16     CLIENT -> SERVER:  boundary="b1_iRFCZiPo6QDkSqrFqdk2YyvaPPqZmFaznVB8L4YHY"
2021-12-16 06:34:16     CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER: This is a multi-part message in MIME format.
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER: --b1_iRFCZiPo6QDkSqrFqdk2YyvaPPqZmFaznVB8L4YHY
2021-12-16 06:34:16     CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER: This is the body in plain text for non-HTML mail clients
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER: --b1_iRFCZiPo6QDkSqrFqdk2YyvaPPqZmFaznVB8L4YHY
2021-12-16 06:34:16     CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER: This is the HTML message body in bold!
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER: --b1_iRFCZiPo6QDkSqrFqdk2YyvaPPqZmFaznVB8L4YHY--
2021-12-16 06:34:16     CLIENT -> SERVER:
2021-12-16 06:34:16     CLIENT -> SERVER: .
2021-12-16 06:34:16     SERVER -> CLIENT: 250 OK id=1mxkLI-00029V-8t
2021-12-16 06:34:16     CLIENT -> SERVER: QUIT
2021-12-16 06:34:16     SERVER -> CLIENT: 221 hoangkhangn.xyz closing connection

Như trên thì mình đã gửi được và không thấy báo lỗi nào, mình tiếp tục vào email khangnh@vinahost. vn to check mình đã nhận được mail gửi chưa

Chủ Đề