Làm cách nào để kết nối Gmail với PHP?

PHPMailer là một trong những thư viện mã PHP phổ biến nhất được sử dụng bởi những gã khổng lồ CMS như Drupal, WordPress và Joomla, để gửi email bằng Gmail làm ứng dụng email. Với ý nghĩ đó, chúng tôi tự nhiên thực hiện hướng dẫn này về cách gửi email bằng PHPMailer qua Gmail SMTP.  

Ngoài ra, chúng tôi sẽ kiểm tra những hạn chế mà cả hai có và những lựa chọn thay thế nào hiện có. Tương tự, nếu bạn muốn tìm hiểu thêm về cách gửi email bằng PHP, hãy xem hướng dẫn toàn diện của chúng tôi về chủ đề này.  

Làm cách nào để gửi email bằng PHPMailer và Gmail SMTP?

Nếu bạn là người mới sử dụng PHPMailer và muốn khám phá ngoài thiết lập PHPMailer cho Gmail, vui lòng đọc Hướng dẫn PHPMailer của chúng tôi.

Bước đầu tiên khi gửi HTML hoặc email văn bản thuần bằng PHPMailer là yêu cầu PHPMailer sử dụng Trình soạn thảo (một trong những cách phổ biến nhất để thêm gói vào dự án PHP).

Thêm dòng này vào nhà soạn nhạc của bạn. json trong phần  “require” {}

"phpmailer/phpmailer": "^6.6"

Hoặc mở dấu nhắc lệnh trong thư mục gốc dự án của bạn và chạy

composer require phpmailer/phpmailer

Làm cách nào để kết nối Gmail với PHP?

Nếu gói được thêm thành công, bạn sẽ thấy PHPMailer có trong trình soạn thảo. tập tin json

Làm cách nào để kết nối Gmail với PHP?

Tham khảo tài liệu PHPMailer trên Github để biết hướng dẫn cài đặt chi tiết

Trước ngày 30 tháng 5 năm 2022, trong phần cài đặt bảo mật tài khoản Google của bạn, bạn phải bật “Quyền truy cập ứng dụng kém an toàn” để gửi email bằng PHPMailer. Vì tính năng “Ứng dụng kém an toàn hơn” cho phép phần mềm và thiết bị của bên thứ ba đăng nhập vào tài khoản Gmail của bạn không còn được Google hỗ trợ, bạn có thể chọn các tùy chọn khác an toàn hơn hiện có.  

Làm cách nào để kết nối Gmail với PHP?

Tìm hiểu thêm về điều này

Xác minh 2 bước

"Quyền truy cập của ứng dụng kém an toàn" không còn khả dụng đối với các tài khoản có hoặc không bật xác thực 2 yếu tố nữa. Nếu xác minh 2 bước được bật cho tài khoản Gmail của bạn và bạn cũng muốn sử dụng nó với PHPMailer, bạn sẽ cần tạo Mật khẩu ứng dụng để tiếp tục bằng cách làm theo các hướng dẫn sau của Google. Đó là mật mã gồm 16 chữ số, mà bạn nên đặt làm giá trị cho

composer require phpmailer/phpmailer
1

Làm cách nào để kết nối Gmail với PHP?

XOAuth2

OAuth2 là phương pháp phức tạp nhất nhưng vẫn được đề xuất để xác thực PHPMailer để gửi thư bằng Gmail. May mắn thay, có oauth2-google. Đây là gói hỗ trợ Google OAuth 2. 0 cho OAuth 2 của PHP League. 0 khách hàng. Nó hỗ trợ PHP 7. 0 – PHP7. 3.  

Để sử dụng nó, trước tiên bạn cần lấy ID khách hàng Google và bí mật khách hàng. Thực hiện theo hướng dẫn này của Google để thiết lập mọi thứ.  

Sau khi hoàn tất, hãy cài đặt gói bằng lệnh

composer require phpmailer/phpmailer
0 và thêm chi tiết ủy quyền như hình bên dưới

composer require league/oauth2-google

use League\OAuth2\Client\Provider\Google;
$provider = new Google([
    'clientId'     => '{google-client-id}',
    'clientSecret' => '{google-client-secret}',
    'redirectUri'  => 'https://example.com/callback-url',
]);

Để biết thêm chi tiết, hãy theo dõi oauth2-google trên GitHub.  

Bước tiếp theo là đưa thư viện PHPMailer vào tệp PHP của bạn được sử dụng để viết mã cho email html, e. g

