Làm cách nào để gửi thông báo trong PHP?

Tất cả các ứng dụng lấy khách hàng làm trung tâm đều yêu cầu người dùng được thông báo về các sự kiện của ứng dụng như nhận thông tin đặt lại mật khẩu, xác nhận tài khoản và xử lý thanh toán. Người dùng phải mất thời gian để nhìn thấy các thông báo này hoặc không bao giờ nhìn thấy chúng nếu họ không đăng nhập vào ứng dụng. Do đó, nhiều nhà phát triển đã sử dụng email để thông báo cho người dùng khi họ cung cấp một kênh nhanh chóng, dễ truy cập để tạo cảnh báo theo sự kiện nhằm thông báo cho người dùng ngay lập tức. Nó giúp người dùng luôn cập nhật về các sự kiện ứng dụng. Khi xây dựng các ứng dụng web quy mô lớn bằng PHP, bạn có thể yêu cầu hệ thống thông báo theo hướng sự kiện để thông báo ngay cho người dùng của mình

Trong bài viết này, tôi sẽ trình bày năm cách gửi email bằng PHP đồng thời giải quyết những ưu và nhược điểm của từng phương pháp.

Điều kiện tiên quyết để gửi email

Trước khi bắt đầu, bạn cần biết rằng bạn có thể gửi hai loại email cho người dùng của mình - Email văn bản mẫu và văn bản thuần túy (Văn bản)

Email theo mẫu so với. Email văn bản thuần túy

Email theo mẫu sử dụng kiểu dáng HTML và CSS để làm cho nó trông hấp dẫn người dùng

Templated Email

Hình 01 - Email theo mẫu

Tuy nhiên, nếu yêu cầu của bạn chỉ là văn bản thuần túy với nội dung tối thiểu, thì một email văn bản đơn giản sẽ thực hiện công việc

Plain Text Email

Hình 02 - Email văn bản thuần túy

Sau khi quyết định loại email bạn muốn gửi, bạn có thể sử dụng bất kỳ cách nào trong năm cách được xây dựng bên dưới để gửi email từ ứng dụng PHP của mình

1. Gửi email bằng PHP Web Server

PHP đề xuất gửi email trực tiếp từ máy chủ web được lưu trữ bằng cách cung cấp chức năng có sẵn mail()

Có những ưu và nhược điểm khi sử dụng hàm mail() có sẵn. Hãy để chúng tôi xem xét điều này một cách chi tiết

ưu

  1. Nó rất đơn giản để sử dụng vì nó yêu cầu gọi một hàm với các tham số bắt buộc
  2. Nó được tích hợp sẵn với PHP, do đó, nó cung cấp khả năng tích hợp chặt chẽ với hệ sinh thái PHP, đảm bảo khả năng tương thích plug-and-play trên các Framework PHP
  3. Nó giúp gửi email dựa trên văn bản nội bộ một cách dễ dàng

Nhược điểm

  1. Nó không hỗ trợ cho các tệp đính kèm email
  2. Nó không hỗ trợ xác thực SMTP bên ngoài hoặc chữ ký DKIM. Nó có thể khiến email của bạn bị ứng dụng email người nhận của bạn gắn cờ là thư rác
  3. Nó không phù hợp với nhiều cảnh báo theo sự kiện của người dùng vì nó mở và đóng một Kết nối ổ cắm SMTP cho mỗi email. Do đó, email hàng loạt không hiệu quả

trình diễn

Tuy nhiên, nếu bạn cảm thấy mail() phù hợp với nhu cầu của mình, hãy xem mã hiển thị bên dưới để gửi email bằng cách sử dụng mail()

1 2 3

Hàm hiển thị ở trên là hàm thư PHP. Như bạn có thể thấy, nó chấp nhận năm tham số. Nhưng bạn có thể gửi email bằng bốn tham số được thảo luận bên dưới

  1. $to_email_address. Người nhận email. Địa chỉ này phải tuân thủ Tiêu chuẩn RFC-2822
  2. $subject. Chủ đề của email
  3. $message. Nội dung email (Văn bản/HTML). Mỗi dòng trong email không được vượt quá 70 ký tự và một dòng phải được phân tách bằng mã thông báo dòng mới (\n)
  4. $headers. Các tiêu đề của email. Tiêu đề "từ" là bắt buộc và tiêu đề "Loại nội dung" chỉ bắt buộc khi gửi email theo mẫu

