Tập lệnh gửi thư Php GitHub

Nhiều nhà phát triển PHP sử dụng email trong mã của họ. Hàm PHP duy nhất hỗ trợ điều này là hàm mail(). 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ư email và tệp đính kèm dựa trên HTML

Định dạng email chính xác khó đến mức đáng ngạc nhiên. Có vô số RFC chồng chéo, đò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 mail() hoàn toàn sai. 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, Zend_Mail, eZcomponents, v.v.

Hàm PHP mail() 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 sendmail trên nền tảng Linux, BSD và OS X, tuy nhiên, Windows thường không bao gồm máy chủ thư cục bộ;

Cài đặt & tải

PHPMailer có sẵn thông qua Composer/Packagist (sử dụng phiên bản ngữ nghĩa), vì vậy chỉ cần thêm dòng này vào tệp composer.json của bạn

"phpmailer/phpmailer": "~5.2"

hoặc là

composer require phpmailer/phpmailer

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 league/oauth2-client

Ngoài ra, 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
0 được chỉ định trong cấu hình PHP của bạn. Nếu bạn không nói được git hoặc chỉ muốn có một tarball, hãy nhấp vào nút 'zip' ở đầu trang trong GitHub

Nếu bạn không sử dụng trình tải tự động của nhà soạn nhạc, PHPMailer cung cấp trình tải tự động tương thích với SPL và đó là cách tải thư viện ưa thích - chỉ cần

composer require phpmailer/phpmailer
1 và mọi thứ sẽ hoạt động. Trình tải tự động không đưa ra lỗi nếu nó không thể tìm thấy các lớp để nó tự thêm vào danh sách SPL, cho phép trình tải tự động của riêng bạn (hoặc khung của bạn) bắt lỗi. Tự động tải SPL đã được giới thiệu trong PHP 5. 1. 0, vì vậy nếu bạn đang sử dụng phiên bản cũ hơn, bạn sẽ cần yêu cầu/bao gồm từng lớp theo cách thủ công

PHPMailer không khai báo không gian tên vì không gian tên chỉ được giới thiệu trong PHP 5. 3

Nếu bạn muốn sử dụng cơ chế xác thực XOAUTH2 của Google, bạn cần chạy ít nhất PHP 5. 4 và tải các phụ thuộc được liệt kê trong composer.json

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 trình soạn thảo 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 lớp. phpmailer. php. Nếu bạn đang sử dụng SMTP, bạn sẽ cần lớp. smtp. php và nếu bạn đang sử dụng POP trước SMTP, bạn sẽ cần lớp. pop3. php. Đối với tất cả những điều này, chúng tôi khuyên bạn cũng nên sử dụng trình tải tự động vì nếu không, bạn sẽ phải

composer require phpmailer/phpmailer
3 tất cả các lớp theo cách thủ công hoặc sử dụng một số trình tải tự động khác. 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. Bạn có thể cần các lớp bổ sung trong thư mục bổ sung nếu bạn đang sử dụng các tính năng đó, bao gồm xác thực NTLM và tạo ics. Nếu bạn đang sử dụng Google XOAUTH2, bạn cũng sẽ cần các lớp
composer require phpmailer/phpmailer
4 và
composer require phpmailer/phpmailer
5, cũng như các phần phụ thuộc của nhà soạn nhạc

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

<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // 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 = '[email protected]';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
$mail->addAddress('[email protected]');               // Name is optional
$mail->addReplyTo('[email protected]', 'Information');
$mail->addCC('[email protected]');
$mail->addBCC('[email protected]');

$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

Bạn sẽ tìm thấy nhiều hơn nữa để chơi trong thư mục ví dụ

Đó 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 rất nhiều (46 tại thời điểm viết. ) 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 bản dịch, ví dụ:

composer require phpmailer/phpmailer
6 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

// To load the French version
$mail->setLanguage('fr', '/optional/path/to/language/directory/');

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 để thực hiện, 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

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

Có các mẹo và hướng dẫn khắc phục sự cố trong GitHub wiki. Nếu bạn gặp sự cố, đây sẽ là nơi đầu tiên bạn xem vì nó được cập nhật thường xuyên nhất

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

Bạn sẽ tìm thấy một số tài liệu cấp người dùng cơ bản trong thư mục tài liệu và bạn có thể tạo tài liệu cấp API hoàn chỉnh bằng cách sử dụng các tài liệu được tạo. sh shell script trong thư mục tài liệu, tuy nhiên trước tiên bạn cần cài đặt PHPDocumentor. Bạn có thể thấy các bài kiểm tra đơn vị là một nguồn 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

Làm cách nào để viết mã 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
Môn học. Đặt chủ đề của Thư
Cơ thể người. Đặ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

Làm cách nào để tích hợp PHPMailer trong PHP?

php yêu cầu 'nhà cung cấp/tự động tải. php'; . người dẫn chương trình. com'; . tld'; . ';

PHPMailer có cần SMTP không?

Để PHPMailer có thể gửi email từ ứng dụng PHP của bạn, bạn cần kết nối ứng dụng này với máy chủ SMTP .

Làm cách nào để gửi nhiều email bằng PHPMailer?

phpmailer. php'); . com'; . $ email->send()) { echo "Lỗi Mailer. "