PHPMailer dùng để làm gì?

Nhiều nhà phát triển PHP cần gửi email từ mã của họ. Hàm PHP duy nhất hỗ trợ trực tiếp điều này là

composer require phpmailer/phpmailer
0. Tuy nhiên, nó không cung cấp bất kỳ hỗ trợ nào để sử dụng các tính năng phổ biến như mã hóa, xác thực, tin nhắn HTML và tệp đính kèm

Định dạng email chính xác khó đến mức đáng ngạc nhiên. Có vô số tiêu chuẩn chồng chéo (và xung đột), đòi hỏi phải tuân thủ chặt chẽ các quy tắc mã hóa và định dạng cực kỳ phức tạp – phần lớn mã mà bạn tìm thấy trực tuyến sử dụng trực tiếp hàm

composer require phpmailer/phpmailer
0 hoàn toàn sai, nếu không muốn nói là không an toàn

Hàm PHP

composer require phpmailer/phpmailer
0 thường gửi qua máy chủ thư cục bộ, thường được đặt trước bởi tệp nhị phân
composer require phpmailer/phpmailer
3 trên nền tảng Linux, BSD và macOS, tuy nhiên, Windows thường không bao gồm máy chủ thư cục bộ; . Tuy nhiên, hãy lưu ý rằng hàm
composer require phpmailer/phpmailer
0 nên tránh khi có thể;

Xin đừng cố gắng tự làm điều đó – nếu bạn không sử dụng PHPMailer, có rất nhiều thư viện tuyệt vời khác mà bạn nên xem trước khi sử dụng thư viện của riêng mình. Hãy thử SwiftMailer , Laminas/Mail, ZetaComponents, v.v.

Giấy phép

Phần mềm này được phân phối theo LGPL 2. 1 giấy phép, cùng với Cam kết hợp tác GPL. Vui lòng đọc GIẤY PHÉP để biết thông tin về tính khả dụng và phân phối phần mềm

Cài đặt & tải

PHPMailer có sẵn trên Packagist (sử dụng phiên bản ngữ nghĩa) và cài đặt qua Composer là cách được khuyến nghị để cài đặt PHPMailer. Chỉ cần thêm dòng này vào tệp

composer require phpmailer/phpmailer
1 của bạn

"phpmailer/phpmailer": "^6.7.1"

hoặc chạy

composer require phpmailer/phpmailer

Lưu ý rằng thư mục

composer require phpmailer/phpmailer
2 và tập lệnh
composer require phpmailer/phpmailer
3 được tạo bởi Composer;

Nếu bạn muốn sử dụng lớp xác thực XOAUTH2 của Gmail, bạn cũng sẽ cần thêm một phụ thuộc vào gói

composer require phpmailer/phpmailer
4 trong
composer require phpmailer/phpmailer
1 của mình

Ngoài ra, nếu bạn không sử dụng Trình soạn thảo, bạn có thể tải xuống PHPMailer dưới dạng tệp zip, (lưu ý rằng tài liệu và ví dụ không có trong tệp zip), sau đó sao chép nội dung của thư mục PHPMailer vào một trong các thư mục

composer require phpmailer/phpmailer
6 được chỉ định trong

________số 8

Nếu bạn không sử dụng lớp

composer require phpmailer/phpmailer
7 một cách rõ ràng (có thể là không), thì bạn không cần dòng
composer require phpmailer/phpmailer
8 cho lớp SMTP. Ngay cả khi bạn không sử dụng ngoại lệ, bạn vẫn cần tải lớp
composer require phpmailer/phpmailer
9 vì nó được sử dụng nội bộ

Phiên bản kế thừa

PHPMailer 5. 2 (tương thích với PHP 5. 0 — 7. 0) không còn được hỗ trợ, ngay cả đối với các bản cập nhật bảo mật. Bạn sẽ tìm thấy phiên bản mới nhất của 5. 2 trong 5. 2 nhánh ổn định. Nếu bạn đang sử dụng PHP 5. 5 trở lên (mà bạn nên là), hãy chuyển sang 6. x phát hành

Nâng cấp từ 5. 2

Thay đổi lớn nhất là các tệp nguồn hiện nằm trong thư mục


use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
0 và PHPMailer hiện khai báo không gian tên

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
1. Điều này có một số tác dụng quan trọng – hãy đọc hướng dẫn nâng cấp để biết thêm chi tiết

cài đặt tối thiểu