composer require phpmailer/phpmailer
1



Sau này, bạn sẽ cần bật xác thực SMTP bằng cách kết nối với máy chủ SMTP “smtp. gmail. com“, liệt kê thông tin đăng nhập Gmail của bạn và giao thức mã hóa có liên quan. Lưu ý  trong ví dụ của chúng tôi, chúng tôi sử dụng SSL thay vì TLS làm giao thức bảo mật với cổng 465

$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';  //gmail SMTP server
$mail->SMTPAuth = true;
//to view proper logging details for success and error messages
// $mail->SMTPDebug = 1;
$mail->Host = 'smtp.gmail.com';  //gmail SMTP server
$mail->Username = '[email protected]';   //email
$mail->Password = ‘djsdjjhsdjhsdhj’ ;   //16 character obtained from app password created
$mail->Port = 465;                    //SMTP port
$mail->SMTPSecure = "ssl";

Bây giờ tất cả các cấu hình đã được thiết lập, hãy chạy tập lệnh sau sau khi nhập các giá trị thực vào trình giữ chỗ

//sender information
$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');

//receiver email address and name
$mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME'); 

// Add cc or bcc   
// $mail->addCC('[email protected]');  
// $mail->addBCC('[email protected]');  
 
 
$mail->isHTML(true);
 
$mail->Subject = 'PHPMailer SMTP test';
$mail->Body    = "

PHPMailer the awesome Package

PHPMailer is working fine for sending mail

This is a tutorial to guide you on PHPMailer integration

"; // Send mail if (!$mail->send()) { echo 'Email not sent an error was encountered: ' . $mail->ErrorInfo; } else { echo 'Message has been sent.'; } $mail->smtpClose();

Đây là kết quả của thư đã gửi.  

Làm cách nào để kết nối Gmail với PHP?

Tập lệnh PHPMailer để gửi email qua Gmail có tệp đính kèm

Sử dụng chức năng thư thông thường trong PHP, có thể gửi email có tệp đính kèm. Tuy nhiên, phương pháp này yêu cầu máy chủ thư cục bộ, viết mã dài và làm tăng khả năng xảy ra lỗi trong ứng dụng của bạn, điều này sẽ yêu cầu nhiều khắc phục sự cố trong tương lai. Vì những lý do đó, sử dụng tập lệnh PHPMailer là cách hiệu quả và an toàn hơn để thực hiện việc này

Trong ví dụ bên dưới, chúng tôi sẽ kiểm tra cách với PHPMailer, bạn có thể gửi cả tệp đính kèm đơn và nhiều tệp đính kèm. Bước đầu tiên là chuyển đường dẫn thư mục của tệp đính kèm vào phương thức

composer require phpmailer/phpmailer
2.  

$mail->addAttachment(__DIR__ . '/exampleattachment1.png');
$mail->addAttachment(__DIR__ . '/exampleattachment2.jpg');

Đây là mã đầy đủ sẽ trông như thế nào

composer require phpmailer/phpmailer
0

Đây là kết quả của quá trình gửi thư có tệp đính kèm

Làm cách nào để kết nối Gmail với PHP?

Ngoài ra, PHPMailer có thể được sử dụng trong biểu mẫu liên hệ PHP để gửi email có tệp đính kèm

Hạn chế và các vấn đề có thể

Trước khi phát triển ứng dụng có chức năng gửi email bằng PHPMailer qua Gmail, điều quan trọng là phải hiểu các giới hạn của cả hai hệ thống để tránh bất kỳ lỗi SMTP nào.

PHPMailer là một thư viện tuyệt vời giúp giảm thời gian phát triển web và giúp bạn xây dựng tính năng gửi email và các loại chức năng thông báo khác nhưng không phải không có vấn đề.

Trước đây, các lỗ hổng bảo mật đã được tìm thấy trong thư viện, đặc biệt là những lỗ hổng khiến máy chủ thư bị tấn công bằng mã độc thông qua các biểu mẫu liên hệ trên một trang web.  

Điều quan trọng cần lưu ý là PHPMailer đã vá lỗ hổng kể từ khi nó bị lộ và phát hành tài liệu về cách xử lý nó.  