Xác định email người gửi

Để thêm cấu hình người gửi của bạn, hãy truy cập tệp mail()0 và thêm cấu hình máy chủ thư của bạn, bao gồm cả địa chỉ email của người gửi

Gửi email bằng mail()

Sau khi setup xong file mail()0 gửi mail đơn giản như hình bên dưới

mail()2mail()3

mail()4

mail()5

2. Gửi Email bằng PHPMailer (SMTP)

Tùy chọn tiếp theo là sử dụng PHPMailer - Thư viện gửi email của bên thứ ba sử dụng Xác thực SMTP

SMTP là viết tắt của Simple Mail Transfer Protocol và nó được sử dụng rộng rãi trong ngành để gửi email do khả năng chuyển tiếp email qua nhiều mạng

ưu

Một số lợi thế đáng kể của việc sử dụng PHPMailer là

  1. Bạn chỉ yêu cầu thông tin xác thực SMTP của mình để bắt đầu
  2. Nhà cung cấp SMTP xử lý công việc nặng nhọc (chỉ định tiêu đề, xác minh tên miền)
  3. PHPMailer hỗ trợ gửi email mẫu thoải mái
  4. Nó không yêu cầu bạn chỉ định tiêu đề nội dung và các tiêu đề email khác. Thư viện sẽ lo việc này cho bạn

Nhược điểm

PHPMailer có nhược điểm của nó. Dưới đây là một số sai sót lớn của nó

  1. Nó không an toàn vì nó sử dụng giao thức SMTP tiêu chuẩn, dễ bị tấn công DDoS
  2. Khi PHPMailer cố gắng gửi thư, nó có giao tiếp qua lại với Máy chủ SMTP của người nhận làm trì hoãn email

trình diễn

Đoạn mã bên dưới nêu bật cách bạn có thể gửi email bằng Gmail bằng PHPMailer

Bạn cần cài đặt thư viện trong dự án PHP của mình để bắt đầu. Để làm như vậy, hãy chạy lệnh mail()6 sau đây được hiển thị bên dưới

mail()7mail()8

Sau khi cài đặt thành công PHPMailer vào Dự án PHP, tôi sẽ hướng dẫn bạn cách gửi email theo mẫu bằng PHPMailer

  1. Nhập các lớp mail()9, mail()0, mail()1 vào tệp PHP của bạn. mail()9 sẽ được sử dụng để tạo thể hiện của lớp, mail()0 để quản lý kết nối đến máy chủ SMTP có sẵn (đối với điều này, tôi sẽ sử dụng Gmail), mail()1 để xử lý bất kỳ ngoại lệ nào được đưa ra
  2. Tạo một phiên bản của mail()9 để định cấu hình kết nối SMTP và gửi email
  3. Khai báo cấu hình SMTP của bạn bằng cách cung cấp thông tin đăng nhập, cổng và máy chủ lưu trữ. Xin lưu ý rằng điều cần thiết là phải truy cập cài đặt tài khoản Gmail của bạn và cho phép các thiết bị kém an toàn hơn liên lạc với tài khoản của bạn nếu bạn đang sử dụng Gmail. Nó có thể gây ra lỗi xác thực khi bị vô hiệu hóa
  4. Xây dựng thông điệp email bằng cách cung cấp chủ đề, nội dung, người nhận và người gửi
  5. Gửi email bằng PHPMailer qua SMTP

Mã cho điều này được hiển thị dưới đây

mail()6_______0_______7

mail()8_______0_______9

3. Gửi Email bằng Symfony Mailer (SMTP)

Nếu bạn phát triển ứng dụng web của mình bằng PHP Symfony, bạn có thể xây dựng các dịch vụ thông báo tuyệt vời bằng Symfony Mailer. Ngoài hộp, Symfony Mailer sử dụng Xác thực SMTP, giúp dễ dàng kết nối với các máy chủ SMTP bên ngoài để gửi email của bạn

ưu

Sử dụng Symfony Mailer mang lại cho bạn những lợi ích này

  1. Thật dễ dàng để bắt đầu với Symfony Mailer vì nó tích hợp liền mạch với Symfony Framework
  2. Người gửi thư xử lý tất cả các công việc nặng nhọc trong khi nhà phát triển có thể gọi các phương thức API để gửi email
  3. Nó tích hợp với Twig để cung cấp một cách hiệu quả để quản lý các Mẫu HTML động

Nhược điểm