Mặc dù việc cài đặt toàn bộ gói theo cách thủ công hoặc bằng Composer rất đơn giản, thuận tiện và đáng tin cậy, nhưng bạn có thể chỉ muốn đưa các tệp quan trọng vào dự án của mình. Ít nhất bạn sẽ cần src/PHPMailer. php. Nếu bạn đang sử dụng SMTP, bạn sẽ cần src/SMTP. php và nếu bạn đang sử dụng POP trước SMTP (rất khó xảy ra. ), bạn sẽ cần src/POP3. php. Bạn có thể bỏ qua thư mục ngôn ngữ nếu bạn không hiển thị lỗi cho người dùng và có thể thực hiện với các lỗi chỉ có tiếng Anh. Nếu bạn đang sử dụng XOAUTH2, bạn sẽ cần src/OAuth. php cũng như các phụ thuộc Trình soạn thảo cho các dịch vụ bạn muốn xác thực. Thực sự, việc sử dụng Composer dễ dàng hơn nhiều

Một ví dụ đơn giản

"phpmailer/phpmailer": "^6.7.1"
4

Bạn sẽ tìm thấy nhiều thứ để thử trong thư mục ví dụ, bao gồm nhiều tình huống phổ biến bao gồm gửi qua Gmail, tạo biểu mẫu liên hệ, gửi đến danh sách gửi thư, v.v.

Nếu bạn đang sử dụng lại phiên bản (e. g. khi gửi đến danh sách gửi thư), bạn có thể cần xóa danh sách người nhận để tránh gửi thư trùng lặp. Xem ví dụ về danh sách gửi thư để được hướng dẫn thêm

Đó là nó. Bây giờ bạn đã sẵn sàng để sử dụng PHPMailer

bản địa hóa

PHPMailer mặc định là tiếng Anh, nhưng trong thư mục ngôn ngữ, bạn sẽ tìm thấy nhiều bản dịch cho các thông báo lỗi PHPMailer mà bạn có thể gặp phải. Tên tệp của chúng chứa mã ngôn ngữ ISO 639-1 cho các bản dịch, ví dụ:


use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
2 cho tiếng Pháp. Để chỉ định một ngôn ngữ, bạn cần cho PHPMailer biết nên sử dụng ngôn ngữ nào, như thế này

"phpmailer/phpmailer": "^6.7.1"
6

Chúng tôi hoan nghênh các chỉnh sửa và ngôn ngữ mới – nếu bạn đang tìm kiếm các chỉnh sửa, hãy chạy PHPMailerLangTest. php trong thư mục kiểm tra và nó sẽ hiển thị bất kỳ bản dịch nào bị thiếu

Tài liệu

Bắt đầu đọc tại wiki GitHub. Nếu bạn gặp sự cố, hãy xem hướng dẫn khắc phục sự cố vì nó được cập nhật thường xuyên

Có thể tìm thấy các ví dụ về cách sử dụng PHPMailer cho các tình huống phổ biến trong thư mục ví dụ. Nếu bạn đang tìm kiếm một điểm khởi đầu tốt, chúng tôi khuyên bạn nên bắt đầu với ví dụ về Gmail

Để giảm dấu chân mã được triển khai của PHPMailer, các ví dụ sẽ không được bao gồm nếu bạn tải PHPMailer qua Trình soạn thảo hoặc qua tải xuống tệp zip của GitHub, vì vậy bạn sẽ cần sao chép kho lưu trữ git hoặc sử dụng các liên kết ở trên để truy cập trực tiếp vào các ví dụ

Tài liệu API được tạo hoàn chỉnh có sẵn trực tuyến

Bạn có thể tạo tài liệu cấp API hoàn chỉnh bằng cách chạy


use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
3 trong thư mục cấp cao nhất và tài liệu sẽ xuất hiện trong thư mục

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
4, mặc dù bạn sẽ cần cài đặt PHPDocumentor. Bạn có thể thấy bài kiểm tra đơn vị là một tài liệu tham khảo tốt về cách thực hiện các thao tác khác nhau, chẳng hạn như mã hóa

Nếu tài liệu không đề cập đến những gì bạn cần, hãy tìm kiếm nhiều câu hỏi trên Stack Overflow và trước khi đặt câu hỏi về "Lỗi SMTP. Không thể kết nối với máy chủ SMTP. ", hãy đọc hướng dẫn khắc phục sự cố

bài kiểm tra

Các bài kiểm tra PHPMailer sử dụng PHPUnit 9, với một polyfill để cho phép các bài kiểm tra kiểu 9 chạy trên các phiên bản PHPUnit và PHP cũ hơn

Nếu điều này không trôi qua, bạn có thể làm gì để giúp đỡ?