Đối với hầu hết các dự án đang ở điểm bắt đầu, một tài khoản Gmail thông thường là đủ. Tuy nhiên, Gmail cũng có những hạn chế riêng và đến một giai đoạn nhất định, bạn có thể cần chuyển sang một dịch vụ phù hợp với nhu cầu của mình

  • 500 Email mỗi ngày (1 người nhận được tính là một email)
  • Thời gian chờ 24 giờ để tiếp tục gửi sau khi đạt đến ngưỡng

Có những lựa chọn thay thế nào cho PHPMailer và Gmail?

Bên cạnh Gmail, sự lựa chọn chủ yếu của nhiều người, còn có nhiều ứng dụng email miễn phí và giá cả phải chăng khác trên thị trường. Một số tương đương nhất với Gmail và chức năng của nó bao gồm

  • Thư Zoho
  • Microsoft Outlook
  • Apple Mail
  • Yahoo. Email

Ngoài hàm PHP mail() mặc định và PHPMailer phổ biến rộng rãi, còn có một vài lựa chọn thay thế khác cho phép bạn gửi thư. Chọn đúng phương pháp phụ thuộc nhiều vào mục tiêu chính của dự án của bạn. Ngoài ra, trước khi đưa ra lựa chọn của bạn, điều quan trọng là phải hiểu khả năng tự động hóa, tài liệu, mức độ bảo mật và hỗ trợ sẵn có cho giải pháp thay thế đó. Hãy nhanh chóng đi qua các tùy chọn có sẵn.  

  • Người gửi thư Symfony

Một hệ thống gửi email nội bộ của framework PHP mã nguồn mở, Symfony. Hệ thống cho phép tạo và gửi email, đồng thời đi kèm với nội tuyến CSS, tích hợp Twig, khả năng đính kèm tệp và hỗ trợ cho nhiều tin nhắn. Quan trọng nhất trong bối cảnh của chúng tôi, Symfony Mailer có thể được tích hợp trực tiếp với các nhà cung cấp dịch vụ gửi email phổ biến nhất.  

  • đóng dấu

Trình bao bọc API đơn giản không phụ thuộc vào khung, dễ tích hợp vào ứng dụng PHP. Trình bao bọc API được sử dụng trong Postmark, SendGrid, MailGun, Mandrill và nhiều dịch vụ gửi email của bên thứ ba khác có thể được sử dụng trong dự án của bạn.  

  • API thư điện tử Mailtrap

API Email cho phép bạn thực hiện khắc phục sự cố và gỡ lỗi nhanh chóng cũng như ngăn gửi các sự cố nhờ các tính năng phân tích có thể thực hiện được. Với Email API/Chuyển tiếp SMTP của chúng tôi, bạn có thể truy cập nhật ký email trong tối đa 60 ngày, do đó bạn có thể hiểu rõ hơn về vị trí của cơ sở hạ tầng email của mình

Làm cách nào để truy cập Gmail trong PHP?

Cấu hình IMAP trong Môi trường PHP và Gmail .
Cài đặt thư viện PHP IMAP. .
Bật phần mở rộng thư viện IMAP trong tệp cấu hình PHP, xóa dấu chấm phẩy (;) ở đầu dòng. .
Tăng giới hạn cho chỉ thị max_execution_time trong php. tập tin ini
Khởi động lại apache để những thay đổi này có hiệu quả

Làm cách nào để gửi Gmail bằng PHP?

Thay đổi cuối cùng được thực hiện vào ngày 30 tháng 5 năm 2022. Bài đăng trên blog này chỉ cho bạn cách sử dụng PHP để gửi email từ tài khoản Gmail của bạn. .
Viết mã PHP. Mã của chúng tôi sẽ sử dụng hàm mail()
Tạo Mật khẩu ứng dụng từ trang Cài đặt quyền và bảo mật của Google
Định cấu hình và cập nhật Postfix

Làm cách nào để sử dụng API Gmail trong PHP?

Gửi email bằng Gmail API .
Bước 1. Tạo dự án tại Google API Console
Bước 2. Bật API Gmail
Bước 3. Thông tin đăng nhập và xác thực với OAuth 2. 0
Bước 4. Chọn một hướng dẫn bắt đầu nhanh
Bước 5. thư viện máy khách API
Bước 6. Truy cập vào Gmail. Đi. Java. hồng ngọc. . BỌC LƯỚI. Nút. js. PHP. con trăn. .
Bước 7. Tạo một email
Bước 8. gửi email

Làm cách nào để kết nối IMAP trong PHP?

Kết nối với IMAP . Bạn có thể tìm hiểu về các tham số tùy chọn trong sách hướng dẫn