Làm cách nào để gửi email bằng AJAX trong PHP?

Trong bài đăng này, chúng ta sẽ xem cách tạo biểu mẫu liên hệ gửi tệp đính kèm bằng cách sử dụng jquery Ajax và PHP, đồng thời Chèn dữ liệu biểu mẫu liên hệ vào bảng cơ sở dữ liệu

Sử dụng biểu mẫu liên hệ có tệp đính kèm, người dùng có thể gửi tệp thông tin liên hệ tới người hỗ trợ hoặc quản trị viên. Điều này được tăng cường bằng cách cho phép nhiều tệp đính kèm thông qua biểu mẫu liên hệ. Một số độc giả của tôi muốn gửi mã cho điều này

Trong hướng dẫn này, chúng tôi xem xét một chương trình ví dụ để đính kèm email vào biểu mẫu liên hệ. Chúng tôi sử dụng PHPMailer thông qua SMTP để gửi email. Trong hướng dẫn trước, chúng ta đã thấy Gửi email có biểu mẫu liên hệ qua PHP và jQuery mà không cần tệp đính kèm

Trong ví dụ này, tôi đã hiển thị biểu mẫu liên hệ HTML để nhận thông tin chi tiết về người dùng với tệp đính kèm, nếu có. Sau khi gửi biểu mẫu này, các giá trị trường đầu vào sẽ được gửi đến tập lệnh email PHP thông qua AJAX. Mã PHP xử lý tập lệnh để gửi thư có tệp đính kèm và gửi phản hồi tới AJAX

  1. Tạo kết nối cơ sở dữ liệu

dbconfig. php

	// Database configuration 
$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "registration";

// Create database connection
$con = mysqli_connect($dbHost, $dbUsername, $dbPassword, $dbName);

// Check connection
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}

?>

2. Tạo Form liên hệ với File đính kèm

Mã HTML này được sử dụng để hiển thị các trường biểu mẫu liên hệ cho người dùng muốn gửi yêu cầu qua biểu mẫu này. Biểu mẫu này chứa dữ liệu để nhập tên, email, chủ đề, tin nhắn và tệp đính kèm

Tất cả các trường được yêu cầu trên biểu mẫu này. Vì vậy, hãy thêm xác thực javascript để kiểm tra độ mờ của tất cả các trường và xác thực email bằng regex. Tập lệnh xác thực này được gọi khi biểu mẫu này được gửi

mục lục. php





Contact form send attachment using jquery ajax in PHP







Contact form send attachment using jquery ajax in PHP

































jQuery AJAX Biểu mẫu liên hệ Thư Gửi tập lệnh với tệp đính kèm

Sau khi gửi biểu mẫu liên hệ, tập lệnh jQuery sau đây sẽ gửi yêu cầu gọi AJAX tới tập lệnh PHP và gửi dữ liệu từ biểu mẫu liên hệ. Nếu thành công, phản hồi AJAX xác nhận trạng thái gửi email cho người dùng

3. Tạo mã PHP Gửi thư liên hệ có tệp đính kèm

Trên trang này, chúng tôi tạo mã PHP để gửi dữ liệu đến các bảng cơ sở dữ liệu và chúng tôi cũng gửi email HTML từ máy chủ cục bộ sang PHP bằng PHPMailer. Tải xuống tệp PHPMailer từ Github

	// Include database connection file

include_once('config.php');

if (isset($_POST['email'])) {

$name = strip_tags(trim($_POST["name"]));
$name = str_replace(array("\r","\n"),array(" "," "), $name);
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$subject = trim($_POST["subject"]);
$message = trim($_POST["message"]);
$attachement = $_FILES["attachment"]['name'];

$query = "INSERT INTO contacts (name, email, subject, message, attachement)
VALUES('$name','$email','$subject','$message','$attachement')";

$result = mysqli_query($con, $query);

if ($result==true) {
sendMail($email, ucwords($subject),$message);
}else{
return false;
}
}


// Create PHPMailder function for sent mail

function sendMail($to, $subject, $message){

require 'PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer(true);
$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'yourpassword'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom($to, 'Contact us');
$mail->addAddress('[email protected]', 'Your Name'); // Add a recipient
$mail->addAddress('[email protected]'); // Name is optional
$mail->addReplyTo($to, 'Contact us');
$mail->isHTML(true); // Set email format to HTML
$mail->addAttachment($_FILES['attachment']['tmp_name'], $_FILES['attachment']['name']); // Add attachments

$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);

$mail->Subject = $subject;
$mail->Body = $message;

if($mail->send()) {
return true;
} else {
return false;
}
}

?>

đầu ra

Bạn luôn có thể hỗ trợ bằng cách chia sẻ trên phương tiện truyền thông xã hội hoặc giới thiệu blog của tôi với bạn bè và đồng nghiệp của bạn

Làm cách nào để gửi dữ liệu biểu mẫu tới email bằng AJAX?

Để gửi biểu mẫu qua AJAX, tập lệnh của bạn sẽ cần xử lý bốn tác vụ. .
Chụp nút gửi biểu mẫu để hành động mặc định không diễn ra
Nhận tất cả dữ liệu từ biểu mẫu bằng jQuery
Gửi dữ liệu biểu mẫu bằng AJAX
Hiển thị lỗi nếu có

Làm cách nào để gửi biểu mẫu liên hệ bằng AJAX trong PHP?

Biểu mẫu liên hệ dựa trên AJAX sẽ hữu ích khi thành phần này được tiện ích hóa trong bố cục ứng dụng. Trong hướng dẫn này, chúng tôi đã đưa ra một biểu mẫu liên hệ mẫu để thu thập các truy vấn, phản hồi của người dùng, v.v. Sau khi xác thực phía máy khách, những dữ liệu biểu mẫu này sẽ được gửi đến trang PHP thông qua lệnh gọi jQuery AJAX .

Làm cách nào để gửi tin nhắn trong AJAX?

AJAX - Gửi yêu cầu đến máy chủ .
open("NHẬN", "ajax_info. txt", đúng); xhttp. gửi();
open("NHẬN", "ajax_test. asp", đúng);
open("NHẬN", "ajax_test. asp", đúng);

Làm cách nào để gửi email bằng PHP với PHPMailer và AJAX jQuery?

Bằng cách này, chúng ta có thể sử dụng Ajax với Jquery để gửi email hàng loạt bằng PHP với Thư viện PHPMailer. .
Tạo tập tin cấu hình cơ sở dữ liệu
Tạo HTML cho trang Tìm nạp bản ghi người dùng
Tạo PHP Code để gửi email hàng loạt