Bảo vệ

Vui lòng tiết lộ bất kỳ lỗ hổng nào được tìm thấy một cách có trách nhiệm – báo cáo riêng các vấn đề bảo mật cho người bảo trì

Xem tư vấn bảo mật của SECURITY và PHPMailer trên GitHub

Đóng góp

Vui lòng gửi báo cáo lỗi, đề xuất và yêu cầu kéo tới trình theo dõi vấn đề GitHub

Chúng tôi đặc biệt quan tâm đến việc khắc phục các trường hợp cạnh, mở rộng phạm vi kiểm tra và cập nhật bản dịch

Nếu bạn tìm thấy lỗi trong tài liệu hoặc muốn thêm nội dung nào đó, hãy tiếp tục và sửa đổi wiki – bất kỳ ai cũng có thể chỉnh sửa nó

Nếu bạn có bản sao git từ trước khi chuyển sang tổ chức PHPMailer GitHub, bạn sẽ cần cập nhật bất kỳ URL từ xa nào tham chiếu đến vị trí GitHub cũ bằng một lệnh như thế này từ trong bản sao của bạn

"phpmailer/phpmailer": "^6.7.1"
9

Vui lòng không sử dụng các dự án SourceForge hoặc Google Code nữa;

Sự tài trợ

Thời gian và tài nguyên phát triển cho PHPMailer được cung cấp bởi Smartmessages. net, hệ thống tiếp thị email ưu tiên quyền riêng tư duy nhất trên thế giới

Mọi sự đóng góp đều rất được hoan nghênh, dù là bia🍺, áo phông👕 hay tiền mặt lạnh💰. Tài trợ thông qua GitHub là một cách đơn giản và thuận tiện để nói "cảm ơn" với những người bảo trì và cộng tác viên của PHPMailer – chỉ cần nhấp vào nút "Nhà tài trợ" trên trang dự án. Nếu công ty của bạn sử dụng PHPMailer, hãy cân nhắc tham gia chương trình hỗ trợ doanh nghiệp của Tidelift

PHPMailer dành cho doanh nghiệp

Có sẵn như là một phần của Đăng ký Tidelift

Những người bảo trì PHPMailer và hàng nghìn gói khác đang làm việc với Tidelift để cung cấp hỗ trợ thương mại và bảo trì cho các gói nguồn mở mà bạn sử dụng để xây dựng ứng dụng của mình. Tiết kiệm thời gian, giảm rủi ro và cải thiện tình trạng của mã, đồng thời trả tiền cho người bảo trì các gói chính xác mà bạn sử dụng. Tìm hiểu thêm

Sử dụng PHPMailer có an toàn không?

PHPMailer không tự tạo/sử dụng bất kỳ SQL nào cũng như không liên quan gì đến javascript, vì vậy nó an toàn trên các mặt đó . Nó thường được sử dụng cùng với mã thực hiện cả hai, nhưng đó không phải là mối quan tâm của PHPMailer. Nó áp dụng lọc cho các tiêu đề để tránh các cuộc tấn công chèn tiêu đề và (theo như tôi biết. )

SMTP PHPMailer là gì?

PHPMailer có thể sử dụng máy chủ thư không cục bộ (SMTP) nếu bạn có xác thực. lợi thế hơn nữa bao gồm. Nó có thể in các loại thông báo lỗi khác nhau bằng hơn 40 ngôn ngữ khi gửi email không thành công. Nó đã tích hợp hỗ trợ và xác thực giao thức SMTP qua SSL và TLS.

Làm cách nào để sử dụng tập lệnh PHPMailer?

Tải trình tải tự động của nhà soạn nhạc. yêu cầu 'nhà cung cấp/tự động tải. php'; . .
isHTML(). Nếu được thông qua đúng, hãy đặt định dạng email thành HTML
Vấn đề. Đặt chủ đề của Thư
Thân thể. Đặt nội dung của Thư
AltBody. Nội dung thay thế trong trường hợp ứng dụng e-mail không hỗ trợ HTML

PHPMailer có cần SMTP không?

Yêu cầu đối với PHPMailer . Việc bạn sử dụng máy chủ thư từ nhà cung cấp hay thiết lập máy chủ của riêng bạn là quyết định của bạn. Trình soạn thảo là trình quản lý gói cho PHP được khuyến nghị cài đặt tiện ích mở rộng PHP. You need an SMTP server to use PHPMailer. It is your decision whether you use the mail server from a provider or set up your own server. Composer is a package manager for PHP which is recommended to install the PHP extension.