Sendmail trong PHP có thể thực hiện được chỉ với một dòng mã. PHP chứa các hàm mail tích hợp để gửi thư
Có nhiều lý do khiến tôi cảm thấy thích thú với tính năng PHP này. Bởi vì tôi viết rất nhiều mã để gửi thư thường xuyên. PHP thực sự tiết kiệm thời gian của chúng tôi với các tính năng tích hợp sẵn của nó
Ví dụ nhanh
Trong hướng dẫn này, chúng ta sẽ xem cách thêm mã vào sendmail trong PHP. Chúng tôi sẽ xem một số ví dụ trong phần này để làm phong phú thêm các tính năng với nhiều hỗ trợ hơn
Các ví dụ danh sách dưới đây chúng ta sẽ xem bên dưới. Nó sẽ bao gồm hỗ trợ cơ bản đến đầy đủ cho sendmail trong PHP
- Thư văn bản đơn giản với thư PHP[]
- Gửi nội dung văn bản phong phú qua thư
- Gửi thư bằng PHP có tệp đính kèm
- Gửi thư bằng PHPMailer với SMTP
thư PHP[]
Thư PHP[] là để gửi thư từ một ứng dụng. Hãy xem các cấu hình PHP cần thiết để hàm mail[] hoạt động. Ngoài ra, chúng ta sẽ xem cú pháp và tham số phổ biến của hàm PHP này bên dưới
cú pháp
mail[
string $recipient_email,
string $subject,
string $message,
array|string $headers = [],
string $additional_params = ""
]
Thông số
$recipient_email
Một hoặc nhiều giá trị được phân tách bằng dấu phẩy là địa chỉ thư mục tiêu. Định dạng mẫu của các giá trị là,
- tên@miền. com
- Tên
- tên@miền. com, tên2. miền. com
- Tên, Tên2
$subject
Tiêu đề thư. Nó phải đáp ứng RFC 2047.
$message
Nội dung thư. Nó sử dụng \r\n để truyền văn bản nhiều dòng. Nó có giới hạn ký tự là 70 cho một dòng. Nó chấp nhận các loại nội dung khác nhau tùy thuộc vào thông số kỹ thuật trong tiêu đề bổ sung.
$headers
Đây là một chuỗi hoặc mảng bổ sung thêm vào tiêu đề thư. Sử dụng để chuyển mảng thông số kỹ thuật như loại nội dung, bộ ký tự, v.v. Đó là một tham số tùy chọn. Nó sử dụng \r\n để nối thêm nhiều tiêu đề. Mảng tiêu đề chứa cặp khóa-giá trị để chỉ định tên tiêu đề và thông số kỹ thuật tương ứng.
$additional_params
Đây cũng là tùy chọn. Đó là chuyển các cờ bổ sung như địa chỉ người gửi phong bì với tùy chọn dòng lệnh.
Giá trị trả về
Hàm này trả về giá trị boolean đúng hoặc sai dựa trên trạng thái đã gửi của thư. Bằng cách nhận boolean true, điều đó không có nghĩa là thư đã được gửi thành công. Thay vào đó, nó chỉ thể hiện rằng yêu cầu gửi thư được gửi đến máy chủ
PHP sendmail – cấu hình
Chúng tôi phải định cấu hình một số chỉ thị để làm cho tập lệnh thư hoạt động trong môi trường của bạn
Xác định vị trí php của bạn. ini và đặt thuộc tính chức năng thư. Hình ảnh bên dưới hiển thị cấu hình PHP của chức năng thư
Đặt cấu hình máy chủ thư và đường dẫn gửi thư bằng php này. phần đầu. Sau đó khởi động lại máy chủ web và đảm bảo rằng cài đặt được bật qua phpinfo[]
Ví dụ về Sendmail trong PHP
Sendmail trong PHP để gửi nội dung văn bản gốc
Đây là một ví dụ ngắn về việc gửi nội dung văn bản thuần túy qua PHP Script. Nó đặt tham số chủ đề thư, tin nhắn và email người nhận thành sendemail trong PHP
Chương trình này in văn bản phản hồi dựa trên boolean được trả về bởi hàm mail[]
sendmail-với-văn-bản-thuần. php
Mã PHP Sendmail để gửi nội dung HTML
Giống như ví dụ trên, chương trình này cũng sử dụng hàm mail[] của PHP để gửi email. Nó chuyển nội dung HTML đến chức năng thư
Để gửi nội dung HTML, nó đặt loại nội dung và các giá trị tiêu đề khác với tiêu đề thư
php-mail-with-html-content. php
Sendmail in PHP with HTML content. ';
if [mail[$to, $subject, $message, $headers]] {
echo 'Mail sent successfully.';
} else {
echo 'Unable to send mail. Please try again.';
}
?>
Sendmail trong PHP để đính kèm tệp
Chương trình này đính kèm một tệp văn bản với nội dung email. Nó đọc một tệp nguồn bằng PHP file_get_contents[]. Nó mã hóa nội dung tệp và chuẩn bị tiêu đề thư để đính kèm tệp
Nó đặt loại nội dung, mã hóa với nội dung thư để làm cho nó hoạt động. Tập lệnh này sử dụng biến $header tùy chọn khi thực thi sendmail trong PHP
sendmail-có-tệp đính kèm. php
\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"" . $divider . "\"\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
// prepare mail body with attachment
$message = "--" . $divider. "\r\n";
$message .= "Content-Type: application/octet-stream; name=\"" . $file . "\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment\r\n";
$message .= $encodedContent. "\r\n";
$message .= "--" . $divider . "--";
//sendmail with attachment
if [mail[$to, $subject, $message, $headers]] {
echo 'Mail sent successfully.';
} else {
echo 'Unable to send mail. Please try again.';
}
?>
Gửi thư khi gửi biểu mẫu
Thay vì các giá trị tĩnh, chúng ta cũng có thể chuyển các giá trị do người dùng nhập vào PHP sendmail. Một biểu mẫu HTML có thể nhận các giá trị từ người dùng để gửi thư. Chúng tôi đã thấy cách gửi email liên hệ qua biểu mẫu
Ví dụ này hiển thị một biểu mẫu thu thập tên, email và tin nhắn từ người dùng. Nó đăng dữ liệu biểu mẫu lên PHP trên hành động gửi
PHP đọc dữ liệu biểu mẫu và sử dụng chúng để chuẩn bị các tham số yêu cầu gửi thư. Nó chuẩn bị tiêu đề với email 'từ'. Nó đặt phần thân thư với thông báo được nhập bởi người dùng
Tất cả các trường biểu mẫu là bắt buộc và việc xác thực được thực hiện bởi tính năng mặc định của trình duyệt
sendmail-on-form-gửi. php
Name:
E-mail:
Message:
PHP gửi thư qua SMTP
Hàm PHP mail[] có một số hạn chế. Để có đầy đủ chức năng gửi thư trong PHP, tôi thích sử dụng thư viện PHPmailer hơn
Thư viện này là một trong những thư viện tốt nhất cung cấp các tiện ích gửi thư nâng cao. Chúng ta đã thấy các ví dụ gửi thư bằng PHP bằng PHPMailer qua SMTP. Nếu bạn đang tìm kiếm mã để gửi thư bằng mã thông báo OAuth, bài viết được liên kết có một ví dụ
Ví dụ này sử dụng tập lệnh tối thiểu để gửi thư bằng PHP bằng PHPMailer qua SMTP. Nó tải thư viện PHPMailer để tạo và đặt đối tượng thư
Đối tượng thư được sử dụng để định cấu hình các tham số thư. Sau đó, nó gọi phương thức send[] của lớp PHPMailer để gửi thư
Tải xuống PHPMailer từ Github và đặt nó vào nhà cung cấp của thư mục ví dụ này. Thay thế các cấu hình SMTP trong tập lệnh bên dưới để tập lệnh thư này hoạt động
sendmail-in-php-qua-smtp. php
SMTPDebug = 0;
$mail->isSMTP[];
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = "";
$mail->Password = "";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->From = "test@testmail.com";
$mail->FromName = "Full Name";
$mail->addAddress["recipient@email.com", "recipient name"];
$mail->isHTML[true];
$mail->Subject = "Mail sent from php send mail script.";
$mail->Body = "Text content from send mail.";
$mail->AltBody = "This is the plain text version of the email content";
try {
$mail->send[];
echo "Message has been sent successfully";
} catch [Exception $e] {
echo "Mailer Error: " . $mail->ErrorInfo;
}
?>
Chức năng liên quan đến sendmail trong PHP
PHP cung cấp các chức năng thư thay thế cho sendmail. Những người được liệt kê dưới đây
- mb_send_mail[] – Nó gửi thư được mã hóa dựa trên ngôn ngữ được định cấu hình với cài đặt mb_language[]
- imap_mail[] – Nó cho phép gửi thư bằng PHP với việc xử lý chính xác người nhận CC, BCC
Phần kết luận
Các ví dụ gửi thư ở trên cung cấp mã để sendemail trong PHP. Hỗ trợ gửi nhiều loại nội dung, file đính kèm trong mail