Sử dụng Symfony Mailer có những nhược điểm này

  1. Nó chỉ hỗ trợ Symfony Framework
  2. Thật chậm khi nó mở và đóng Kết nối SMTP cho mỗi email. Do đó, không nên gửi email giao dịch hàng loạt bằng Symfony Mailer

trình diễn

Giả sử Symfony Mailer phù hợp với bạn hơn PHPMailer (với điều kiện là Symfony Mailer cung cấp một cách hiệu quả để xử lý các mẫu bằng Twig). Trong trường hợp đó, đoạn mã dưới đây cho biết cách bạn có thể gửi email bằng Gmail bằng Symfony Mailer

Một lưu ý quan trọng là bạn phải đang chạy Symfony Project để sử dụng Symfony Mailer

Trước tiên, hãy cho phép tài khoản Google của bạn được truy cập từ các thiết bị kém an toàn hơn

Sau đó, bạn có thể cài đặt thư viện Symfony Mailer bằng Composer bằng lệnh bên dưới

mail()7mail()1

Sau đó, bạn cần thêm Gmail SMTP Provider cho Symfony bằng Composer bằng lệnh bên dưới

mail()7mail()3

Sau đó, thêm Cấu hình SMTP của bạn vào tệp mail()4 như hình bên dưới

mail()7mail()6

Ghi chú. Nếu mật khẩu của bạn có các ký tự đặc biệt, hãy đảm bảo rằng bạn đã "mã hóa URL" để tránh lỗi phân tích cú pháp

Sau đây, hãy tạo bộ điều khiển email có thể được sử dụng để gửi email. Tất cả các email sẽ được gửi bằng cách sử dụng cấu hình bạn đã cung cấp ở trên

mail()7mail()8

mail()9

1 2 30

Đoạn mã trên sẽ gửi thành công email bằng Gmail SMTP

4. Gửi email bằng API email giao dịch

Giả sử ứng dụng của bạn có các giao dịch (xác nhận thanh toán, xác nhận tài khoản, xác minh mật khẩu và phân phối biên nhận) yêu cầu gửi email tự động và phân tích email. Trong trường hợp đó, phương pháp Xác thực SMTP sẽ không phù hợp với bạn vì ứng dụng của bạn sẽ mở và đóng kết nối ổ cắm SMTP cho mỗi email. Tốn nhiều tài nguyên, tốn kém và không hiệu quả

Trong những trường hợp này, bạn có thể sử dụng API Email giao dịch để tự động gửi email giao dịch của mình theo chương trình bằng API hoặc Chuyển tiếp SMTP

Có nhiều nhà cung cấp API email giao dịch. Hai dịch vụ thường được sử dụng là

ưu

Một số lợi thế của việc sử dụng API email giao dịch là

  1. Các nhà cung cấp email nổi tiếng và được ủy quyền. Do đó, email của bạn không bị gửi vào thư rác
  2. Bạn có quyền truy cập vào phân tích để theo dõi tỷ lệ xem tỷ lệ gửi email
  3. Họ làm việc trên "email-as-a-service. " Do đó, họ có thể tăng giảm quy mô theo yêu cầu của bạn một cách dễ dàng, đảm bảo thời gian ngừng hoạt động ở mức tối thiểu

Nhược điểm

Tuy nhiên, việc sử dụng API email giao dịch mang lại những nhược điểm của nó. Một số nhược điểm này là

  1. Các dịch vụ phụ thuộc vào hỗ trợ ngôn ngữ (Một số API email không hoạt động đối với các khung PHP cụ thể)
  2. Các API này có đường cong học tập cao

trình diễn

Nếu cần API email giao dịch, hãy làm theo hướng dẫn này để gửi email bằng SendGrid (API email giao dịch) bằng PHP

Đầu tiên, cần có tài khoản SendGrid. Bạn có thể tạo một tài khoản SendGrid miễn phí cho phép bạn gửi 100 email mỗi ngày

Sau khi tạo tài khoản, bạn cần tạo người gửi đã xác minh trên SendGrid. Nó giúp SendGrid xác minh người gửi

Create SendGrid Account

Hình 03 - Tạo Người gửi đã xác minh trên SendGrid

Sau đó, tốt nhất là tạo Khóa API để giao tiếp với SendGrid từ ứng dụng PHP của bạn

Create SendGrid API

Hình 04 - Tạo API Key trong SendGrid

