SMTP trong PHP là gì?

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

  1. Thư văn bản đơn giản với thư PHP[]
  2. Gửi nội dung văn bản phong phú qua thư
  3. Gửi thư bằng PHP có tệp đính kèm
  4. 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

SMTP có nghĩa là gì trong PHP?

Giao thức chuyển thư đơn giản [SMTP] - GeeksforGeeks.

Làm cách nào để sử dụng máy chủ SMTP trong PHP?

Viết mã PHP để gửi email bằng Gmail SMTP .
Bước 1. Tải xuống thư viện PHPMailer từ liên kết github này. .
Bước 2. Viết mã PHP để tạo kết nối SMTP. .
Bước 3. Bao gồm các gói và tệp cho giao thức PHPMailer và SMTP. .
Bước 4. Khởi tạo PHP Mailer và đặt SMTP làm giao thức gửi thư

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

Giao thức truyền thư đơn giản [STMP] . Đôi khi, nó được ghép nối với IMAP hoặc POP3 [ví dụ: bởi ứng dụng cấp người dùng], xử lý việc truy xuất thư, trong khi SMTP chủ yếu gửi thư đến máy chủ để chuyển tiếp. to send and receive email. It is sometimes paired with IMAP or POP3 [for example, by a user-level application], which handles the retrieval of messages, while SMTP primarily sends messages to a server for forwarding.

Thư PHP có yêu cầu SMTP không?

Bạn nên gửi thư qua SMTP vì phương pháp này gửi email từ máy chủ thư thay vì máy chủ web. Điều này giúp ích đáng kể để đảm bảo email của bạn được gửi và gửi đúng cách.

Chủ Đề