Sau khi khóa được tạo, hãy thêm nó vào các biến môi trường trong dự án PHP của bạn

Tiếp theo, cài đặt SendGrid trong dự án PHP của bạn bằng cách sử dụng mail()6 bằng lệnh bên dưới

mail()71 2 33

Tiếp theo, tạo một tệp PHP mới và thêm mã hiển thị bên dưới

1 2 34_______4_______5

Mã hiển thị ở trên sẽ giúp bạn gửi email bằng API Email giao dịch. Đảm bảo thay thế khóa API bằng khóa của bạn và tham số "1 2 36" bằng địa chỉ email bạn đã xác minh trước đó. Nếu không, sẽ có ngoại lệ

Để kiểm tra xem email có được gửi hay không, hãy truy cập Bảng điều khiển SendGrid và điều hướng đến "Hoạt động của bạn. " Nó cung cấp phân tích để theo dõi xem email của bạn có được gửi hay không và liệu người nhận có mở/xem email hay không

Nếu ứng dụng của bạn cần thông báo cho người dùng trên nhiều kênh như Email, SMS, Thông báo đẩy, bạn có thể cần đến dịch vụ thông báo đa kênh. Sử dụng dịch vụ thông báo đa kênh hợp lý hóa luồng thông báo của bạn vì dịch vụ này cung cấp cho bạn khả năng định cấu hình các kênh cần thiết và giao tiếp với tất cả các kênh đó bằng một API

ưu

Do đó, sử dụng thông báo đa kênh có những lợi thế quan trọng

  1. Bạn có thể thông báo cho người dùng trên nhiều kênh thông báo bằng một API
  2. Vì tất cả các kênh đều yêu cầu một API nên bạn không cần duy trì một cơ sở mã lớn giúp tăng khả năng bảo trì
  3. Bạn có thể thêm nhiều kênh thông báo hơn trong tương lai mà không cần chạm vào cơ sở mã của mình. Do đó, bất kỳ người dùng không có kỹ thuật nào cũng có thể quản lý dịch vụ thông báo của bạn
  4. Nó cung cấp phân tích cho các thông báo

Nhược điểm

Dịch vụ thông báo đa kênh không phải là tất cả về mặt tích cực của nó. Một số nhược điểm quan trọng của điều này là

  1. Có thể tốn kém khi sử dụng nhiều kênh thông báo
  2. Bạn bị giới hạn bởi số lượng thông báo tối đa mỗi tháng (dựa trên nhà cung cấp)

Tuy nhiên, nếu bạn yêu cầu dịch vụ thông báo đa kênh nhưng những nhược điểm này đang cản trở bạn, dịch vụ thông báo đa kênh hiệu quả về chi phí mà bạn có thể sử dụng là Chuyển phát nhanh

Courier cung cấp gói miễn phí 10.000 email mỗi tháng và thậm chí cung cấp cho bạn khả năng sử dụng Nhà cung cấp dịch vụ email của bạn. Ngoài ra, nó tích hợp liền mạch với các API email giao dịch phổ biến như SendGrid và Amazon SES, cho phép bạn quản lý quy trình thông báo đa kênh của mình một cách hiệu quả. Hơn nữa, Courier cung cấp cho bạn quy trình thiết lập dễ dàng để giúp bạn định cấu hình ứng dụng của mình để gửi email bằng Gmail trong vài phút

Do đó, tôi khuyên bạn nên sử dụng Courier trong ứng dụng web PHP của mình để xây dựng dịch vụ thông báo đa kênh

trình diễn

Nếu quyết định tích hợp Courier, bạn có thể làm theo các bước được thảo luận bên dưới để gửi email qua Gmail bằng Courier

Để bắt đầu, bạn sẽ cần có tài khoản Courier. Do đó, hãy theo liên kết này để đăng ký tài khoản miễn phí - https. //ứng dụng. chuyển phát nhanh. com/đăng ký

Sau khi tạo tài khoản của bạn, hãy để chúng tôi tạo một thông báo. Trong bảng điều khiển Chuyển phát nhanh của bạn, chọn Trình thiết kế và tạo thông báo. Bạn sẽ thấy kết quả hiển thị bên dưới

Create Email Notification

Hình 05 - Tạo thông báo trong Courier

Tiếp theo, bạn sẽ cần định cấu hình nhà cung cấp. Đối với điều này, chúng tôi sẽ chọn Gmail

Send Email Using Gmail

Hình 06 - Thêm Gmail làm nhà cung cấp thông báo của bạn

Sau khi thêm nhà cung cấp cho thông báo, hãy tiếp tục tạo mẫu theo sở thích của bạn. Bạn có thể thêm logo, khối mã, danh sách dấu đầu dòng và đính kèm dữ liệu động vào đó bằng cách truy cập thanh công cụ mẫu như bên dưới

Customize Email TemplateHình 07 - Tùy chỉnh Mẫu Email Chuyển phát nhanh

Sau khi tùy chỉnh mẫu của bạn, hãy xuất bản tất cả các thay đổi

Sau đó, điều hướng đến menu Tích hợp và ủy quyền cho tài khoản Google của bạn gửi email bằng Chuyển phát nhanh

Authorize Google to Send Emails

Hình 08 - Cấp quyền cho Google gửi email bằng Courier

Tiếp theo, chúng ta có thể cài đặt Courier API trong ứng dụng PHP. Courier khuyên bạn nên cài đặt SDK của họ bằng Composer. Do đó, hãy sử dụng lệnh hiển thị bên dưới

mail()71 2 38

Sau khi cài đặt thành công Courier, hãy sử dụng mã hiển thị bên dưới để gửi email qua Gmail bằng Courier

1 2 34_______5_______0

Bạn có thể cập nhật mã với các biến của mình và gửi email bằng Gmail. Có thể nhận được $to_email_address1 và $to_email_address2 bằng cách truy cập phần cài đặt của bất kỳ thông báo nào bạn đã tạo

Email Notification Auth Token

Hình 09 - Lấy Auth Token và Notification ID

Chuyển phát nhanh sẽ gửi email của bạn thông qua tài khoản Gmail được ủy quyền. Sau khi email được gửi, hãy truy cập Bảng điều khiển chuyển phát nhanh và điều hướng đến phần Dữ liệu. Từ đó, bạn có quyền truy cập vào nhiều công cụ phân tích như gửi, trạng thái đọc và các lỗi mà Chuyển phát nhanh gặp phải khi gửi email

Sau đó, bạn có thể thêm nhiều kênh hơn và cập nhật biến $to_email_address3 với các tham số cần thiết để hỗ trợ các kênh thông báo mới

Phần kết luận

Bài viết này đã xem xét các email theo khuôn mẫu và văn bản và khám phá năm cách khác nhau để gửi email bằng PHP

Tôi hy vọng bài viết này sẽ giúp bạn lựa chọn phù hợp nhất cho ứng dụng PHP của bạn. Làm như vậy sẽ giúp các ứng dụng PHP của bạn dễ dàng gửi email và thông báo theo sự kiện để đảm bảo rằng người dùng của bạn được thông báo về các sự kiện của ứng dụng của bạn

Làm cách nào để gửi thông báo tới email trong PHP?

php // Nhập các lớp PHPMailer sử dụng PHPMailer\PHPMailer\PHPMailer; . GỠ LỖI_SERVER;

Làm cách nào để gửi thông báo đẩy web bằng PHP?

Trong bài viết này, bạn có thể đọc về những điều sau. .
Đăng ký ở phía khách hàng. Kiểm tra xem có thông báo đẩy không. Xin phép gửi thông báo đẩy cho người dùng. .
Nhận và lưu đăng ký trên máy chủ
Tạo và gửi thông báo. tiêu đề. Mã hóa tải trọng

Làm cách nào để tạo thông báo bật lên trong PHP?

PHP là ngôn ngữ phía máy chủ và không hỗ trợ thông báo cảnh báo bật lên. Trình duyệt của khách hàng đưa ra cảnh báo. Để bật một thông báo cảnh báo qua PHP, chúng tôi cần kết xuất mã JavaScript bằng PHP và gửi mã đó tới trình duyệt . JavaScript là ngôn ngữ phía máy khách.

Làm cách nào để gửi thông báo firebase trong PHP?

Đi tới tab “Nhắn tin qua đám mây” và ghi lại Khóa máy chủ của bạn. Dịch vụ PHP của bạn sẽ sử dụng thông tin xác thực này để gửi thông báo tới API Firebase . Bạn cần đăng ký các ứng dụng dành cho thiết bị di động của mình trong bảng điều khiển Firebase. Quay lại trang chủ, sử dụng các nút “Thêm ứng dụng” để thêm các thành phần iOS và Android của bạn.